前言¶
DeepSeek Harness(DSH)里常用的纯文本模型(例如 deepseek-v4-flash)本身不接收图像输入。会话里若只有路径或截图需求,模型无法直接「看见」像素内容。常见做法是换用多模态模型,或在本地跑视觉模型,成本和改动都更大。
dsh-tool-see-image 在 Host 侧注册 see_image 工具:由会话中的文本模型按需调用,把指定路径的图片交给可配置的视觉 API(默认智谱 GLM-4V-Flash),再把文字描述回传给当前会话。下面介绍它的定位、安装与配置方式。
这是什么¶
- 名称:
dsh-tool-see-image(npm 包名一致,当前版本 0.1.2,MIT 许可证) - 维护者:guguthecoder(社区插件目录 SkillHub 条目)
- 分类:模型推理
- 仓库:GitHub
插件向 DSH 暴露一个工具:see_image(image_path, question)。读取图片、编码、请求视觉模型均在 Host 平面完成,不要求改你所用的主对话模型,也不要求本地 GPU。
工作原理(简述)¶
- 用户在会话中让模型查看某张图;纯文本模型无法直接读图,转而调用
see_image。 - 插件通过
ctx.fs解析并读取文件(遵守 DSH 沙箱与观测策略),将图像编码为 base64 data URL。 - 向配置好的 OpenAI 兼容端点发起
POST …/chat/completions,默认指向智谱glm-4v-flash。 - 视觉模型返回的文字描述回到会话,由文本模型继续回答你。
换用 SiliconFlow、Qwen2.5-VL 等其它兼容端点时,只需改 baseURL、apiKeyEnv、model 三项配置。
核心功能¶
see_image工具:传入本地(沙箱可见)图片路径与可选问题,得到文本描述;未传问题时使用插件内置的中文「详细描述」类默认 prompt。- 视觉后端可替换:任意 OpenAI 兼容
/chat/completions接口;默认智谱 GLM-4V-Flash(文档称可在智谱侧免费使用)。 - 沙箱感知:不直接使用
node:fs,统一走ctx.fs,与 DSH 文件访问策略一致。 - 可选能力(同仓库脚本):
scripts/patch-dsh-image-relay.mjs可在 Web 聊天框粘贴图片时,自动转成文字再发给 DeepSeek(需对 DSH 安装目录打补丁,与工具安装相互独立)。
安装与启用(DSH web profile)¶
官方 README 未提供 dsh plugin add 一类单行命令,而是把插件放进 profile 并用 Cordis patch 挂载。$DSH_HOME 一般为 ~/.dsh。
- 将插件目录复制到 profile 下,例如:
$DSH_HOME/profiles/web/plugins/dsh-tool-see-image/
- 在
$DSH_HOME/profiles/web/package.json的 dependencies 中声明本地依赖:
"dsh-tool-see-image": "file:plugins/dsh-tool-see-image"
在该 profile 目录执行 pnpm install(会在 profiles/node_modules 下建立指向插件源码的链接)。
- 在
$DSH_HOME/profiles/web/cordis.patch.yml中插入插件配置,例如默认智谱:
- insert:
- id: tool-see-image
name: 'dsh-tool-see-image'
config:
baseURL: https://open.bigmodel.cn/api/paas/v4
apiKeyEnv: ZHIPU_API_KEY
model: glm-4v-flash
- 在 智谱开放平台 创建 API Key(格式
id.secret),设置环境变量(Windows 示例):
setx ZHIPU_API_KEY "your-key"
重新打开终端后重启 dsh web(文档注明 web profile 的 patch 层目前不支持热更新,需重启进程)。
- 新开一条会话,确认工具列表中出现
see_image,可用自然语言试跑:
Use see_image to look at path/to/your/image.png
配置项说明¶
在 cordis.patch.yml 里 tool-see-image 的 config 块可调整下列字段(摘自 README 配置表):
| 键 | 默认值 | 说明 |
|---|---|---|
baseURL |
https://open.bigmodel.cn/api/paas/v4 |
兼容 OpenAI 的 API 根路径;插件会追加 /chat/completions |
apiKeyEnv |
ZHIPU_API_KEY |
存放 API Key 的环境变量名 |
model |
glm-4v-flash |
视觉模型 ID |
maxTokens |
1024 |
最大输出 token;glm-4v-flash 上限为 1024,更高会返回 400 |
timeoutMs |
60000 |
请求超时(毫秒) |
maxBytes |
15728640(15MB) |
单张图片大小上限 |
prompt |
(中文详细描述类默认指令) | 默认问题;工具参数 question 优先 |
改用 SiliconFlow 的示例:
config:
baseURL: https://api.siliconflow.cn/v1
apiKeyEnv: SILICONFLOW_API_KEY
model: Qwen/Qwen2.5-VL-32B-Instruct
典型用法¶
- 按路径识图:在会话中说明图片路径,让模型调用
see_image,并在question里写你想问的内容(例如「图里有哪些 UI 控件」「错误信息是什么」)。 - 卸载:从
cordis.patch.yml删除tool-see-image的 insert 块;移除node_modules中的链接;删掉package.json里对应依赖行;重启dsh web。
仓库提供 test/mount-test.mjs:在设置 DSH_CHECKOUT 指向含 node_modules/@deepseek-ai 的 DSH 安装根目录后运行,可验证 see_image 是否进入工具注册表(输出含 tools.schemas() 含 see_image: true 与 === MOUNT TEST PASS ===)。
适用场景与注意¶
适合:已在 DSH web profile 上使用纯文本模型,偶尔需要读截图、界面图、文档扫描件等,且愿意用云端视觉 API(默认智谱免费档)换描述文本的场景。
注意:
- 插件在 DSH Host 进程权限下运行,会按配置把图片内容发往第三方 API;安装前请阅读源码与 MIT 许可证,并妥善保管
apiKeyEnv对应密钥。 - 单图 15MB 上限、请求超时与
maxTokens受所选视觉模型限制;文档记录过glm-4v-flash因max_tokens超过 1024 导致 400 的坑,当前默认已改为 1024。 - 粘贴转文字补丁会修改 DSH 自带包(host-apiproxy、llm-deepseek、client-ui),仅在你理解回滚方式(
--revert)后再启用。
DSH 生态强调「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,并非官方应用商店。本插件曾出现在社区 awesome-deepseek-harness-plugins 列表中。
结尾¶
dsh-tool-see-image 用一个小工具把「看图」从主模型能力里拆出来:文本模型负责推理与编排,视觉模型负责读图,默认无需本地 GPU。若你要在现有 web profile 里启用,按上文复制插件、pnpm install、编写 cordis.patch.yml 并配置 API Key 即可。
- 目录页:https://www.skillhub.cn/plugins/guguthecoder/dsh-tool-see-image
- GitHub:https://github.com/guguthecoder/dsh-tool-see-image