dsh-vision-tool:爲純文本主模型補上識圖能力

前言

DeepSeek Harness (DSH) 的引擎依據模型聲明的 inputModalities 對輸入進行路由。純文本模型(不含 image)在消息准入階段會被拒絕,或者收到的圖片字節會被投影爲文本佔位符,導致無法真正處理圖片。

dsh-vision-tool 是一個由 YJLTF 維護的插件,旨在解決這一問題。它通過放寬准入、註冊工具和注入指導,將圖片理解能力委託給用戶配置的一個多模態模型,再把結果交還給主模型。同時,插件具備智能退避機制,當主模型原生支持圖片時,會自動停止干預,保持原生體驗。

核心功能

  • 放寬圖片准入:包裝 llm.resolveModelInfo 服務,讓純文本模型接收帶圖消息,但引擎仍按適配器真實元數據處理字節投影。
  • 工具集成:
    • understand_image:自動檢查會話中最近的一張圖(典型貼圖場景),或讀取指定路徑的文件。
    • list_conversation_images:列出會話中出現的全部圖片供挑選。
  • 智能退避:按模型能力退避,原生支持圖片的模型不受任何影響。
  • 指導注入:自動在系統提示中注入識圖指導,引導主模型結合上下文具體提問。
  • 配置即改即生效:支持 Web 端官方風格的配置卡片,修改配置無需重啓會話。
  • 零運行時依賴:產物約 18 kB,僅依賴宿主提供的 dsh 包與 schemastery。

安裝與啓用

在目標 dsh 環境中執行以下命令安裝:

dsh plugin --profile <profile> add github:YJLTF/dsh-vision-tool

注意:Git 安裝會拉取源碼並觸發構建。若使用 pnpm ≥ 10,首次安裝可能會失敗,需在 profile 的 pnpm-workspace.yaml 中放行構建授權:

allowBuilds:
  dsh-vision-tool: true

安全提示:放行構建即允許該包代碼在安裝期於本地執行,請僅對可信的包放行,建議釘住 commit 版本。

配置說明

插件依賴宿主環境配置,需指定視覺模型並提供方。

最小可用配置:

visionProvider: zai-coding-cn
visionModel: glm-5.3-flash

配置項說明:

字段 類型 默認值 含義
visionProvider string '' 小參數多模態模型的提供方路由。
visionModel string '' 小參數多模態模型的精確模型 id。
maxTokens number 2048 視覺調用最大輸出 token 數。
guidanceInjection boolean true 是否注入識圖指導到系統提示。
overrides [] 按模型顯式聲明模態,優先級高於適配器元數據。

前置條件:所選的視覺模型必須在 DSH 的模型配置中聲明圖片輸入能力,否則引擎會投影掉圖片字節,導致視覺模型無法識圖:

models:
  - id: <vision-model>
    input: [text, image]   # 必須聲明 image

使用示例

配置完成後,直接在會話中貼圖提問即可。

  1. 貼圖提問:用戶發送一張圖片並附帶具體問題(例如“這張圖裏的代碼有什麼問題?”)。
  2. 工具調用:純文本主模型收到圖片佔位符後,根據系統提示中的指導,自主調用 understand_image 工具(不帶 path 時默認檢查最近一張圖)。
  3. 結果返回:視覺模型對圖片進行分析並返回文本結果,主模型基於此結果繼續推理。

注意事項

  • 環境要求:需要 DSH 0.2.0-rc.2 環境(peer 範圍 ^0.2.0-rc.1,@deepseek-ai/cordis ^4.0.1)。
  • 安全風險:Git 安裝時需放行 pnpm 構建,這等同於允許該包在本地執行代碼。
  • 流式中止:工具執行的流式調用支持隨請求中止,取消即中斷。
  • 零依賴:構建產物自包含,天然適合離線分發。
羽毛球分组比赛记分
小程序二维码

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

小夜