Releases: sunxin-ai/dsh-design-qa
Release list
v0.1.4 — 跟上 rc.8 搬家的图片准入点
DSH 0.1.0-rc.8 把 llm-deepseek 的图片准入判断搬了家,本版跟上。不升级的话,在 DeepSeek 路由上粘贴图片会失败。
发生了什么
rc.8 给 llm-deepseek 加了一条原生图片通路(imagePart()、serializeMessagesWithImages()、目录模型可配 inputModalities),同时把「模型不支持图片」的判断从 serialize.ts 的 assertTextOnly() 上移到了 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-pro 与 deepseek-v4-flash 都不接受图片输入(400 unknown variant image_url,同一 key 的纯文本请求返回 200),/models 也只返回这两个模型。rc.8 建好了客户端管道,服务端能力尚未开放。
0.1.3 起内置的安装期退休判据因此不会触发 —— 上游哪天在 inputModalities 里声明 image,安装器会拒绝再打这处补丁并说明原因。
同版附带
「提问方式比模型选型更决定成败」那张表,现在标明了哪几行可以复核:评测脚本只实现了「有区别吗」一种问法(tilebench.py 的 FACETS),只有它的 0/30 有逐格原文;0/36 与 0/12 两行没有提示词常量、没有命令、没有输出文件。那张表记录的是真实做过的事,但不是可复现基准,现在也不再这样声称。
Full Changelog: v0.1.3...v0.1.4
v0.1.3 — 补丁学会认出自己不再被需要
安装期的退休判据
补丁的存在前提是「本体拒收图片」。上游哪天自己支持了,补丁就从修复变成破坏 —— 它会把模型本来看得见的图换成一行文字指针。
让位此前只在运行时存在(deepseek_vision 查到调用方能看图就自我拒绝);本版补上安装期那一道:install.mjs 会先读 llm-deepseek 声明的 inputModalities,已含 image 就拒绝再打这处补丁,并打印它依据的那行声明。
判断按找到的每一份 DSH 分别做 —— 一台机器上可能装着多份,新的那份退休了不代表旧的那份也该跳过。只认数组字面量:llm-pi-ai 的 [...model.input] 是用户配置,不是上游支持,不该被当成退休信号。还原路径完全不看这个判据 —— 已经打上去的补丁,无论上游变成什么样都必须撤得掉。
原始评测输出入库
eval/runs/ 现在带着每个已发布数字背后的逐格模型原文,按各自使用的夹具分开存放,并附上移动端夹具本身,好让横评表可以真正重跑。
同时改正了一处夸大:横评表(24/24 · 21/24 · 18/24)跑的是一组未随仓库分发的移动端仪表盘夹具,而紧挨着的零差异对照是在 evalset/landing 上的另一次运行,另外两个模型从未测过这一项。原先把两者并排陈列,等于同时高估了两边。现在每个数字都标注了出处,其中一行只以聚合数字存在、无法逐格复核,也已明确标出;跑分脚本目前只接通 landing 一组,这一点同样写明。
不再重复落盘
spillImages 会跳过已经在磁盘上的图片。
其他
- 清理改名遗留:
NOTICE里的旧包名、.gitignore补*.dsh-design-qa-orig、新增.gitattributes eval/README.md说明这套评测为什么存在:它回答的是「借来的这只眼够不够格当判定闭环里的裁判」
Full Changelog: v0.1.2...v0.1.3