dsh-vision-proxy:DeepSeek 純文本模型也能在 GUI 裏識圖

前言

DeepSeek Harness(DSH)按模型聲明的 inputModalities 決定是否放行 GUI 圖片附件。DeepSeek-V4-Pro、普通 Flash 等 chat-completions 線路是純文本模型,選中它們時直接粘貼圖片會被原生拒絕。社區裏已有視覺插件提供 view_image 等工具,但那是面向文件路徑或 URL 的路徑;對話中途附加的圖片塊,對純文本模型仍然過不去。

dsh-vision-proxy 由 Flyvhidbwo 維護,在 DSH 裏註冊一條 deepseek-vision 提供商路由,對外聲明支持圖片輸入,在請求流裏把每張附加圖片經 VLM 轉譯成文字,再委託給真正的 DeepSeek 適配器作答。對話大腦仍是 DeepSeek,識圖是附加橋接能力。插件當前版本 0.4.1,MIT 許可,GitHub 14 stars,分類爲模型推理。

需要說明的是:自 dsh 0.1.1 起,官方視覺模型(如 DeepSeek-V4-Flash-Vision-Exp)已原生多模態,直接發圖即可,不必裝本插件。本插件主要面向 Pro/文本 Flash 識圖、本地 Ollama、以及自定義 OpenAI 兼容 VLM 場景。插件已適配 dsh 0.1.1-rc.2 的 adapter prepareCall 接口。

這是什麼

dsh-vision-proxy 是 DeepSeek Harness 的 bundle 插件。它包裝現有 DeepSeek 適配器,註冊 deepseek-vision 路由(模型選擇器顯示爲 DeepSeek + 自動識圖),在附件預檢階段放行圖片,隨後用視覺語言模型把圖片內容(OCR、版式、細節)轉譯爲帶 [圖片轉譯] 前綴的純文本,再交給 DeepSeek 生成回答。

數據流如下:

用戶附加圖片 ──▶ deepseek-vision 路由 ──▶ 經 VLM 轉譯(OCR+版式+細節)
                   │                        │
                   ▼                        ▼
            DeepSeek 作答 ◀── 純文本對話(圖片已替換爲 [圖片轉譯] 文字)

GUI 附加圖片默認經官方 deepseek-v4-flash-vision-exp 做識圖轉譯(與 V4-Pro 同檔價約 1/3);也可在配置裏換成百鍊、智譜、OpenRouter 等任意 OpenAI 兼容 VLM,或依賴 autoLocalOllama 自動探測本地 Ollama。

核心功能

路由與轉譯

  • 註冊 providerId: deepseek-vision,內部委託 innerProvider: deepseek-official
  • 每張 GUI 圖片塊經 VLM 轉譯後再進入 DeepSeek 對話;同一路由下原生 read_image 工具同樣可用。
  • 轉譯結果按圖片字節 SHA-256 做進程內緩存(上限 200 條),同一張圖每個進程最多轉譯一次。

多後端與降級

  • 支持任何 OpenAI 兼容 /chat/completions 端點:百鍊/Qwen、QwenCloud 國際站、智譜、OpenRouter、本地 Ollama、自建網關等。
  • fallbackModels 可串聯多家,每條可帶獨立 baseURL / model / apiKey
  • autoLocalOllama 默認開啓:啓動時探測 http://localhost:11434,檢測到 Ollama 即加入降級鏈,圖片不出本機,免 key。
  • API key 讀取順序:配置 apiKey → 環境變量 VISION_API_KEYDASHSCOPE_API_KEY。無 key 的非匿名條目會被跳過而非直接失敗。

穩定性

  • 匿名端點強制 20 秒超時;遇 HTTP 429 立即失敗,不做 Retry-After 等待;剛失敗端點進入 60 秒冷卻。
  • 沒有 key 也沒有本地 Ollama 時,轉譯在幾秒內失敗並給出可操作指引,不靜默掛起。
  • 錯誤按 rate_limit / quota / auth / region / model_not_found / context_too_large / http 分類提示。
  • 裝有可選依賴 sharp 時,超過 maxImagePixels(默認 4000000)的圖片轉譯前自動降採樣;未安裝則原圖直髮。

安裝交互

  • postinstall 腳本會詢問是否有 VLM API key:回答 y 走付費快速通道,回答 N(默認)走本地/零配置路徑;非交互環境自動跳過。
  • 啓動時打印 PRIVACY NOTICE,標明當前使用的端點。

安裝與啓用

運行環境要求 Node >= 22.19,dsh >= 0.1.0-rc.6。官方安裝命令如下:

dsh plugin --profile web add dsh-vision-proxy

pnpm >= 10 默認攔截依賴構建腳本,首次安裝可能以非零碼退出並提示 Ignored build scripts: dsh-vision-proxy, sharp。需要在 profile 的 pnpm-workspace.yaml 裏批准兩者,然後重跑安裝:

allowBuilds:
  dsh-vision-proxy: true
  sharp: true
dsh plugin --profile web add dsh-vision-proxy

npm 官方源較慢時,可指定鏡像:

dsh plugin --profile web add dsh-vision-proxy --registry=https://registry.npmmirror.com

安裝完成後重啓 dsh web,在模型選擇器裏選 DeepSeek + 自動識圖deepseek-vision 路由),即可在對話裏直接粘貼圖片。

典型用法

GUI 粘貼識圖

  1. 啓動 DSH Web,選中 deepseek-vision 路由。
  2. 在對話輸入框粘貼圖片並提問,例如「你看到了什麼」。
  3. 插件把圖片塊經 VLM 轉譯爲文字(含 OCR 與版式描述),DeepSeek 基於轉譯文本作答。

README 中的示例:用戶粘貼表情包並提問,VLM 輸出類似「我是喫白飯的 / 藍色大肥魚!……Q 版藍髮女僕裝少女,身後藍鯨尾巴,端碗舉筷,表情興奮」,DeepSeek 據此做完整視覺分析。單步約 7.6 秒(README 現場演示數據)。

自定義 VLM 後端

如需改用百鍊或其他端點,在 profile 裏用 id 定向覆蓋,不要用 insert(否則會重複註冊 adapter)。示例:

# $DSH_HOME/profiles/web/cordis.patch.yml
- id: dsh-vision-proxy
  name: 'dsh-vision-proxy'
  config:
    baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
    apiKey: 'sk-…'
    model: qwen3.7-flash
    maxTokens: 4096
    timeoutMs: 120000
    maxImagePixels: 4000000
    marker: '[圖片轉譯]'
    autoLocalOllama: true
    fallbackModels: []

常用後端參考(均走 OpenAI 兼容模式):

場景 baseURL model
百鍊(國內) https://dashscope.aliyuncs.com/compatible-mode/v1 qwen3.7-flash / qwen3-vl-flash
本地 Ollama(自動探測) http://localhost:11434/v1 第一個視覺模型
QwenCloud(國際) https://dashscope-intl.aliyuncs.com/compatible-mode/v1 qwen3-vl-plus
智譜 https://open.bigmodel.cn/api/paas/v4 glm-4.6v-flash

適用場景與注意

適合誰

  • 想在 DSH GUI 裏用 DeepSeek-V4-Pro 或純文本 Flash 處理圖片附件。
  • 希望圖片經本地 Ollama 轉譯、不出本機。
  • 已有百鍊、智譜、OpenRouter 等 OpenAI 兼容 VLM key,想統一接入。

不必安裝的情況

  • 已選用官方原生多模態模型 DeepSeek-V4-Flash-Vision-Exp,直接發圖即可。

安全與權限

  • 插件以當前 dsh 進程權限運行,會向配置的 VLM 端點發送圖片數據;安裝前應閱讀源碼與 MIT 許可證,確認端點與隱私策略可接受。
  • 啓動時的 PRIVACY NOTICE 會標明實際使用的轉譯端點;本地 Ollama 路徑下圖片不出本機。

配置注意

  • 覆蓋配置請用頂層 - id: dsh-vision-proxy,勿寫 - insert: [{id: dsh-vision-proxy, …}],否則同 id 條目重複實例化,行爲未定義。
  • Windows 下環境變量變更可能不生效,建議在 cordis.patch.yml 裏直寫 apiKey
  • 插件不再內置匿名免費端點作爲默認兜底;若自行添加匿名端點,須設 anonymous: true,20 秒超時上限仍生效。

結尾

dsh-vision-proxy 把「DeepSeek 作對話大腦」和「GUI 圖片附件」接在一起:純文本 DeepSeek 模型也能看圖,轉譯後端可走官方視覺模型、百鍊等雲端 VLM,或零配置的本地 Ollama。對於需要在 Harness 裏保持 Pro 推理、又不想放棄粘貼識圖的工作流,這是一條可直接落地的路徑。

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/Flyvhidbwo/dsh-vision-proxy
  • GitHub 倉庫:https://github.com/Flyvhidbwo/dsh-vision-proxy
羽毛球分组比赛记分
小程序二维码

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

小夜