← 返回列表
未验证
粘贴图片自动识别成文字,让纯文本模型也能看懂图
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/14 · 已提供中文文档
给纯文本的 dsh 模型装上眼睛:通过 OpenAI 兼容的视觉端点将粘贴的图片识别为文本。
综合分
27.4
GitHub 分
27.4
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/Xieweikang123/dsh-vision-bridge.git数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-vision-bridge
给纯文本的 DeepSeek「装上眼睛」—— 粘贴图片,自动识别成文字,再交给模型理解。
dsh-vision-bridge 是一个 DeepSeek Harness(dsh)插件。它让本身不支持图片输入的纯文本模型(如 deepseek-v4-flash)也能「看懂」你粘贴的图片:图片在进入模型之前被自动交给一个 OpenAI 兼容的视觉模型(默认智谱免费档 glm-4.6v-flash)识别成文字,替换掉消息里的图片块,于是模型看到的全是文字。
- 走 dsh 官方扩展点 agent/pre-step,非侵入、不改任何 dsh 编译产物。
- 通过 cordis.patch.yml 挂载,与 dsh-vision 等插件并列。
- 默认零成本开箱(智谱免费模型),自动降级链应对限流。
安装
取代码(放到任意独立目录,例如 D:\project)
git clone https://github.com/Xieweikang123/dsh-vision-bridge D:\project\dsh-vision-bridge
让模型「支持图片输入」
dsh 服务端会在图片进入 agent 之前,检查当前模型的 inputModalities,不包含 image 就直接拒绝(返回 MODEL_DOES_NOT_SUPPORT_IMAGES)。所以需要先在 ~/.dsh/settings.yaml 里把模型的输入能力声明为含图片:
llm-pi-ai:
providers:
opencode-go:
apiKeyEnv: OPENCODE_GO_API_KEY
modelOverrides:
deepseek-v4-flash:
input:
- text
- image
这只会让 dsh「放行」图片进入 agent 请求;真正把图片变成文字的是本插件。若网关本身仍拒绝图片(比如 opencode-go 返回 unknown variant image_url),插件会在模型看到图像前完成识别替换,模型请求里已不含图片块。
挂载插件
在 ~/.dsh/cordis.patch.yml 里 insert 插件(Windows 下 name 必须用 file:// URL):
- insert:
- id: dsh-vision-bridge
name: 'file:///D:/project/dsh-vision-bridge/lib/index.js'
配置识别用的 API key
默认走智谱免费档 glm-4.6v-flash,只需一个 key:
1. 到 注册并创建 API key。
2. 把 key 写进 ~/.dsh/.env:VISION_API_KEY=
key 读取顺序:config.apiKey → $VISION_API_KEY → $DSH_VISION_API_KEY → $ZHIPUAI_API_KEY → $DASHSCOPE_API_KEY。本地 Ollama 端点可免 key。
重启 dsh 后生效:粘贴一张图,发送,模型就能看懂它。
配置
插件支持以下 config 项(在 cordis.patch.yml 的对应条目加 config: 即可):
- insert:
- id: dsh-vision-bridge
name: 'file:///D:/project/dsh-vision-bridge/lib/index.js'
config:
baseURL: https://open.bigmodel.cn/api/paas/v4 # OpenAI 兼容端点
apiKey: "" # 留空则读环境变量
model: glm-4.6v-flash # 视觉模型
fallbackModels: [] # 自定义降级链;空则默认智谱免费链
prompt: "" # 自定义识别提示词
maxTokens: 2048
timeoutMs: 60000
后端速查
| 场景 | baseURL | model |
|---|---|---|
| 默认(智谱免费) | https://open.bigmodel.cn/api/paas/v4 | glm-4.6v-flash |
| 智谱付费 | 同上 | glm-4.6v |
| 阿里百炼 | https://dashscope.aliyuncs.com/compatible-mode/v1 | qwen3-vl-flash |
| 火山豆包 | https://ark.cn-beijing.volces.com/api/v3 | doubao-seed-2-1-turbo-260628 |
| 本地 Ollama | http://localhost:11434/v1 | qwen3-vl:4b(无需 key) |
工作原理
1. 用户粘贴/上传图片 → dsh 先把图片存为持久化附件(saveImage),消息里以 { type: 'image', attachment } 块出现。
2. 插件监听 agent/pre-step(dsh 官方扩展点,位于消息进入模型之前)。
3. 发现 image 块 → attachments.readImage(ref) 拿到字节 → base64 data: URL。
4. 调视觉端点的 /chat/completions 识别,返回文字描述。
5. 用识别文字替换 image 块(保留用户自己打的文字),返回 { kind: 'enter', messages }。
6. 纯文本模型收到的是纯文字,正常理解图片内容。
设计上借鉴了 opencode-image-vision 与 dsh-vision 的思路,但映射到 dsh 的原生扩展点、无额外运行时依赖:
- 默认智谱免费档 glm-4.6v-flash、降级链(glm-4.1v-thinking-flash → glm-4v-flash)、API key 解析顺序,均沿用 dsh-vision(MIT)。
- “把粘贴的图识别成文字、喂给纯文本模型”的目标,沿袭 opencode-image-vision(MIT)。
同图按 attachmentId 缓存,不重复识别。
已知限制
- 对话里不会显示原图:因为模型收不到图片(网关/模型不支持),插件把图片替换成了文字,历史里也只有文字。
- 识别质量取决于视觉模型:默认免费档对密集文字(如终端重复行)可能读得冗余;换 glm-4.6v / qwen3.7-plus 等可获得更好效果。
- 改成插件逻辑后,运行中的 dsh 需重启才会加载新模块(热重载主要覆盖 cordis.patch.yml 配置变化)。
License
MIT扫码进群