前言¶
在 DSH web GUI 的聊天窗口里,用户可以在输入区粘贴或上传图片附件;但文本模型本身通常不能直接处理图片块。dsh-llm-vision-bridge 解决的就是这个问题:它把带图片的请求先路由到一个视觉模型,让视觉模型生成文本描述,再把这些描述交回给 DeepSeek 文本模型继续对话。
下面介绍它的定位、能力、安装方式和典型用法。
这是什么¶
仓库 Einskyle/dsh-llm-vision-bridge 提供的是一个 DSH 插件,许可证为 MIT。它面向 DSH web GUI,把图片附件交给已配置的视觉模型(如 pi-ai / llama.cpp Qwen3-VL)处理,再用生成的文本描述继续与 DeepSeek 文本模型对话。
它会在 DSH 的 LlmAdapter seam 上注册 deepseek-vision provider,使会话能够把图片请求交给这个桥接 provider 处理。
核心能力¶
下面这些是插件提供的主要行为:
- 注册
deepseek-visionprovider,接入 DSHLlmAdapterseam。 - 当请求包含图片时,把图片附件路由到配置的视觉模型,并将视觉模型生成的文本描述交给 DeepSeek 继续会话。
- 当请求不包含图片时,直接交给 fallback provider,保持零额外开销。
- 使用 LRU description cache,避免同一“图片 + prompt”被重复描述。
- 对可重试的
503、429和超时错误自动重试。 - 支持可配置失败策略:
placeholder或error。
安装与启用¶
先安装插件。GitHub 安装命令如下:
dsh plugin --profile web add github:Einskyle/dsh-llm-vision-bridge
安装后重启 web 服务:
pnpm dsh web
在发送图片之前,需要把会话或主模型设置为桥接 provider,例如:
agent-default-model.provider: deepseek-vision
如果当前会话或主模型不是 deepseek-vision,host 的图片准入检查可能不通过,并出现 MODEL_DOES_NOT_SUPPORT_IMAGES。
典型用法¶
下面按步骤走一遍:
1、在 Settings → Models → llm-vision-bridge 下配置桥接项,包括 visionProvider、visionModel、onVisionFailure 等字段。
2、把主模型设置为 deepseek-vision:
agent-default-model.provider: deepseek-vision
3、在 chat composer 中粘贴或上传图片,支持的格式为 PNG、JPEG、WebP、GIF,可以附带问题,然后发送。插件会先让视觉模型生成描述,再让 DeepSeek 基于描述继续回答。
4、如果只需要纯文本模式,把主模型切回 deepseek-official:
agent-default-model.provider: deepseek-official
此时图片上传会被 admission 拒绝,这是预期行为。
Settings 中的修改不需要重启即可生效。
视觉模型侧要求¶
视觉调用走 pi-ai adapter,因此视觉 provider 需要在 pi-ai adapter 上配置。视觉 provider 不能是桥接 provider 本身,也就是不能指向 deepseek-vision,否则形成递归。
本地 llama.cpp gateway 是默认的视觉路由,但不是必需项;任何接受图片输入且 OpenAI-compatible 的端点都可以使用。
如果视觉 provider 声明了 apiKeyEnv 但凭据缺失,pi-ai 会报告 MISSING_CREDENTIAL。使用云端 OpenAI-compatible 路由时,需要已有存储的凭据。
适用场景与注意¶
这个插件适合已经能使用 DSH web GUI,并且希望让文本模型借助外部视觉模型处理图片附件的场景。它不是把图片直接送入 DeepSeek 文本模型,而是通过“先描述、后回答”的方式让文本模型继续参与对话。
使用时注意:
- 会话或主模型必须支持图片准入,通常要设置为
deepseek-vision。 - 视觉 provider 必须独立于桥接 provider,不能配置成
deepseek-vision。 - 云端视觉端点需要正确配置凭据,否则可能遇到
MISSING_CREDENTIAL。 - 插件会以当前 dsh 进程权限运行;安装前应检查源码与 MIT 许可证。
- 可重试的
503、429、超时错误会被自动重试;最终失败时按onVisionFailure的策略处理。
仓库¶
GitHub 仓库地址: