前言¶
在 DeepSeek Harness (DSH) 的開發場景中,如果主對話模型不支持視覺模態,直接發送圖片字節會佔用大量上下文,或者直接導致請求失敗。dsh-view-image 插件通過引入獨立的 OpenAI 兼容視覺模型,解決了這個問題:主對話歷史只保留純文本描述,圖片字節不進上下文,從而讓純文本模型也能讀取圖片。
是什麼¶
dsh-view-image 是一個 DSH 插件,由 johnoooooo 維護。它允許用戶配置獨立的視覺模型來識別圖片,並將識別結果以純文本形式插入主對話歷史,使純文本模型具備讀圖能力。
核心功能¶
- 純文本模型也能讀圖:主對話歷史只保留「工具調用 + 純文本結果」,圖片字節不進模型上下文。
- Web 粘貼圖片即用:輸入框直接粘貼圖片即可,純文本路由下自動落庫爲持久附件並改寫爲文本標記。
- 聊天流內聯縮略圖:用戶消息內聯顯示粘貼圖(右對齊、240px、object-fit cover),支持點擊放大、懸停「複製」按鈕一鍵加入輸入框、拖拽回輸入框。
- 終端 / headless 讀圖:模型傳文件路徑即可讀圖,適合腳本化場景。
- 界面語言跟隨 dsh:按鈕和反饋文案隨 dsh 界面語言實時切換。
- 識別行爲可配置:默認提示詞、intent 後綴、主模型 intent 軟引導均可在 profile 配置層覆蓋。
- 附件持久化:內容尋址(sha256)、同圖去重、完整性校驗,會話可恢復。
- 視覺模型可插拔:支持 OpenAI 兼容端點(如 Ollama、vLLM、LiteLLM 等)。
安裝與啓用¶
克隆倉庫並安裝到目標 profile(把 web 換成你的 profile 名):
git clone https://github.com/johnoooooo/dsh-view-image.git
cd dsh-view-image
dsh plugin --profile web add file:$PWD
安裝完成後重啓 dsh 生效。
配置視覺模型¶
插件依賴獨立的視覺模型。配置文件爲 vision-model.json,默認位置爲 ~/.dsh/vision-model.json。
複製示例配置文件並編輯:
cp vision-model.example.opencode.json ~/.dsh/vision-model.json
在配置文件中填入 OpenAI 兼容端點的信息:
baseUrl:OpenAI 兼容端點地址(如 Ollama/v1、vLLM、阿里雲百鍊等)。apiKey:端點 API Key。model:視覺模型名稱。api:協議類型,默認爲openai-completions。maxTokens:最大輸出 token。
配置缺失時插件正常加載但不註冊 view_image 工具,補齊後重啓或執行 /reload 生效。
使用方法¶
Web 界面
- 在輸入框直接粘貼圖片(Ctrl+V)。
- 純文本路由下,插件將圖片落庫爲持久附件,替換成文本標記發給模型——不再彈「當前模型不支持圖片」。
- 模型看到標記後自動調用
view_image,返回純文本描述。聊天流內會顯示圖片縮略圖,支持點擊放大、懸停複製、拖拽回輸入框等操作。
終端 / headless
模型會自動調用 view_image 工具讀取圖片:
dsh --profile headless "用 view_image 工具查看 /path/to/img.png 並描述內容"
附件存儲與注意¶
附件存儲在 ~/.dsh/attachments/v1/objects/。文件按 sha256 內容尋址,同圖去重。
注意:插件沒有自動垃圾回收(GC)機制。刪除會話不會清理附件,如需清空請手動刪除該目錄。