Skip to content

v0.1.4 — 跟上 rc.8 搬家的图片准入点

Choose a tag to compare

@sunxin-ai sunxin-ai released this 20 Aug 04:04
· 1 commit to main since this release

DSH 0.1.0-rc.8llm-deepseek图片准入判断搬了家,本版跟上。不升级的话,在 DeepSeek 路由上粘贴图片会失败。

发生了什么

rc.8 给 llm-deepseek 加了一条原生图片通路(imagePart()serializeMessagesWithImages()、目录模型可配 inputModalities),同时把「模型不支持图片」的判断从 serialize.tsassertTextOnly() 上移到了 adapter.ts,位置在序列化之前。

于是出现一种很隐蔽的失效:旧落点的锚点文本还在、补丁照样打得上、--check-patches 全绿,但没有任何请求再经过它assertTextOnly() 如今只在「消息里根本没有图片」时被执行到 —— 而那种情况它本来就不抛错。

改了什么

落点二从 serialize.ts 改到 adapter.ts 未声明 image 的模型,其图片块在准入处被换成 [图片 … attachment=<id>] 文字指针;声明了 image 的模型走 else 分支,原生通路一个字节都不动。

改写的是 options 本身 —— 它与随后 this.request(options, …) 用的是同一个变量,且 attachments 保持 undefined,于是自然走 serializeRequest 而非 serializeRequestWithImages。指针仍在通往线路的最后一站才生成,持久化、会话日志、界面渲染看到的都还是真正的图片块。

serialize.ts 保留在落点表里,但只还原、不打补丁。 从表里删掉它,会让从 0.1.3 及更早升上来的用户留下一个 --revert-patches 再也认不出、因而永远清不掉的改动。若安装时发现那份文件仍带着旧补丁,安装器会硬停并要求先还原,而不是在第一代补丁上再叠一层。

落点总数仍是三处,没有增加。

从 0.1.3 或更早升级

node install.mjs --revert-patches   # 必须先还原,否则安装器会拦住你
node install.mjs --route-only
node install.mjs --restart

验证

在真实的 rc.8 工作树上:还原至干净检出 → 六处锚点全部命中 → 补丁写入 → 三个构建产物 node --check 通过 → dsh web 重启并返回 200。

关于「官方多模态上线」

顺带实测了一次,结论写在这里免得他人重复劳动:截至本版,官方 API 的 deepseek-v4-prodeepseek-v4-flash 都不接受图片输入400 unknown variant image_url,同一 key 的纯文本请求返回 200),/models 也只返回这两个模型。rc.8 建好了客户端管道,服务端能力尚未开放。

0.1.3 起内置的安装期退休判据因此不会触发 —— 上游哪天在 inputModalities 里声明 image,安装器会拒绝再打这处补丁并说明原因。

同版附带

「提问方式比模型选型更决定成败」那张表,现在标明了哪几行可以复核:评测脚本只实现了「有区别吗」一种问法(tilebench.pyFACETS),只有它的 0/30 有逐格原文;0/360/12 两行没有提示词常量、没有命令、没有输出文件。那张表记录的是真实做过的事,但不是可复现基准,现在也不再这样声称。

Full Changelog: v0.1.3...v0.1.4