dsh-vision-proxy:DeepSeek 纯文本模型也能在 GUI 里识图

前言

DeepSeek Harness(DSH)按模型声明的 inputModalities 决定是否放行 GUI 图片附件。DeepSeek-V4-Pro、普通 Flash 等 chat-completions 线路是纯文本模型,选中它们时直接粘贴图片会被原生拒绝。社区里已有视觉插件提供 view_image 等工具,但那是面向文件路径或 URL 的路径;对话中途附加的图片块,对纯文本模型仍然过不去。

dsh-vision-proxy 由 Flyvhidbwo 维护,在 DSH 里注册一条 deepseek-vision 提供商路由,对外声明支持图片输入,在请求流里把每张附加图片经 VLM 转译成文字,再委托给真正的 DeepSeek 适配器作答。对话大脑仍是 DeepSeek,识图是附加桥接能力。插件当前版本 0.4.1,MIT 许可,GitHub 14 stars,分类为模型推理。

需要说明的是:自 dsh 0.1.1 起,官方视觉模型(如 DeepSeek-V4-Flash-Vision-Exp)已原生多模态,直接发图即可,不必装本插件。本插件主要面向 Pro/文本 Flash 识图、本地 Ollama、以及自定义 OpenAI 兼容 VLM 场景。插件已适配 dsh 0.1.1-rc.2 的 adapter prepareCall 接口。

这是什么

dsh-vision-proxy 是 DeepSeek Harness 的 bundle 插件。它包装现有 DeepSeek 适配器,注册 deepseek-vision 路由(模型选择器显示为 DeepSeek + 自动识图),在附件预检阶段放行图片,随后用视觉语言模型把图片内容(OCR、版式、细节)转译为带 [图片转译] 前缀的纯文本,再交给 DeepSeek 生成回答。

数据流如下:

用户附加图片 ──▶ deepseek-vision 路由 ──▶ 经 VLM 转译(OCR+版式+细节)
                   │                        │
                   ▼                        ▼
            DeepSeek 作答 ◀── 纯文本对话(图片已替换为 [图片转译] 文字)

GUI 附加图片默认经官方 deepseek-v4-flash-vision-exp 做识图转译(与 V4-Pro 同档价约 1/3);也可在配置里换成百炼、智谱、OpenRouter 等任意 OpenAI 兼容 VLM,或依赖 autoLocalOllama 自动探测本地 Ollama。

核心功能

路由与转译

  • 注册 providerId: deepseek-vision,内部委托 innerProvider: deepseek-official
  • 每张 GUI 图片块经 VLM 转译后再进入 DeepSeek 对话;同一路由下原生 read_image 工具同样可用。
  • 转译结果按图片字节 SHA-256 做进程内缓存(上限 200 条),同一张图每个进程最多转译一次。

多后端与降级

  • 支持任何 OpenAI 兼容 /chat/completions 端点:百炼/Qwen、QwenCloud 国际站、智谱、OpenRouter、本地 Ollama、自建网关等。
  • fallbackModels 可串联多家,每条可带独立 baseURL / model / apiKey
  • autoLocalOllama 默认开启:启动时探测 http://localhost:11434,检测到 Ollama 即加入降级链,图片不出本机,免 key。
  • API key 读取顺序:配置 apiKey → 环境变量 VISION_API_KEYDASHSCOPE_API_KEY。无 key 的非匿名条目会被跳过而非直接失败。

稳定性

  • 匿名端点强制 20 秒超时;遇 HTTP 429 立即失败,不做 Retry-After 等待;刚失败端点进入 60 秒冷却。
  • 没有 key 也没有本地 Ollama 时,转译在几秒内失败并给出可操作指引,不静默挂起。
  • 错误按 rate_limit / quota / auth / region / model_not_found / context_too_large / http 分类提示。
  • 装有可选依赖 sharp 时,超过 maxImagePixels(默认 4000000)的图片转译前自动降采样;未安装则原图直发。

安装交互

  • postinstall 脚本会询问是否有 VLM API key:回答 y 走付费快速通道,回答 N(默认)走本地/零配置路径;非交互环境自动跳过。
  • 启动时打印 PRIVACY NOTICE,标明当前使用的端点。

安装与启用

运行环境要求 Node >= 22.19,dsh >= 0.1.0-rc.6。官方安装命令如下:

dsh plugin --profile web add dsh-vision-proxy

pnpm >= 10 默认拦截依赖构建脚本,首次安装可能以非零码退出并提示 Ignored build scripts: dsh-vision-proxy, sharp。需要在 profile 的 pnpm-workspace.yaml 里批准两者,然后重跑安装:

allowBuilds:
  dsh-vision-proxy: true
  sharp: true
dsh plugin --profile web add dsh-vision-proxy

npm 官方源较慢时,可指定镜像:

dsh plugin --profile web add dsh-vision-proxy --registry=https://registry.npmmirror.com

安装完成后重启 dsh web,在模型选择器里选 DeepSeek + 自动识图deepseek-vision 路由),即可在对话里直接粘贴图片。

典型用法

GUI 粘贴识图

  1. 启动 DSH Web,选中 deepseek-vision 路由。
  2. 在对话输入框粘贴图片并提问,例如「你看到了什么」。
  3. 插件把图片块经 VLM 转译为文字(含 OCR 与版式描述),DeepSeek 基于转译文本作答。

README 中的示例:用户粘贴表情包并提问,VLM 输出类似「我是吃白饭的 / 蓝色大肥鱼!……Q 版蓝发女仆装少女,身后蓝鲸尾巴,端碗举筷,表情兴奋」,DeepSeek 据此做完整视觉分析。单步约 7.6 秒(README 现场演示数据)。

自定义 VLM 后端

如需改用百炼或其他端点,在 profile 里用 id 定向覆盖,不要用 insert(否则会重复注册 adapter)。示例:

# $DSH_HOME/profiles/web/cordis.patch.yml
- id: dsh-vision-proxy
  name: 'dsh-vision-proxy'
  config:
    baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
    apiKey: 'sk-…'
    model: qwen3.7-flash
    maxTokens: 4096
    timeoutMs: 120000
    maxImagePixels: 4000000
    marker: '[图片转译]'
    autoLocalOllama: true
    fallbackModels: []

常用后端参考(均走 OpenAI 兼容模式):

场景 baseURL model
百炼(国内) https://dashscope.aliyuncs.com/compatible-mode/v1 qwen3.7-flash / qwen3-vl-flash
本地 Ollama(自动探测) http://localhost:11434/v1 第一个视觉模型
QwenCloud(国际) https://dashscope-intl.aliyuncs.com/compatible-mode/v1 qwen3-vl-plus
智谱 https://open.bigmodel.cn/api/paas/v4 glm-4.6v-flash

适用场景与注意

适合谁

  • 想在 DSH GUI 里用 DeepSeek-V4-Pro 或纯文本 Flash 处理图片附件。
  • 希望图片经本地 Ollama 转译、不出本机。
  • 已有百炼、智谱、OpenRouter 等 OpenAI 兼容 VLM key,想统一接入。

不必安装的情况

  • 已选用官方原生多模态模型 DeepSeek-V4-Flash-Vision-Exp,直接发图即可。

安全与权限

  • 插件以当前 dsh 进程权限运行,会向配置的 VLM 端点发送图片数据;安装前应阅读源码与 MIT 许可证,确认端点与隐私策略可接受。
  • 启动时的 PRIVACY NOTICE 会标明实际使用的转译端点;本地 Ollama 路径下图片不出本机。

配置注意

  • 覆盖配置请用顶层 - id: dsh-vision-proxy,勿写 - insert: [{id: dsh-vision-proxy, …}],否则同 id 条目重复实例化,行为未定义。
  • Windows 下环境变量变更可能不生效,建议在 cordis.patch.yml 里直写 apiKey
  • 插件不再内置匿名免费端点作为默认兜底;若自行添加匿名端点,须设 anonymous: true,20 秒超时上限仍生效。

结尾

dsh-vision-proxy 把「DeepSeek 作对话大脑」和「GUI 图片附件」接在一起:纯文本 DeepSeek 模型也能看图,转译后端可走官方视觉模型、百炼等云端 VLM,或零配置的本地 Ollama。对于需要在 Harness 里保持 Pro 推理、又不想放弃粘贴识图的工作流,这是一条可直接落地的路径。

  • SkillHub 目录页:https://www.skillhub.cn/plugins/Flyvhidbwo/dsh-vision-proxy
  • GitHub 仓库:https://github.com/Flyvhidbwo/dsh-vision-proxy
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜