中文EN

dsh-vision-proxy

vision已测通过npmMIT

DeepSeek 大脑 + 自动识图:GUI 附加的每张图片自动经官方 deepseek-v4-flash-vision-exp 原生识图转译,再交给纯文本的 DeepSeek 作答(纯文本 V4-Pro 也能看图);支持任意 OpenAI 兼容 VLM 与本地 Ollama 作为备选。

下载量 / Downloads
2,484
依赖体积 / node_modules
18.11 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

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

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-vision-proxy

[English](README.en-US.md) | [简体中文](README.md)

保持 DeepSeek 作为对话大脑,图片照样直接发。 为 DeepSeek Harness 打造:GUI 附加图片自动转译,纯文本 DeepSeek 也能识图。

<p align="center">

<a href="https://awesome-dsh-plugin.com"><img src="https://awesome-dsh-plugin.com/badge.svg" alt="awesome · DSH plugin" /></a>

<a href="https://www.npmjs.com/package/dsh-vision-proxy"><img src="https://img.shields.io/npm/v/dsh-vision-proxy?style=flat-square" alt="npm version" /></a>

<a href="https://github.com/Flyvhidbwo/dsh-vision-proxy/actions/workflows/ci.yml"><img src="https://github.com/Flyvhidbwo/dsh-vision-proxy/actions/workflows/ci.yml/badge.svg" alt="CI (Node 22/24)" /></a>

<img src="https://img.shields.io/badge/tests-14%20passed-2EA44F?style=flat-square" alt="14 项测试通过" />

<img src="https://img.shields.io/badge/license-MIT-0B7285?style=flat-square" alt="MIT" />

<img src="https://img.shields.io/badge/node-%3E%3D22.19-339933?style=flat-square&logo=nodedotjs&logoColor=white" alt="Node >=22.19" />

<a href="https://github.com/Flyvhidbwo/dsh-vision-proxy"><img src="https://img.shields.io/github/stars/Flyvhidbwo/dsh-vision-proxy?style=flat-square" alt="GitHub stars" /></a>

</p>

⚠️ 兼容性与定位(2026-08):本插件已适配 dsh 0.1.1-rc.2(adapter prepareCall 接口)。dsh 0.1.1 起原生支持多模态(DeepSeek-V4-Flash-Vision-Exp 等官方视觉模型)——如果你用官方视觉模型,直接发图即可,不需要本插件。DeepSeek-V4-Pro / 普通 Flash 仍是纯文本模型,识图靠本插件转译桥接(官方仅 Flash-Vision-Exp 原生多模态)。插件适用于:Pro/文本模型识图、本地 Ollama(图片不出本机、免费)、自定义 OpenAI 兼容 VLM 场景。

为什么需要它

DeepSeek Harness 原生按模型声明的 inputModalities 决定是否放行图片附件。DeepSeek 的 chat-completions 线路是纯文本的,所以选中 DeepSeek 时附加图片会被原生拒绝。已有的视觉插件提供 view_image 等工具(适用于文件路径),但 GUI 图片附件对纯文本模型依然失败。

本插件补上这个缺口:注册一条新提供商路由(deepseek-vision),包装真正的 DeepSeek 适配器——对外声明支持图片输入(附件预检放行),并在请求流里把每张附加图片转译成文字后再委托给 DeepSeek。对话仍然由 DeepSeek 作答,识图只是附加能力。

用户附加图片 ──▶ deepseek-vision 路由 ──▶ 经 VLM 转译(OCR+版式+细节)
                   │                        │
                   ▼                        ▼
            DeepSeek 作答 ◀── 纯文本对话(图片已替换为 [图片转译] 文字)

特性

  • 绝不卡死。匿名端点强制 20 秒超时上限(免费档挂起也拖不住整轮对话);匿名端点遇到 HTTP 429 立即失败(不做无意义的 Retry-After 等待);刚失败(429/超时)的端点进入 60 秒冷却并被跳过。
  • 多模型、多厂商。任何 OpenAI 兼容 VLM 端点都行——百炼/Qwen、QwenCloud 国际站、智谱、OpenRouter、本地 Ollama、或你自己的端点。每条 fallbackModels 都可以带各自独立的 baseURL/model,一个安装即可串联多家。
  • 零配置本地路径。autoLocalOllama(默认开)启动时探测 http://localhost:11434,检测到 Ollama 就自动加入降级链——图片不出本机,免 key 免注册。
  • 快速且明确的失败。没有 key 也没有本地 Ollama 时,转译在几秒内失败并给出可操作指引(配置 VISION_API_KEY / DASHSCOPE_API_KEY 或安装 Ollama)——绝不静默卡住。
  • 有 key 自动提速。导出 VISION_API_KEY / DASHSCOPE_API_KEY 后自动走你配置的付费端点(默认百炼 qwen3.7-flash——快、便宜、不限速;百炼/QwenCloud/智谱/OpenRouter 或任意 OpenAI 兼容端点均可);没有 key 的条目会被跳过而不是失败。
  • 安装时一问式确认。postinstall 询问你是否有 VLM API key。非交互环境自动跳过,安装永不卡死。启动时打印 PRIVACY NOTICE 标明当前使用的端点。
  • 降级链 + 错误分类。rate_limit / quota / auth / region / model_not_found / context_too_large / http 分类给出可操作提示。
  • 内容哈希缓存。转译结果按图片字节的 SHA-256 缓存(进程内,上限 200)——同一张图每个进程最多转译一次,重新附加或换对话也命中。
  • 自动降采样(可选)。装有 sharp 时,超过 maxImagePixels 的图片转译前自动缩小——大截图更快;没有 sharp 则优雅降级原图直发。
  • 兼容 read_image。原生 read_image 工具在该路由下同样可用(它的能力门禁读取同一份模型信息)。

支持的模型与厂商

一套配置(baseURL + model,可选 apiKey)覆盖所有后端:

场景 · baseURL · model · 说明

百炼(国内)——默认主模型 · https://dashscope.aliyuncs.com/compatible-mode/v1 · qwen3.7-flash / qwen3-vl-flash · 便宜、快、不限速。密钥:千问平台 sk-ws-… 或百炼 sk-…

本地 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 · 免费档仍需注册智谱(免费)key

任意 OpenAI 兼容端点 · 你的端点 · 你的模型 · OpenRouter、火山 Ark、vLLM、各类网关……插件只讲 /chat/completions

⚠️ 不再内置任何第三方匿名免费端点作为默认兜底。实测中匿名免费端点(如 OVHcloud AI Endpoints)限速极严且会无响应挂起——作为默认只会复现"卡死"体验。如果你仍想用某个匿名端点,请通过 fallbackModels 自行添加并设 anonymous: true(20 秒超时上限依然生效)。

价格参考(人民币,百炼国内站 2026-08 参考价)

模型 · 输入 · 输出 · 一张 1080p 截图(≈2000 token)

qwen3-vl-flash · ¥0.15/百万 token · ¥1.5/百万 token · ≈ ¥0.0005(约 0.05 分钱)

qwen3.7-flash · ¥0.2/百万 token · ¥0.8/百万 token · ≈ ¥0.001(约 0.1 分钱)

deepseek-v4-flash-vision-exp(官方,默认) · ¥3/百万(高峰)· ¥1.5(空闲) · ¥9/百万(高峰)· ¥4.5(空闲) · ≈ ¥0.01(高峰)/ ¥0.005(空闲)

本地 Ollama · 免费 · 免费 · ¥0(图片不出本机)

温馨提示:识图默认走官方 deepseek-v4-flash-vision-exp(高峰 9:00-12:00 / 14:00-18:00 为全价,其余时间半价;图片按尺寸折算 token,不按张计费)。与 V4-Pro 同档价约 1/3。
图片按 token 折算(各平台把图片按分辨率折算成 token,一张 1080p 截图 ≈ 2000 token)。按上面价格,一张图不到 1 厘钱;即使重度使用(每天 100 张)每月也就几块钱,基本可以忽略。本地 Ollama 完全免费。以百炼控制台实时标价为准。

key 读取顺序:配置 apiKey → $VISION_API_KEY → $DASHSCOPE_API_KEY。匿名端点(anonymous: true)和本地主机无需 key;无 key 的非匿名条目自动跳过。

快速开始

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

安装时会问你一个问题——你有 VLM API key 吗? 回答 y 走付费快速通道,回答 N(默认)走本地/零配置路径。重启 dsh web,在模型选择器里选 DeepSeek + 自动识图,然后把图片粘贴进任意对话——完事。

pnpm ≥ 10 默认拦截依赖构建脚本——首次安装会以非零码退出并提示 Ignored build scripts: dsh-vision-proxy, sharp。请批准两者(插件的安装确认提示 + sharp 的可选二进制),然后重跑一次安装完成 bundle 注册:

# 写在 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(参数会转发给 pnpm)。

现场演示:真实对话中的识图

一段 deepseek-vision 路由上的真实对话(DeepSeek-V4-Flash 作为大脑):用户粘贴了一张表情包并问 "你看到了什么",图片被 VLM 自动转译,DeepSeek 基于文字完整作答——单步,约 7.6 秒。

<p align="center">

<img src="assets/demo-selector.png" width="49%" alt="模型选择器:DeepSeek + 自动识图 路由已选中" />

<img src="assets/demo-reply.png" width="49%" alt="DeepSeek 基于转译内容的完整回答" />

</p>

左图:模型选择器显示 deepseek-vision 路由(DeepSeek + 自动识图)已选中——这正是图片附件得以放行的原因。右图:DeepSeek 基于转译文字给出的完整回答。

用户粘贴表情包 + "你看到了什么"
  → 图

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:21,最后更新 2026-08-22

链接

GitHub · Homepage · npm

同类插件