dsh-vision-assist:爲無視覺能力的模型添加多模態識別能力

前言

DeepSeek Harness (DSH) 的插件化架構允許擴展原生功能。在模型推理鏈路中,如果當前路由的模型不支持圖片輸入(如某些純文本模型),直接發送圖片塊會觸發 model does not support image input 的拒絕錯誤。

dsh-vision-assist 插件通過攔截 LLM 調用邊界,將圖片轉換爲文本指令,從而讓純文本模型也能“看”圖。它本質上是給沒有視覺能力的主模型配了一個可隨時切換的多模態“側車”。

插件概覽

  • 插件名稱:dsh-vision-assist
  • 維護者:wjling
  • 分類:模型推理
  • 許可證:MIT

核心功能

1. vision_recognize 工具

插件在 host 級註冊了 vision_recognize 工具,任意會話均可直接調用該工具,使用選定的多模態模型識別本地圖片。

2. 模型調用邊界圖片降級

當會話路由的模型不支持圖片輸入時,插件會在 ctx.llm.prepareCall / ctx.llm.stream 邊界攔截請求:
- 克隆請求對象。
- 將圖片塊(含 tool-role 消息)替換爲“附件倉路徑 + vision_recognize 指引”的文本。
- 主模型正常接單,調用 vision_recognize 工具。
- ctx.llm.stream 直連選定的多模態模型獲取識別文本,繼續任務。

3. 熱更新配置與 UI

插件提供了設置頁 UI,支持在 DSH 設置 → 插件 → 「視覺助手 vision-assist」卡片中直接切換識別模型和超時時間。配置修改後保存即時生效,無需重啓 DSH。

安裝

確保你的 DSH 版本 >= 0.1.7-alpha.1。執行以下命令安裝:

dsh plugin --profile web add github:wjling/dsh-vision-assist

安裝後需要重啓 DSH 以激活插件。

配置

插件支持兩種配置方式:

方式一:設置頁 UI(推薦)

  1. 打開 DSH 設置。
  2. 進入「插件」面板。
  3. 在「官方」分組中找到「視覺助手 vision-assist」卡片。
  4. 在詳情頁中啓用總開關,選擇識別模型(需在 llm-pi-ai 中配置)和超時時間。
  5. 點擊保存,配置即時生效。

方式二:profile patch

在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中添加:

- id: vision-assist
  config:
    enabled: true
    provider: <provider_name>
    model: <model_id>
    timeoutMs: 300000

注意:選定的模型必須在 llm-pi-ai.providers.<provider>.models 中聲明 input: [text, image],否則 DSH 會拒絕該模型的圖片輸入。

工作原理

流程如下:
1. 用戶在輸入框發送圖片。
2. api-session-controller 進行模態預檢。如果模型支持圖片,請求正常進入會話,GUI 顯示原圖。
3. 當主模型發起 LLM 調用時,插件檢查模型是否支持視覺輸入。
4. 若不支持,插件克隆請求,將圖片塊改寫爲文本指令(包含本地附件路徑)。
5. 主模型接收到指令,調用 vision_recognize 工具。
6. vision_recognize 觸發視覺模型識別,返回文本,主模型繼續處理任務。

注意事項

  • 原圖存儲:所有上傳的原圖始終保存在 ~/.dsh/attachments/v1/objects/,按內容尋址。
  • UI 歷史保留:GUI 氣泡與會話歷史始終保留原始圖片,只有發往無視覺模型的那次請求被改寫爲識別指引。
  • 兼容性:需要 Node >= 20 和 DSH >= 0.1.7-alpha.1。

總結

dsh-vision-assist 解決了 DSH 中純文本模型無法處理圖片輸入的痛點。通過工具調用和請求改寫,它在不修改原有請求鏈路的前提下,爲模型增加了視覺能力,適合需要在多種模型間切換但保持視覺處理統一的場景。

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

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

小夜