dsh-vision-bridge:为无视觉主模型接入 DSH 会话图片

前言

在 DeepSeek Harness(DSH)里,一些主模型本身不具备视觉能力,例如 deepseek-v4-pro。如果用户把图片直接发到会话中,可能会遇到“模型不支持图片”的拦截。对于需要让主模型读取图片内容的场景,可以把图片处理放到模型请求组装阶段:用户消息仍然保留图片,主模型最终只收到视觉模型转换后的文字描述。

下面介绍 DSH 插件 dsh-vision-bridge。它解决的问题是:让无视觉能力的主模型在 DSH 会话中处理用户发送的图片,同时保留用户消息框中的图片缩略图,并提供 view_image 工具供模型主动看图。

这是什么

dsh-vision-bridge 是 DSH 视觉桥接插件。资料中仓库标题为 dsh-vision-bridge,npm 包名为 @liu__min/dsh-vision-bridge,已核实版本为 0.1.1,许可证为 MIT。GitHub 仓库路径为 lium970320/dsh-vision-bridge,维护者为 lium970320

它不是视觉模型本身,也不是一个独立的看图服务。它是在 DSH 插件层面接入视觉接口:当会话中出现图片,或模型调用 view_image 工具时,插件把图片交给已配置的视觉接口转成文字描述,再让主模型继续处理。

核心功能

下面介绍已核实的插件能力。

1、会话直接收图:用户发送图片后,不再被“模型不支持图片”拦截。

2、用户消息保留图片缩略图:图片转换不在用户消息上发生,用户消息框仍然显示图片缩略图。

3、模型请求组装阶段自动转文字:图片在模型请求组装层被交给视觉模型转成文字描述,主模型只收到文字。

4、提供 view_image 工具:模型在需要看图时可以自行调用,支持本地路径、URL、data URL。

5、提供 install.ps1 一键安装脚本:脚本完成复制、登记、声明、配置、补丁、自测等步骤。

6、支持显式配置的视觉接口:支持 OpenAI 官方、xAI Grok 等显式配置的视觉接口,或 OpenAI 兼容 Responses API。

7、运行行为明确:插件不内置任何服务商;未配置视觉接口时工具会明确报错,不会静默失败;插件无日志、无缓存、无运行数据写盘。

安装与启用

先确认前置条件:DeepSeek Harness 已安装,且 dsh web 至少启动过一次,~/.dsh/profiles/web/ 目录存在。

无论使用哪种安装方式,装完都要重启 dsh web,并完成视觉接口配置。

从 npm 安装

已核实 npm 包安装命令如下:

dsh plugin --profile web add @liu__min/dsh-vision-bridge

执行后,进入 DSH profile 目录,补打 pi-ai 适配器补丁:

cd ~/.dsh/profiles/web/
node apply-vision-patch.js

接着按下一节写入视觉接口配置,再重启 dsh web

从 GitHub 仓库一键安装

先克隆仓库:

git clone https://github.com/lium970320/dsh-vision-bridge.git
cd dsh-vision-bridge

以 OpenAI 官方接口为例,运行安装脚本:

powershell -ExecutionPolicy Bypass -File install.ps1 -ApiBase https://api.openai.com/v1 -ApiKeyEnv OPENAI_API_KEY -VisionModel gpt-5.1

安装脚本会依次完成:复制插件文件、在 profile 的 cordis.patch.yml 登记插件行、在 settings.yaml 给主模型声明图片输入、写视觉接口配置、打 pi-ai 适配器补丁、自测。

经过上面的步骤后,重启 dsh web,在会话中发送一张图片验证。

配置视觉接口

插件必须显式配置视觉接口,需要同时提供接口网址和 API 密钥。可以在 ~/.dsh/profiles/web/vision-bridge-config.json 中写入配置:

{
  "apiBase": "https://api.openai.com/v1",
  "model": "gpt-5.1",
  "apiKeyEnv": "OPENAI_API_KEY",
  "apiKey": ""
}

其中:

  • apiBase:视觉接口地址。
  • model:视觉模型名。
  • apiKeyEnv:密钥环境变量名,优先级更高。
  • apiKey:直接写入密钥,与 apiKeyEnv 二选一。

密钥只建议保存在本机配置文件或环境变量中。已核实资料说明 vision-bridge-config.json 已被 .gitignore 排除。

配置优先级如下:

cordis.patch.yml 的插件 config > vision-bridge-config.json > 环境变量(密钥)

手动安装

如果希望逐步控制安装过程,可以先复制插件文件到 DSH profile 目录:

# 从仓库 plugin/ 目录复制:
#   dsh-view-image.js
#   apply-vision-patch.js
# 目标目录:
#   ~/.dsh/profiles/web/

~/.dsh/profiles/web/cordis.patch.yml 追加插件登记:

- insert:
    - id: dsh-view-image
      name: './dsh-view-image.js'

~/.dsh/settings.yamlllm-pi-ai.providers 下给主模型声明图片输入。示意如下:

llm-pi-ai:
  providers:
    # 将下面的 provider 名替换为 settings.yaml 中已有的 provider 名
    provider-name:
      modelOverrides:
        deepseek-v4-pro:
          input:
            - text
            - image

这里的主模型示例为 deepseek-v4-pro,实际应以本机 settings.yaml 中的主模型配置为准。

接着写入视觉接口配置:

# 文件:~/.dsh/profiles/web/vision-bridge-config.json
# 字段:apiBase、model、apiKeyEnv、apiKey

然后运行补丁和自测:

cd ~/.dsh/profiles/web/
node apply-vision-patch.js
node dsh-view-image.js

最后重启 dsh web

典型用法

下面是两个可直接参考的视觉接口配置示例。

OpenAI 官方接口

先确保环境变量 OPENAI_API_KEY 已设置为本机密钥。然后运行:

powershell -ExecutionPolicy Bypass -File install.ps1 -ApiBase https://api.openai.com/v1 -ApiKeyEnv OPENAI_API_KEY -VisionModel gpt-5.1

重启 dsh web 后,在任意会话中发送一张图片,确认用户消息框保留图片缩略图,主模型能根据转换后的文字描述继续处理。

xAI Grok 接口

如果显式配置 xAI Grok 视觉接口,可以运行:

powershell -ExecutionPolicy Bypass -File install.ps1 -ApiBase https://api.x.ai/v1 -ApiKeyEnv XAI_API_KEY -VisionModel grok-4-fast

之后同样重启 dsh web,并在会话中发图验证。

适用场景与注意

适合已有 DSH web 运行环境、希望让无视觉主模型读取图片内容的开发者。插件本身不替代主模型,也不内置视觉服务商,必须显式配置视觉接口。

注意以下事项:

1、插件以当前 dsh 进程权限运行。安装前应先检查源码、安装脚本和许可证。

2、许可证为 MIT。GitHub 仓库地址:

https://github.com/lium970320/dsh-vision-bridge

3、每次 dsh 升级或重装后,pi-ai 适配器补丁会丢失,需要重新运行:

cd ~/.dsh/profiles/web/
node apply-vision-patch.js

4、插件启动时会检查补丁是否缺失。缺失时日志会告警:

[dsh-view-image] pi-ai vision patch is MISSING

5、视觉接口密钥只建议保存在本机 vision-bridge-config.json 或环境变量中,不要提交到仓库。

6、未配置视觉接口时,工具会明确报错,不会静默失败。

参考

GitHub 仓库:

https://github.com/lium970320/dsh-vision-bridge

已核实资料未给出可确认的目录页 URL,因此本文不列出目录页链接。

羽毛球分组比赛记分
小程序二维码

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

小夜