dshbase

插件目录 / Developer / dsh-vision-bridge

dsh-vision-bridge

已验证 · 实测可装 Xieweikang123

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-15最近推送
跨平台平台

功能简介

给纯文本dsh模型眼睛:通过OpenAI兼容视觉端点识别粘贴图片

✅
我们的评价
可用 — 实测通过,早期项目

给纯文本dsh模型眼睛:通过OpenAI兼容视觉端点识别粘贴图片 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

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. 到 https://open.bigmodel.cn 注册并创建 API key。
  2. 把 key 写进 ~/.dsh/.env:VISION_API_KEY=<你的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

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-vision-bridge」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

Web profile:

dsh plugin --profile web add dsh-vision-bridge

Headless(CLI)profile:

dsh plugin --profile headless add dsh-vision-bridge

包信息

npm:dsh-vision-bridge · 版本 — · 实测环境 dsh 0.1.0-rc.6

实测报告

端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7797 个插件 →