前言¶
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(推薦)¶
- 打開 DSH 設置。
- 進入「插件」面板。
- 在「官方」分組中找到「視覺助手 vision-assist」卡片。
- 在詳情頁中啓用總開關,選擇識別模型(需在
llm-pi-ai中配置)和超時時間。 - 點擊保存,配置即時生效。
方式二: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 中純文本模型無法處理圖片輸入的痛點。通過工具調用和請求改寫,它在不修改原有請求鏈路的前提下,爲模型增加了視覺能力,適合需要在多種模型間切換但保持視覺處理統一的場景。