@zzdream67/dsh-vision-bridge:讓純文本模型在 DeepSeek Harness 中讀取圖像

前言

在 DeepSeek Harness 中,直接向僅支持文本的模型粘貼圖片會被拒絕,報錯提示不支持圖像輸入。@zzdream67/dsh-vision-bridge 插件通過攔截 llm/stream 流水線,在請求到達上游提供商之前,將圖像塊替換爲視覺模型的轉錄文本。這使得純文本模型能夠接收包含圖片描述的文本,從而完成推理任務。

安裝與啓用

安裝該插件需要確保環境已安裝 dsh 命令和 pnpm(dsh plugin 內部依賴 pnpm)。推薦使用 npm 安裝預構建版本。

  1. 安裝 pnpm(如果尚未安裝):
    npm install -g pnpm
*注:`corepack enable pnpm` 在 Windows 上有時會因爲寫入權限問題失敗,直接通過 npm 全局安裝更爲可靠。*
  1. 執行安裝命令:
    dsh plugin --profile web add @zzdream67/dsh-vision-bridge

核心功能

該插件主要實現以下能力:
* 圖像攔截與替換:攔截 LLM 流水線,將圖片內容替換爲視覺模型的轉錄。
* 模型聲明注入:自動爲被橋接的模型添加 input: [text, image] 聲明,使其能通過 DeepSeek Harness 的准入檢查。
* Web 設置頁面:在 Web 設置頁面註冊自定義區域,提供可視化的配置界面。

配置與使用

插件會在 Web 設置頁面的 settings.section 中註冊一個自定義區域。在該頁面中,可以通過三個按鈕管理視覺模型:

  • 測試並啓用:向選定的視覺模型發送一張 16x16 的 PNG 圖片。只有當該模型接受圖片時,纔會寫入聲明;失敗則自動撤回。
  • 直接啓用:跳過測試步驟,直接寫入聲明。適用於已確認模型具備視覺能力的場景。
  • 重新加載:從磁盤重新讀取配置。由於桌面端沒有重新加載手勢,這是更新配置的唯一方式。

字段說明

在配置區域中,可調整以下參數:

字段 默認值 說明
enabled true 總開關。關閉時插件保留加載但不再介入,並撤回聲明。
visionProvider '' 視覺路由 ID。留空則插件不生效。
visionModel '' 視覺路由中的模型 ID。留空則插件不生效。
prompt - 發送給視覺模型的提示詞。
bridge [] 需要橋接的純文本模型 ID 列表。
manageDeclarations true 是否讓插件自動寫入/撤回模態聲明。
cacheSize 64 緩存的轉錄結果數量。設爲 0 可禁用緩存。
timeoutMs 120000 單張圖片轉錄的超時時間。

聲明機制

DeepSeek Harness 的准入門(dsh-host-apiproxy)會檢查模型的 inputModalities。如果模型未聲明支持圖像,請求會被拒絕,插件無法介入。

  • 當 manageDeclarations 開啓時,插件會自動爲 bridge 列表中的模型添加 input: [text, image] 聲明。
  • 當插件啓用且模型被橋接時,該模型實際上可以接收圖像輸入,因爲轉換髮生在調用提供商之前。
  • 聲明是“准入標籤”。它隻影響主機層是否允許圖像進入會話,不影響 Token 計數、上下文窗口或採樣行爲。

注意事項與實現細節

  • 表單渲染:僅靠主機端的架構註冊不會自動渲染表單。該插件通過手動編寫瀏覽器端 bundle 來實現 UI。
  • 卸載行爲:
    • 插件會記錄聲明前的輸入狀態。如果卸載時檢測到輸入被手動修改爲錯誤格式,插件會保留該修改。
    • 如果模型或路由已被刪除,插件會跳過該條目(不會憑空重建)。
    • 插件會嘗試恢復所有其他路由的聲明狀態。
  • 源碼與許可證:該插件使用 MIT 許可證。安裝前建議檢查源碼以確保符合安全要求。

總結

該插件解決了 DeepSeek Harness 中純文本模型無法處理圖片輸入的痛點。通過在 LLM 流水線中插入視覺轉錄層,它讓文本模型能夠間接地理解圖像內容。相關文檔與源碼可在 GitHub 查看。

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

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

小夜