DSH(DeepSeek Harness)采用插件化架构,旨在通过扩展组件丰富功能。DeepSeek 官方接口为纯文本模型,当在 Web UI 中发送图片时,适配器会因消息中包含 ImageBlock 而抛出 UNSUPPORTED_CONTENT 错误,导致会话中断。多模态视觉桥插件通过代理 llm/stream 请求,将图片转化为结构化的中文描述,并注册主动视觉工具,从而让纯文本模型具备处理图片的能力。
插件简介¶
dreamrift/dsh-vision-bridge 是 DSH 生态下的多模态视觉桥插件,由开发者 DreamRift 维护。它位于“模型推理”分类,采用 MIT 许可证。
插件的核心价值在于“桥接”:它不修改 DSH 核心源码,而是通过拦截和代理机制,为不支持图片的模型(如 dsh-llm-deepseek)提供视觉能力,同时兼容原生支持多模态的模型链路。
核心功能¶
插件主要提供以下四项核心能力:
-
llm/stream请求拦截与代理
插件监听并拦截llm/stream请求。当消息中包含ImageBlock时,插件会将其转换为结构化的中文描述(包含对图中文字的转录),替换为文本块后重新发送。该过程支持跨轮次缓存以保持 KV cache 稳定性,并具备失败降级机制。 -
主动视觉工具
插件注册了两个工具供模型调用:view_image:查看本地图片,并按问题回答。ocr_image:对图片进行逐字转录。
-
原生多模态路由探测
插件运行时会探测当前使用的模型路由。如果检测到 DSH 官方llm-pi-ai等原生支持图片的模型(inputModalities包含image),则直接直通请求,避免视觉桥的开销;仅对纯文本路由(如deepseek-official)启用视觉代理。 -
设置页热更新
插件支持在 DSH 设置页(插件配置)中修改视觉模型的端点、模型名称和 OCR 模型。配置修改后无需重启即可生效。
安装与启用¶
官方安装¶
推荐使用官方安装命令,插件已被收录至目录:
dsh plugin --profile web add "github:DreamRift/dsh-vision-bridge"
手动安装¶
如果需要从源码安装:
- 克隆仓库并生成安装包:
cd dsh-vision-bridge
npm pack
- 在
$DSH_HOME/profiles/web/package.json中声明依赖:
{
"dsh": { "profile": { "bundles": ["dsh-vision-bridge"] } },
"dependencies": {
"dsh-vision-bridge": "file:<本仓库绝对路径>/dsh-vision-bridge-0.4.0.tgz"
}
}
- 安装 profile 依赖:
cd "$DSH_HOME/profiles/web"
pnpm install
配置密钥¶
在 DSH 根目录的配置文件 $DSH_HOME/.credentials.yaml 中写入视觉模型的 API 密钥:
QWEN_MM_VISION_API_KEY: sk-<your-key>
安装完成后,重启 dsh web,日志中应出现 [vision-bridge] 已启用 的提示。
典型用法¶
安装并配置完成后,在 DSH 的对话中:
- 自动处理图片:直接上传图片,插件会自动将其转换为文字描述并放入上下文,模型即可基于图片内容进行回答。
- 使用工具:在 Prompt 中或模型主动调用时,可以使用
view_image查看本地文件,或使用ocr_image获取图片的文字内容。 - 修改配置:进入设置页 → 插件配置,修改视觉模型端点或 OCR 模型名称,保存后即刻生效。
注意事项¶
- 运行环境:支持 Windows、Linux 和 macOS,无需 Python 或 WSL 环境。
- 依赖管理:插件没有硬编码的 npm 依赖。如果运行时动态 import 缺少
dsh-settings/schemastery/dsh-tools等包,对应功能会自动降级。 - 核心修改:插件不修改 DSH 核心源码,也不写入会话事件。
- 脚本修改:如果在部署后修改了路由准入豁免脚本,需要重启 DSH 后端才能生效。
- 生态定位:本插件为社区项目,与 DeepSeek 官方无隶属关系。
总结¶
dsh-vision-bridge 通过轻量级的代理和工具注册机制,解决了 DSH 生态中纯文本模型无法处理图片的问题。它利用原生路由探测优化性能,并通过设置页提供灵活的配置方式,适合需要在本地 DSH 环境中增强模型视觉能力的开发者使用。
- 目录页: DSH 插件目录
- GitHub 仓库: dreamrift/dsh-vision-bridge