前言¶
DeepSeek Harness (DSH) 的文本模型(如 deepseek-v4-flash)無法直接處理圖像。要實現視覺能力,通常需要接入多模態模型或對宿主進行補丁修改。analyze-image-tool 插件通過註冊 analyze_image 工具,爲文本模型提供了一個“視覺橋接”層,使其能夠通過任何 OpenAI 兼容的視覺/多模態端點回答關於圖像的問題。
插件簡介¶
這是一個通用的視覺接口插件,由 CaseyTso 維護。它不綁定特定廠商,允許用戶配置 baseURL、apiKey 和 model,從而連接 SiliconFlow、DashScope、Ollama 等任意支持 OpenAI 格式的端點。
核心功能¶
- 通用端點支持:支持任何 OpenAI 兼容的端點,無需修改插件代碼即可切換模型服務商。
- 沙盒安全讀取:本地圖片優先通過宿主沙箱的
fs通道讀取,支持 HTTP/HTTPS 和 Data URL。 - Schema 安全:使用
defineTool編譯參數,符合標準 JSON Schema,避免因 Schema 根節點非對象導致的會話 400 錯誤。 - 魯棒性設計:自動清理錯誤信息中的 API Key,自動剝離大模型思考過程中的
reasoning塊。 - 結構化返回:返回包含文本、模型名稱和 Token 使用情況的完整結構。
- 共存性:工具名稱
analyze_image不會與社區工具(如view_image)衝突。 - WebUI 設置面板:提供可視化的配置入口,支持多配置預設保存、連接性測試。
安裝與啓用¶
安裝前請確保環境滿足要求:DeepSeek Harness (dsh) 版本爲 0.1.x,Node.js 版本 ≥ 18.17。
使用以下命令安裝插件(從 main 分支安裝,包含運行時粘貼圖片橋接):
dsh plugin --profile web add github:CaseyTso/dsh-analyze-image-tool#main
dsh --profile web
插件會自動作爲 profile layer 安裝,無需手動編輯 cordis.patch.yml。
配置說明¶
推薦使用 WebUI 面板進行配置。在 Web 會話頭部右上角點擊眼睛圖標,或進入系統設置中的插件配置卡片進行編輯。
主要配置項包括:
* baseURL: 目標端點地址(如 SiliconFlow 或本地 Ollama)。
* apiKey: API 密鑰,留空則按鏈路讀取。
* model: 使用的多模態模型 ID。
* maxImageBytes: 允許上傳的圖片最大字節數,默認 10MB。
* defaultQuestion: 未指定 prompt 時的默認描述請求。
配置示例(cordis.patch.yml):
- id: analyze-image-tool
config:
baseURL: https://api.siliconflow.cn/v1
apiKey: ***
model: Qwen/Qwen3-VL-32B-Instruct
maxTokens: 2048
timeoutMs: 60000
maxImageBytes: 10485760
defaultQuestion: 描述這張圖片的細節,包括可見文字和佈局。
使用示例¶
模型調用工具時,傳入圖片路徑或附件 ID:
模型: 看下 ~/Desktop/error.png 是什麼報錯
模型 → analyze_image(path="~/Desktop/error.png", prompt="這個報錯的完整文本是什麼?")
← "TypeError: Cannot read properties of undefined (reading 'map') at …"
模型: 這是一個 … 建議 …
對於文本模型,插件會自動處理粘貼圖片的邏輯,將其轉換爲 analyze_image(attachment_id="...") 調用。
注意事項¶
- 版本差異:
v0.1.0標籤版本僅支持本地路徑和 URL,不包含粘貼圖片橋接功能。當前安裝#main分支包含該功能。 - 粘貼圖片限制:粘貼圖片的附件引用索引僅在當前進程內有效。服務器重啓後,歷史會話中無法讀取回舊的附件 ID,需重新粘貼圖片。
- 權限與安全:插件以當前 DSH 進程權限運行,調用端點時會產生 API 請求和 Token 消耗,請根據實際情況配置密鑰和超時時間。
結語¶
analyze-image-tool 通過標準化的工具接口和靈活的端點配置,解決了 DSH 文本模型接入視覺能力的通用問題,適合需要在不修改宿主代碼的情況下擴展多模態能力的場景。更多細節可參考插件目錄和GitHub 倉庫。