前言¶
在 DeepSeek Harness(DSH)裏選了一條只支持文本的路由,卻想把截圖或設計稿一併丟進對話——以前常見結果是輸入框直接拒收,或者你得另配一套視覺 API、再查 model ID。若你已經在某個 Provider 上配好了密鑰和 base URL,更希望「同一條鏈路裏」把圖讀出來,再交給當前主模型回答,可以看一下社區插件 dsh-auto-vision(npm 包名 dsh-auto-sight)。它在請求發出前,用同一 Provider 上的視覺模型把圖片轉成文字描述,再替換成文本塊交給純文本主模型;插件本身不保存、不轉發 API Key,沿用 Provider 配置裏已有的憑據引用。
這是什麼¶
dsh-auto-vision 由 thanderming 維護,分類屬於模型推理。一句話:當所選模型不支持 image 輸入、或識別不可用時,Auto Vision 會在同一 Provider 上自動找可用的視覺模型讀圖,再把原請求裏的圖片塊換成帶標註的文本描述,主模型仍是你選的那條文本路由。
與「再配第二個視覺服務」相比,README 強調的三點是:不必第二個 API;不必手填 model ID(可選在 Settings 指定);拖進純文本模型輸入框的圖片不再被直接拒絕,而是先讀再答。
核心功能¶
插件掛載在 llm/stream 上,僅在同時滿足下列條件時介入:請求裏至少有一個 image 塊;主路由未聲明 image 能力;且在同一 Provider 上能解析到視覺目標。否則原樣透傳。
讀圖成功後,每個圖片塊會被替換爲類似 [Image #n interpreted by <model>] … [/Image #n] 的文本塊。會話歷史和 UI 仍保留真實圖片,只有發往文本模型的請求被改寫。
視覺模型選擇順序(前一組失敗才試下一組):Settings 裏指定的模型 → 同 Provider 上其他已掛載且支持 image 的模型 → 官方 /models 列表裏按名稱匹配的候選。若指定模型失敗,會依次嘗試其餘目標,並在塊上標記 after <failed model> failed;全部失敗時插入 [Image #n could not be interpreted by any vision model: …],同一輪裏其他圖片仍會繼續處理。
若主模型本身已支持看圖,默認不介入;在 Settings 選了視覺模型後,可開啓 Use the vision model even when the main model can see images,強制仍先用視覺模型讀一遍(未選視覺模型時該開關無效)。
對未在本地掛載、或適配器已知爲純文本的模型,會通過 Provider 的 OpenAI 兼容 /chat/completions 端點調用,這要求 Provider 配置裏有可用的 baseURL 與 apiKeyEnv。
插件還會爲「有視覺 sibling 的文本路由」在模型選擇器裏展示 image 輸入能力,便於直接附圖。某模型首次在無 image 聲明的情況下成功讀圖後,會把 input: [text, image] 寫回該 Provider 的 llm-pi-ai 配置(僅發生在真實用戶帶圖請求之後,不做後臺探測);失敗或取消的請求不會寫入。
每張圖默認 60 秒超時;會話內內存緩存 128 條結果,並對進行中的相同請求去重。視覺提示裏把圖片內容視爲不可信數據(要求模型不執行圖中指令),但讀出的文字仍會進入主模型上下文。
安裝與啓用¶
官方安裝方式如下。
dsh plugin add github:thanderming/dsh-auto-vision
也可從 DSH 插件市場安裝。同一代碼以預構建形式發佈到 npm:dsh-auto-sight(npm i dsh-auto-sight),無需安裝時構建或 allowBuilds 確認。
插件以當前 DSH 進程權限運行;安裝前請自行查看倉庫源碼與 MIT 許可證。Node 要求 >=20(見 package.json)。
Settings 配置¶
路徑:Settings → Auto Vision。按 Provider 分組選擇視覺模型,或保持 Automatic。選擇保存在 volatile config,對下一次帶圖請求生效。爲其他 Provider 選的模型會被忽略;插件總是在處理當前請求的那個 Provider 上解析目標。
| 配置鍵 | 默認值 | 含義 |
|---|---|---|
visionProvider / visionModel |
空 = 自動 | 用於讀圖的模型;跨 Provider 的選擇無效 |
preferVisionModel |
false |
主模型已支持 image 時仍先用所選視覺模型;須已選視覺模型 |
timeoutMs |
60000 |
單張圖片讀取超時(毫秒) |
選擇器三組:Guaranteed(配置聲明 input: [text, image])、Configured without image input(已掛載但未聲明 image,按名稱展示)、Official candidates(/models 無模態元數據,名稱猜測,默認摺疊)。成功讀圖後自動標記的模型需刷新 Settings 頁纔會進入 Guaranteed 組。
典型用法¶
- 安裝插件後,在 DSH 裏照常選擇一條純文本模型路由。
- 在對話中附上圖片(或對已有視覺 sibling 的文本路由直接附圖)。
- 發送消息:插件在同 Provider 上調用視覺模型讀圖,主模型收到的是帶
[Image #n interpreted by …]包裹的描述文本,並基於該描述作答。 - 若需固定讀圖模型或主模型本身也能看圖但仍想先走視覺模型,打開 Settings → Auto Vision 完成選擇並按需開啓 preferVisionModel。
無需在插件配置裏填寫 API Key;憑據在請求時從該 Provider 的 apiKeyEnv 讀取,密鑰不會進入插件配置、日誌或瀏覽器 UI。圖片只發給同一 Provider 上的視覺模型,不送往第三方服務;描述僅會話內存緩存,不寫磁盤。
適用場景與注意¶
適合:已在某一 Provider 上統一配好密鑰與路由,希望用純文本或「未聲明 image」的模型處理帶圖對話;不想維護第二套視覺 API 與 model ID 列表的 DSH 用戶。
限制與成本(均來自 README):
- 僅同 Provider:不會跨 API 去調別的服務商上的視覺模型。
- 官方
/models列表只有 model ID 等基礎字段,名稱匹配的候選不保證接受圖片;直連還需baseURL與可用apiKeyEnv。 - 每張未命中緩存的圖片會多一次模型調用。
- 自動寫回
llm-pi-ai可能與併發編輯 Settings 衝突,僅打警告不重試,不影響當次回答。 - 同 Provider 上若沒有任何視覺模型可用,會佔位失敗文本並仍讓主模型告知用戶。
DSH 生態強調「一切皆插件」;社區目錄 SkillHub 上的 dsh-auto-vision 頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-auto-vision 把「讀圖」和「作答」拆成同 Provider 內的兩步:視覺模型負責描述,文本主模型負責推理與回覆,配置面儘量複用已有 Provider。需要細節、Issue 或源碼時見 GitHub:https://github.com/thanderming/dsh-auto-vision;目錄介紹見 https://www.skillhub.cn/plugins/thanderming/dsh-auto-vision。