DeepSeek Harness Hub
← 返回列表

图像视觉工具链gmleong/dsh-img

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

为纯文本模型接入视觉 API,识别图片并本地裁剪比对

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档

Give text-only models eyes: analyze_image tool for DeepSeek Harness, backed by free Chinese vision APIs (GLM-4V-Flash / Qwen-VL) or any OpenAI-compatible endpoint. 给纯文本模型装上眼睛的 dsh 插件。

综合分
27.6
GitHub 分
27.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add gmleong/dsh-img
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-settings@deepseek-ai/dsh-tools@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-img

给纯文本模型装上眼睛,并升级成完整的本地视觉工具链 · Give text-only models eyes — 一个 DeepSeek Harness 插件,将任何纯文本编码 agent 桥接到视觉 API,外加一套本地、免 key 的像素工具(裁剪 / 像素差异 / 颜色 / OCR)。

- 🇨🇳 零成本开箱:默认接智谱 GLM-4V-Flash(免费),备选通义 Qwen-VL(免费额度)
- 🏠 免 key 本地模式:preset: ollama 直连本地 Ollama 视觉模型(如 minicpm-v:8b),零 API key、零外部依赖、不花钱
- 🔁 多后端自动回退:配置一个 backends 列表,按顺序 failover,一个挂了自动切下一个
- 🧰 本地像素工具(无需 key):vision_crop / vision_pixel_diff / vision_colors / vision_ocr(本地 tesseract)/ vision_trace(SVG 矢量化)/ vision_extract_foreground(抠图)完全不调视觉 API
- 💾 识别结果缓存:按图片内容 + 问题 hash 持久化到 ~/.dsh/dsh-img-cache/,重复调用不重复花钱
- ⚙️ 设置页可视化配置:web 端「设置 → 插件」可直接改 preset / 填 key,无需 export 环境变量
- 🖥️ headless 支持:dsh --profile headless 下工具同样可用
- 📦 npm 一键安装:纯 JavaScript、零构建步骤
- 🔌 任意端点:custom 预设支持任何 OpenAI 兼容视觉端点(中转站 / 自建 vLLM / GPT-4o…)

安装(Install)

前置条件:Node.js ≥ 20;已装 dsh 本体(npm i -g @deepseek-ai/dsh,跑 dsh web 能开 http://127.0.0.1:3080 即可)。

① 装插件

cd ~/.dsh/profiles/web && pnpm add dsh-img --registry https://registry.npmjs.org

并把 dsh-img 加进该 profile 的 package.json → dsh.profile.bundles 数组(若 dsh plugin 命令在你的版本可用,则 dsh plugin --profile web add dsh-img 会自动登记)。

② 配 API key(只看图问答才需要;本地工具无需 key)

export ZHIPU_API_KEY=your-key-here   # 免费申请:https://open.bigmodel.cn/

③ 重启服务(key 必须注入到 dsh 进程)

pkill -f "dsh web"
ZHIPU_API_KEY=your-key-here dsh web

④ 新建会话,直接贴图进对话框,或对 agent 说:

用 analyze_image 看一下 ./screenshot.png 里写了什么

切换后端 / 多后端回退(Backends)

编辑 profile 的 cordis.patch.yml($DSH_HOME/profiles/web/cordis.patch.yml),按 id 覆盖整行。

单个后端(向后兼容):

- id: image-bridge
name: dsh-img
config:
preset: qwen        # zhipu | qwen | ollama | custom

免 key 本地模式(Ollama 已装视觉模型,如 minicpm-v:8b):

- id: image-bridge
name: dsh-img
config:
preset: ollama      # 默认 http://127.0.0.1:11434/v1 + minicpm-v:8b,无需 key

多后端回退链(新 backends 字段,从左到右 failover):

- id: image-bridge
name: dsh-img
config:
backends:
- preset: zhipu                       # 首选(失败→下一个)
- preset: qwen
- preset: custom
baseURL: https://your-gateway/v1
model: gpt-4o
apiKeyEnv: MY_GATEWAY_KEY

key 分别用 ZHIPU_API_KEY / DASHSCOPE_API_KEY / MY_GATEWAY_KEY 注入,或直接在 web 设置页填写。

设置页 & headless

- web 设置页:打开「设置 → 插件」→ dsh-img 卡片,可视化改 preset、填 apiKey(密文存储)。改完即时生效,无需 export 环境变量。
- headless:dsh --profile headless 下先用 dsh plugin --profile headless add dsh-img 装一次,之后 8 个工具均可用(本地工具无需 key,识图类用 preset: ollama 或环境变量 key)。

工具(Tools)

需要 key(走视觉后端)

| 工具 | 说明 |
|---|---|
| analyze_image(path, question) | 图片问答 / OCR / 布局理解,返回文字答案 |
| vision_ground(path, target) | 定位目标元素,返回原图像素坐标框 x1,y1,x2,y2 |

无需 key(纯本地)

| 工具 | 说明 |
|---|---|
| vision_crop(path, region, out?) | 裁剪 "x1,y1,x2,y2" 区域,输出 PNG |
| vision_pixel_diff(original, rebuilt, out?) | 像素级比对:diff 比率 + 最差区域排行 + 红色热力图 |
| vision_colors(path, top?) | 提取主色(hex + 占比) |
| vision_ocr(path) | 本地 tesseract 转录(chi_sim+eng),失败自动转视觉后端 |
| vision_trace(path, steps?, out?) | potrace 矢量化:位图 → SVG 路径(logo/图标/线稿) |
| vision_extract_foreground(path, tolerance?, out?) | 边界 flood fill 抠图:均匀背景变透明,输出透明 PNG |

支持 .png .jpg .jpeg .webp .gif .bmp。

配置项(Config)

| 字段 | 默认 | 说明 |
|---|---|---|
| preset | zhipu | 旧式单后端快捷方式(zhipu/qwen/custom) |
| backends | 无 | 新式:有序后端数组,从左到右 failover(优先于 preset) |
| timeoutMs | 60000 | 单次请求超时 |
| maxImageMB | 10 | 图片大小上限 |
| detail | auto | auto / low / high |
| chatBridge | true | 对话框直发图:声明图片输入 + 请求前把附件转译成文字 |
| bridgePrompt | 内置 | 附件转译时发给视觉模型的问题 |
| cache | true | 识别结果持久化缓存(~/.dsh/dsh-img-cache/) |
| ocrLang | chi_sim+eng | 本地 OCR 的 tesseract 语言包 |
| pixelDiffSampleMax | 1024 | pixel-diff 降采样最长边(控制 CPU) |
| traceSteps | 4 | vision_trace 的 posterize 颜色层数 |
| foregroundTolerance | 40 | vision_extract_foreground 的背景色容差(越大抠得越狠) |

排错(Troubleshooting)

| 报错 | 原因与解法 |
|---|---|
| all N vision backend(s) failed | 回退链里每个后端都失败;检查各 key 环境变量是否注入 dsh 进程 |
| Vision API HTTP 401 | key 错误或未开通对应模型 |
| Unsupported image type | 转了不支持的格式;先转成 png/jpg |
| Image too large | 超过 maxImageMB;调大配置或压缩图片 |
| vision_ground could not parse a box | 视觉模型没按格式返回坐标;换模型或用更明确的目标描述 |
| 所有工具调用崩 reading 'prepare' | 装的是 ≤0.2.3 旧版(双实例 bug);pnpm add dsh-img@latest 升级 |
| 贴图后模型答非所问 | 检查图里是否有旧指令文字——模型会把图中文字当上下文读 |
| 旧会话持续报 tool_calls 错 | 该会话已被旧 bug 毒化(append-only 日志),新建会话即可 |

适用边界(Limits)

本地工具各有其适用场景,超出边界效果会差,选对工具很重要:

| 工具 | 适合 | 不适合 |
|---|---|---|
| vision_trace | logo / 图标 / 线稿 / 简洁几何图形 | 彩色插画、照片、有渐变的图(potrace 是"位图→少色阶轮廓"工具,会压平成单一色块,无法保留连续色调) |
| vision_extract_foreground | 均匀背景(纯白 / 纯色底)的人/物 | 复杂背景、纹理背景(flood fill 抠不干净) |
| vision_pixel_diff | 同尺寸 UI 截图、设计稿还原度比对 | 尺寸差异大、内容完全不同的两张图(无对齐意义) |
| vision_ocr | 印刷体文字、屏幕截图文字 | 手写体、艺术字(识别率下降,可改用 analyze_image 走视觉模型) |

想要"彩色插画转 SVG",potrace 不是正确工具(它不做彩色矢量化)。请改用专业矢量工具(Illustrator / Inkscape 的自动描摹),或直接交给视觉模型出设计稿再人工绘制。

English

A zero-build plugin for DeepSeek Harness. One command to install, one env var to configure, and your text-only model gains image understanding through analyze_image — plus key-free local tools (vision_crop, vision_pixel_diff, vision_colors, vision_ocr, vision_trace, vision_extract_foreground) and an ordered multi-backend failover chain.

cd ~/.dsh/profiles/web && pnpm add dsh-img --registry https://registry.npmjs.org
export ZHIPU_API_KEY=...   # free at https://open.bigmodel.cn/

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群