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 倉庫。

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

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

小夜