dsh-auto-vision:为不支持图片输入的模型提供视觉桥接

DeepSeek Harness (DSH) 采用插件化架构,允许扩展原生不支持的功能。如果你在 deepseek-v4-pro 或 deepseek-v4-flash 等不支持图片输入的模型上发送截图,消息会被网关直接拒绝。dsh-auto-vision 插件解决了这个问题,它拦截图片,利用配置的视觉模型进行识别,将图片描述作为折叠的上下文条目写入会话历史,而你的原始消息保持不变。

插件简介

dsh-auto-vision 是由 soarGuo 维护的 DSH 插件,属于模型推理类别。它不修改 DSH 源码,通过纯插件配置实现功能。其核心价值在于:让不支持图片输入的模型也能接收截图,并持久化视觉上下文。

核心功能

  1. 自动补全模型输入声明:默认开启 autoDeclareInput,插件会自动给已配置的模型补全 input: [text, image] 声明,满足网关准入检查。
  2. 拆分消息处理:将图片识别为文本描述,作为独立的“notice”上下文消息追加在原消息后。模型可以引用这些历史描述,实现持久化记忆。
  3. 请求级剥离:在发送给模型请求时,将图片数据替换为短占位符,确保图片不会实际到达网关,避免被拒绝。
  4. 识图路由跟随分组:识图模型的选择自动跟随当前会话模型的分组(如 sub2api 或官方路由),保证密钥和配置的一致性。
  5. 递归识别工具结果:不仅识别顶层消息图片,还能递归识别工具结果(如 read_image)中内嵌的图片。

安装与启用

使用 DSH 官方插件命令进行安装:

dsh plugin --profile web add github:soarGuo/dsh-auto-vision

安装完成后,重启 DSH 进程即可生效。插件依赖 DSH 的公开模块,无需额外运行时依赖。

典型配置

默认配置

插件安装后即可使用默认配置,无需手动修改 settings.yaml:

auto-vision:
  visionProvider: deepseek-official
  visionModel: deepseek-v4-flash-vision-exp
  nativeVision:
    [
      { provider: deepseek-official, model: deepseek-v4-flash-vision-exp },
      { provider: deepseek, model: deepseek-v4-flash-vision-exp }
    ]
  autoDeclareInput: true

手动声明

如果关闭了 autoDeclareInput,或者需要使用非默认的视觉模型,需在 settings.yaml 中手动声明:

llm-deepseek:
  models:
    - id: deepseek-v4-pro
      input: [text, image]

注意事项

  1. GUI 显示与实际行为:声明 input: [text, image] 后,GUI 会显示模型支持图片,但实际图片由插件桥接,不会发送到网关。
  2. 插件停用后:如果停用插件,不要向被桥接的模型发送图片,否则图片会直达网关并被拒绝。此时应切换到原生视觉模型或恢复插件。
  3. 官方路由模型:使用官方路由(如 deepseek-official)的模型进行桥接时,同样需要在 llm-deepseek.models 中声明 input: [text, image]。
  4. 失败处理:识图失败(网络或网关错误)不会阻塞消息,仅会在描述条目中标记失败;用户取消则原样中止。

总结

dsh-auto-vision 通过插件方式,为非视觉模型提供了视觉能力。它将图片转换为文本描述并持久化到历史记录中,使得模型能够像原生视觉模型一样处理多模态输入。若需了解最新版本或源码,可访问 GitHub 仓库。

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

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

小夜