DSH Hub

sunxin-ai/dsh-design-qa

dsh-design-qa

BundleVision44 GitHub stars· updated 2026-10-20

Design-fidelity QA for DeepSeek Harness: lend any text-only model an eye, then judge whether the implementation matches the mock. Ships the benchmark behind that judgement — four fixtures, 23 injected defects, and every raw model transcript. Retires itself when DeepSeek ships vision.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-design-qa

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-design-qa DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-design-qa.svg)](https://dshhub.dev/plugins/dsh-design-qa)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from sunxin-ai/dsh-design-qa, cleaned of badges and images.

dsh-design-qa

简体中文 | English

让 DeepSeek Harness 里的纯文本模型能看图。

做这个是为了在 DSH 上实现产品设计这项能力:从设计稿写出实现、再自己判断实现得像不像、 不像就修 —— 而 DeepSeek 写得了代码却看不见图,判定那一环做不了。本插件通过一个工具把 多模态能力借给它,让它具备执行产品设计功能所需的那只眼睛。

  • 任何纯文本模型都能读图。 不只是 DeepSeek —— 你在 DSH 里自己接的那些 OpenAI 兼容端点 同样适用(实测过 OpenRouter 上的 z-ai/glm-5.2)。前提是该模型支持 tool calling: 它得能自己调 deepseek_vision。官方多模态上线那天,本插件自动让位、可原样留着。
  • 把识图做成一个 tool。 图片不进主模型上下文;它看到一行 [图片 …] 提示,需要时自己调 deepseek_vision。不看就不产生任何成本,问什么由模型自己决定。
  • 附 eval 与原始输出。 4 组夹具、23 处注入缺陷、四条通过线 —— 回答的是「借来的这只眼 够不够格当判定闭环里的裁判」,而不是「模型跑没跑通」。能看见 ≠ 可用于判定:看得见但不 主动看、会编、不稳、说不清,四种失效各对应一条通过线。真值四组齐全、有像素级注入断言, 跑分脚本目前接通的是其中 landing 一组;基准那一节每个数字的逐格模型原文都在 eval/runs/, 哪几项没有原文,也在那里标明。

三步装好

环境要求:一个已经能正常对话的 DSH —— 也就是工作区选好了、主模型的 key 配好了, 随便发一句能收到回复。npm 安装或源码运行都可以,Node ^22.19 || >=24(与 DSH 一致)。 macOS / Linux / Windows 通用,安装脚本是一份 Node 实现。

刚下载 DSH 还没配过的话先把这一步做完 —— 本插件只负责识图那条链路(BAILIAN_API_KEY), 主模型的 key 是 DSH 自己的事。两者分开:主模型不通,粘图也不会有反应。

1. 拿一个百炼 API Key

去 阿里云百炼控制台 开通并创建 API-KEY。

新用户每款模型送 100 万输入 + 100 万输出 Token,有效期 90 天(官方说明)。 本插件一次识图约 2000 输入 + 400 输出 token,免费额度够看几百次图,日常用基本不花钱。

2. 装插件

dsh plugin --profile web add dsh-design-qa

也可以直接从 GitHub 装(拿到的是 main 上最新的,未必等于 npm 上那版): dsh plugin --profile web add github:sunxin-ai/dsh-design-qa

3. 补配套并重启

cd "${DSH_HOME:-$HOME/.dsh}/profiles/web/node_modules/dsh-design-qa"
export BAILIAN_API_KEY=<第 1 步拿到的 key>
node install.mjs --route-only
node install.mjs --restart          # 冷启动。HMR 是关的,刷新浏览器不算

装好了。在对话框里粘一张图,直接问「这是啥」即可。

图片走粘贴或拖拽进对话框 —— DSH 的输入框没有单独的上传按钮, 左下那个 + 是命令菜单不是附件入口,别去找。 也可以直接把图片的绝对路径或 http(s) 地址发给模型,让它自己调 deepseek_vision。

不需要告诉脚本 DSH 装在哪 —— 它从 profile 的 node_modules 自己解析出本体位置, npm 装的和源码跑的都认。密钥也不经它的手,只写变量名 apiKeyEnv: BAILIAN_API_KEY。

第 3 步顺带改了 DSH 本体三处 —— 点开看改了什么、怎么还原

「在对话框里粘贴图片」这件事插件自己做不到:拦截在 api-proxy 的消息准入里, 而 resolveModelInfo 直接返回适配器自述、没有 waterfall,插件改不了适配器 硬编码的 inputModalities: ['text']。所以只能改本体,三处:

落点改动
dsh-host-apiproxy删掉纯文本路由的图片准入拒绝(一个 if 块)
dsh-llm-deepseek图片准入处不再抛错,改成把图片块换成一行 [图片 … attachment=<id>] 文字指针;声明了 image 的模型照走原生通路
dsh-llm-pi-ai同上 —— 这条覆盖你自己接的所有 OpenAI 兼容纯文本端点

前两处只让 DeepSeek 路由能粘图;第三处才让「任何纯文本模型都能读图」成立。

改动前原文另存为 <原文件名>.dsh-design-qa-orig,一条命令还原:

node install.mjs --revert-patches

完全不想动本体就加 --no-patches。此时粘贴仍会被拒,但给文件路径、图片 URL 或附件 id 让模型调 deepseek_vision 一样可用 —— 只是多贴一次路径。

细节见 patches/README.md。

让 DSH 自己装

不想手敲的话,把下面这段整体发给 DSH,它有 bash,会自己跑完:

装 dsh-design-qa,按这五步,不要自己发挥:

1. dsh plugin --profile web add dsh-design-qa
2. cd "${DSH_HOME:-$HOME/.dsh}/profiles/web/node_modules/dsh-design-qa"
3. export BAILIAN_API_KEY=<你的 key>      # 用 export,下一条命令也要用到它
4. node install.mjs --route-only
5. node install.mjs --restart      # 不要用 pkill,那会杀掉你自己

第 4 步会顺带改 DSH 本体三处(粘贴图片必须的),原文自动备份,
node install.mjs --revert-patches 可一键还原。把第 4 步的完整输出贴回给我。

「不要自己发挥」这句请保留。 三处最容易被自由发挥搞砸:

…

Related plugins