dsh-vision:DeepSeek Harness 識圖路由插件

DeepSeek Harness 的核心設計理念是「一切皆插件」。在構建智能體或工作流時,經常會遇到純文本路由模型(如 DeepSeek)需要處理圖片附件的場景。直接發送圖片會導致模型報錯或無法理解,強行轉爲 Base64 又會增加 Token 消耗。dsh-vision 插件解決了這一痛點,通過一個橋接層,讓純文本模型也能「看」懂圖片。

插件介紹

dsh-vision 是一個用於 DeepSeek Harness 的 Vision Bridge 插件,由用戶 lakeofsky347 維護。它通過將用戶上傳的圖片交給專門的視覺模型生成文字描述,再將描述回填給純文本模型,從而避免內容不支持導致的整輪對話失敗。

核心功能

  • 圖片轉文字:自動將圖片塊交給視覺模型(默認 xiaomi/mimo-v2-omni)生成描述,替換原圖片塊。
  • 記憶化緩存:按 (session, 附件 ID) 記憶描述,歷史回放複用文本,避免重複計費。
  • 容錯降級:視覺模型調用失敗時,降級爲佔位文本,保證 DeepSeek 回合不中斷。
  • 併發隔離:使用 WeakSet 標記不同回合,無全局狀態,互不干擾。
  • Bundle 模式:安裝後自動插入插件行,無需手動編寫配置。
  • 零開銷透傳:請求中無圖片塊或路由模型原生支持圖片時,原樣透傳。

安裝與啓用

插件以 Bundle 模式發佈,安裝命令如下:

dsh plugin --profile web add github:lakeofsky347/dsh-vision

注意事項

  • 環境要求:需安裝 pnpm 版本 ≥ 10。
  • 構建權限:首次從 GitHub 安裝時,git 依賴的 prepare 腳本默認被禁止,安裝會失敗。此時需在 profile 的 pnpm-workspace.yaml 中添加 allowBuilds.dsh-vision: true,然後重新執行安裝命令。
  • 許可協議:MIT 許可證。

配置與使用

安裝後,插件會自動插入配置行。需要在本地 ~/.dsh/profiles/<name>/cordis.patch.yml 文件中覆蓋配置,指定視覺模型的 provider 和 model:

- id: vision
  name: dsh-vision
  config:
    provider: xiaomi-token-plan-cn
    model: mimo-v2.5

配置項說明如下:

配置項 默認值 說明
provider xiaomi 視覺模型所在的路由
model mimo-v2-omni 視覺模型 ID
prompt (見源碼) 隨圖發給視覺模型的指令
cache true 是否按會話和附件記憶化描述
maxTokens - 視覺調用輸出 token 上限(可省略)

在純文本模型會話中直接處理圖片附件,插件會自動介入並完成轉換。

技術原理

插件在 llm/stream waterfall 上註冊監聽器,根據不同情況採取不同策略:

  1. 無圖片塊:直接調用 next() 原樣透傳(零開銷)。
  2. 原生支持圖片:如果路由模型聲明瞭 image 輸入模態(如直接路由到 mimo),請求原樣放行。
  3. 純文本模型 + 圖片:插件否決鏈並返回惰性異步生成器:
    • 解析路由模型的輸入模態。
    • 遍歷消息,對攜帶圖片塊的內容調用一次視覺模型(基於 (session, 附件 ID) 緩存)。
    • 將圖片塊替換爲 [用戶附件圖片的視覺描述] 文本塊後重建請求。
    • 帶重入標記重新進入 ctx.llm.stream(),防止再次觸發監聽。

適用場景與注意

該插件適用於需要在純文本路由模型中處理圖片附件的場景。由於插件以當前進程權限運行,安裝前請務必檢查源碼與許可證。更多細節可參考插件目錄頁或 GitHub 倉庫。

插件目錄 | GitHub 倉庫

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜