前言¶
在 DeepSeek Harness (DSH) 中,纯文本聊天模型无法直接处理图片,默认行为是返回占位符。nvbb/dsh-ollama-vision-bridge 是一个插件,通过本地 Ollama 视觉语言 (VL) 模型(默认 qwen3-vl:8b)对图片进行描述,并将描述注入到对话上下文中,使文本模型能够基于图片内容进行回答。
核心功能¶
- 自动描述:当聊天选中的模型不支持图片时,自动用本地 Ollama VL 模型描述图片。
- 同步注入:把说明在同一个模型步骤里注入给模型。
- 历史保留:图片本身保留在对话历史里。
- 显存冷却:推理结束后模型在显存中只驻留一小段时间,空闲即自动卸载。
- 补丁管理:给
dsh-api-session-controller打一个幂等补丁。 - 行为回退:回退到 DSH 原有的拒绝行为。
- 状态查询:提供
/vision-bridge状态命令。 - 自动挂载:自动挂进 profile 的 bundles 层。
安装与启用¶
安装前必须先停止正在运行的 dsh web,否则 node_modules 可能会被锁住。
# 从 GitHub 安装
dsh plugin --profile web add git+https://github.com/nvbb/dsh-ollama-vision-bridge.git
# 或者本地开发/调试安装
dsh plugin --profile web add file:<仓库的本地路径>
# 应用补丁(幂等操作,可重复执行)
node "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-ollama-vision-bridge\patch\apply.mjs"
# 更新插件
dsh plugin --profile web update dsh-ollama-vision-bridge
# 检查补丁状态
node patch/apply.mjs --check
# 运行冒烟测试(需本地 Ollama 在运行且模型已下载)
node test/bridge-smoke.mjs
# 确认 Ollama 模型列表
ollama list
配置¶
配置项位于 DSH 的 settings.yaml 文件中,与 llm-pi-ai 配置段同级。插件支持热加载,修改配置后无需重启。
vision-bridge:
enabled: true # 总开关;false 时恢复 DSH 原生拒绝
baseURL: http://127.0.0.1:11434 # Ollama 服务地址
model: "qwen3-vl:8b" # 默认使用的视觉模型
keepAlive: "60s" # 显存冷却时间,空闲后卸载
# models: # 可选:按模型映射不同的视觉模型
# "deepseek-v4-flash": "qwen3-vl:8b"
典型用法¶
在 DSH 的 Web GUI 中,选择一个纯文本模型(不支持图片),发送一张图片。插件会自动识别图片内容,并在界面上生成一条折叠的“上下文注入”消息,随后模型会基于图片描述给出回答。图片本身保留在历史记录中,但不会直接发给文本适配器,而是通过本地 VL 模型获取描述。
适用场景与限制¶
此插件适用于需要在本地环境运行、保护隐私且不想依赖云端 API 的场景。安装前需确保 Ollama 正在运行且包含 qwen3-vl:8b 等视觉模型。
主要限制如下:
1. 依赖 dsh-api-session-controller 的 prompt 处理器两个稳定锚点,若 DSH 大版本变动可能导致报错。
2. 仅覆盖 Web GUI 普通会话的聊天发图路径,子代理等平行入口的图片拒绝行为不在此列。
3. 直接选中 VL 模型(如 qwen3-vl:8b)发图时,走 DSH 原生通道,不经过桥接逻辑。
总结¶
该插件解决了本地 DSH 环境中纯文本模型无法理解图片的问题,通过 Ollama 本地视觉模型实现了无需公网 API 的图片理解能力。
- 目录页: https://www.skillhub.cn/plugins/nvbb/dsh-ollama-vision-bridge
- GitHub 仓库: https://github.com/nvbb/dsh-ollama-vision-bridge