DeepSeek Harness (DSH) 採用插件化架構,允許擴展原生不支持的功能。如果你在 deepseek-v4-pro 或 deepseek-v4-flash 等不支持圖片輸入的模型上發送截圖,消息會被網關直接拒絕。dsh-auto-vision 插件解決了這個問題,它攔截圖片,利用配置的視覺模型進行識別,將圖片描述作爲摺疊的上下文條目寫入會話歷史,而你的原始消息保持不變。
插件簡介¶
dsh-auto-vision 是由 soarGuo 維護的 DSH 插件,屬於模型推理類別。它不修改 DSH 源碼,通過純插件配置實現功能。其核心價值在於:讓不支持圖片輸入的模型也能接收截圖,並持久化視覺上下文。
核心功能¶
- 自動補全模型輸入聲明:默認開啓
autoDeclareInput,插件會自動給已配置的模型補全input: [text, image]聲明,滿足網關准入檢查。 - 拆分消息處理:將圖片識別爲文本描述,作爲獨立的“notice”上下文消息追加在原消息後。模型可以引用這些歷史描述,實現持久化記憶。
- 請求級剝離:在發送給模型請求時,將圖片數據替換爲短佔位符,確保圖片不會實際到達網關,避免被拒絕。
- 識圖路由跟隨分組:識圖模型的選擇自動跟隨當前會話模型的分組(如 sub2api 或官方路由),保證密鑰和配置的一致性。
- 遞歸識別工具結果:不僅識別頂層消息圖片,還能遞歸識別工具結果(如
read_image)中內嵌的圖片。
安裝與啓用¶
使用 DSH 官方插件命令進行安裝:
dsh plugin --profile web add github:soarGuo/dsh-auto-vision
安裝完成後,重啓 DSH 進程即可生效。插件依賴 DSH 的公開模塊,無需額外運行時依賴。
典型配置¶
默認配置¶
插件安裝後即可使用默認配置,無需手動修改 settings.yaml:
auto-vision:
visionProvider: deepseek-official
visionModel: deepseek-v4-flash-vision-exp
nativeVision:
[
{ provider: deepseek-official, model: deepseek-v4-flash-vision-exp },
{ provider: deepseek, model: deepseek-v4-flash-vision-exp }
]
autoDeclareInput: true
手動聲明¶
如果關閉了 autoDeclareInput,或者需要使用非默認的視覺模型,需在 settings.yaml 中手動聲明:
llm-deepseek:
models:
- id: deepseek-v4-pro
input: [text, image]
注意事項¶
- GUI 顯示與實際行爲:聲明
input: [text, image]後,GUI 會顯示模型支持圖片,但實際圖片由插件橋接,不會發送到網關。 - 插件停用後:如果停用插件,不要向被橋接的模型發送圖片,否則圖片會直達網關並被拒絕。此時應切換到原生視覺模型或恢復插件。
- 官方路由模型:使用官方路由(如
deepseek-official)的模型進行橋接時,同樣需要在llm-deepseek.models中聲明input: [text, image]。 - 失敗處理:識圖失敗(網絡或網關錯誤)不會阻塞消息,僅會在描述條目中標記失敗;用戶取消則原樣中止。
總結¶
dsh-auto-vision 通過插件方式,爲非視覺模型提供了視覺能力。它將圖片轉換爲文本描述並持久化到歷史記錄中,使得模型能夠像原生視覺模型一樣處理多模態輸入。若需瞭解最新版本或源碼,可訪問 GitHub 倉庫。