- Accueil
- Plugins
- Outils et capacités
- dsh-vision
dsh-vision
314857493/dsh-vision
DeepSeek Harness plugin: a `deepseek-vision` route that declares image input and transcribes pasted images via the free Zhipu GLM vision models before delegating to the DeepSeek adapter.
Installer
dsh plugin --profile web add github:314857493/dsh-visionREADME
dsh-vision-free-eyes
给 DeepSeek Harness(DSH)里的纯文本模型补上免费「眼睛」:GUI 直接贴图自动转译 + 磁盘图片识图工具 + 使用指引 skill。底层视觉走智谱 GLM 免费模型(glm-4v-flash),无需付费。
Eyes for text-only DeepSeek Harness agents: paste an image in the Web GUI and it just works — the image is transcribed by a free Zhipu GLM vision model before DeepSeek sees the text.
⚠️ 需要 GLM key(免费,但必须要有):识图走智谱免费模型
glm-4v-flash,需要去 open.bigmodel.cn 注册获取免费 API key(格式id.secret),配置为环境变量GLM_API_KEY或ZHIPU_API_KEY(Windows 可直接setx GLM_API_KEY "你的key")。没有 key 时贴图转译会失败(对话中显示[图片转译失败: 未找到 GLM_API_KEY ...])。key 只存在于你的环境,不会进代码或仓库。
特性
| 组件 | 作用 |
|---|---|
deepseek-vision 路由(packages/vision-route) | 注册新模型组「DeepSeek + 自动识图」:声明图像输入(inputModalities: ['text','image']),贴图在请求流里被 GLM 自动转译成文字,再委派给真正的 DeepSeek 适配器 |
vision 工具(packages/vision-tool) | 模型可对磁盘上的图片路径直接调用的 vision(image, question) 工具(直连 GLM API,无需外部 CLI) |
vision-free-eyes skill(skill/) | 教模型「何时 / 怎么用」视觉能力的指令文件 |
- 免费默认:智谱 GLM 免费通道(
glm-4v-flash→glm-4.6v-flash→glm-4.1v-thinking-flash自动降级链),只需一个免费申请的 GLM key。 - 官方 DeepSeek 路由完全不动:纯文本对话零开销、零改动;贴图时在模型选择器里切到「DeepSeek + 自动识图」即可。
- 无重启热生效:插件行写入 profile 的
cordis.patch.yml后由watchUserPatches实时重放(见安装步骤;Windows 上插件路径必须用file:///URL)。 - 优雅降级:某个图片转译失败时替换为
[图片转译失败: ...]文本,对话不卡死。
架构
用户贴图/截图
│
▼
DSH Web GUI 预检(检查所选模型的 inputModalities)
│ ← deepseek-vision 路由声明了 ['text','image'],放行
▼
deepseek-vision 适配器(vision-route)
│ 拦截请求,把每个 { type:'image', attachment } 块:
│ readImage(ref) → base64 → GLM chat/completions → 文字描述
│ 替换成 { type:'text', text:'[图片转译] …' }
▼
真正的 DeepSeek 适配器(deepseek-official,纯文本)
│
▼
DeepSeek 基于文字作答
磁盘上的图片文件
│
▼
模型调用 vision 工具(vision-tool)
│ 直连 GLM API(glm-4v-flash 降级链 + 进程内缓存)
▼
文字描述 → 模型整合进回答
安装
前提
- DeepSeek Harness
0.1.0-rc.5/rc.6(本方案在 rc.5 上实测通过) - 智谱 GLM 免费 key(open.bigmodel.cn 注册即得,格式
id.secret),配置方式(任选其一):- 环境变量
GLM_API_KEY或ZHIPU_API_KEY;或 - Windows 用户环境变量(
setx GLM_API_KEY "...",插件会自动读注册表HKCU\Environment)
- 环境变量
通过 npm 安装(推荐)
两个包发布到 npm 后(dsh-vision-free-eyes + dsh-vision-proxy-route):
dsh plugin --profile web add dsh-vision-free-eyes dsh-vision-proxy-route
dsh plugin add 会安装包并写入 profile 的 dsh.profile.bundles,重启 dsh web(或刷新页面)后生效。
包已装入 profile 的前提下,也可以直接在 profile 的 cordis.patch.yml 里用包名挂载(热生效,无需重启):
- insert:
- id: dsh-vision-free-eyes
name: dsh-vision-free-eyes
- id: dsh-vision-proxy-route
name: dsh-vision-proxy-route
手动安装(备选:未发布 / 本地目录)
-
把
packages/vision-tool和packages/vision-route放到你的机器上(例如D:\tools\)。 -
编辑 profile patch(
$DSH_HOME/profiles/web/cordis.patch.yml,即C:\Users\<你>\.dsh\profiles\web\cordis.patch.yml),追加:- insert: - id: tool-vision name: file:///D:/tools/vision-tool/index.js - id: vision-proxy-route name: file:///D:/tools/vision-route/index.js⚠️ Windows 必须用
file:///URL 形式:DSH 的 Loader 用原生import()加载插件行,D:/xxx盘符路径会报ERR_UNSUPPORTED_ESM_URL_SCHEME。Linux/macOS 用/abs/path/to/index.js即可。完整模板见cordis.patch.example.yml。 -
安装 skill(可选但推荐):把
skill/vision-free-eyes/复制到$DSH_HOME/skills/(即C:\Users\<你>\.dsh\skills\)。 -
生效方式(二选一):
- 热生效:patch 由
watchUserPatches实时重放,改完等 1~2 秒即可;刷新浏览器页面让模型选择器加载新组。 - 或重启
dsh web(修改插件代码后必须重启,Loader 对同名模块复用旧导出)。
- 热生效:patch 由
-
验证:
dsh --profile web --dump-config | grep -A2 vision应看到两个插件行;浏览器刷新后模型选择器出现「DeepSeek + 自动识图」。
使用
- 聊天框右下角模型选择器选 「DeepSeek + 自动识图」(原 DeepSeek 组保留不动)。
- 直接粘贴图片 / 截图并附带问题,或给出图片文件路径。
- DeepSeek 基于转译文字作答。
vision 工具(任何路由都可用):让模型"看一下 D:\xxx\screenshot.png"即可,或直接告诉模型图片路径。
配置
vision-route(packages/vision-route/index.js)
| 常量 | 默认 | 说明 |
|---|---|---|
API_URL | https://open.bigmodel.cn/api/paas/v4/chat/completions | GLM OpenAI 兼容端点 |
VISION_MODELS | glm-4v-flash → glm-4.6v-flash → glm-4.1v-thinking-flash | 转译降级链 |
TRANSCRIBE_TIMEOUT_MS | 60000 | 单次转译超时 |
MAX_IMAGE_BYTES | 15MB | GLM 单图上限 |
PROMPT_BASE | 中文结构化描述提示词 | 可改(如改成纯段落描述) |
| 缓存 | 按 attachmentId 进程内缓存,上限 200 条 | 同图只转译一次 |
vision-tool(packages/vision-tool/index.js)
| 环境变量 / config | 默认 | 说明 |
|---|---|---|
GLM_API_KEY / ZHIPU_API_KEY | — | GLM key(Windows 也自动读注册表) |
config apiKeyEnv | GLM_API_KEY / ZHIPU_API_KEY | 自定义 key 的环境变量名(可传数组) |
config no_cache | false | 跳过进程内结果缓存,强制重新请求 |
兼容性
- 实测:DSH
0.1.0-rc.5(Windows)。 - 设计兼容:rc.6(与 dsh-vision-proxy 相同的公开缝:
ctx.llm.registerAdapter/resolveModel.inputModalities/ctx.llm.registration(provider).adapter/ctx.attachments.readImage)。 - ⚠️ 这些是 DSH 的半稳定插件缝,后续大版本可能变动;升级 DSH 后若失效,优先检查上述 API 是否改名。
隐私
- 图片字节会上传到智谱服务器(open.bigmodel.cn)进行转译。
- 未配置任何 key 或转译失败时,会以
[图片转译失败: ...]占位并继续对话,不会静默卡死。 - 会话历史中只存转译后的文字,不存图片字节(DSH 附件存储除外)。
致谢
- 智谱 GLM 免费视觉模型(glm-4v-flash 系列)。
- DeepSeek Harness 插件体系(profile patch /
watchUserPatches/ctx.llm)。