跳到主内容

dsh-vision

7Star1Fork1Issue0Watching

给纯文本 DeepSeek 加上视觉能力:默认走豆包 Web 零成本通道,支持多通道自动降级,结构化证据记忆跨轮复用。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
antigravitydoubaodshdsh-plugingeminiimage-recognitionmultimodalocr

安装

命令web profile
$ dsh plugin --profile web add dsh-vision-web

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 54xkeee/dsh-vision:先查看仓库 https://github.com/54xkeee/dsh-vision 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给纯文本 DeepSeek 模型装上视觉能力:把图片转成模型能"看到"的占位符并暴露一个 vision 工具,让模型在对话中主动调用识图。默认走豆包 Web 通道,浏览器登录即可使用,不要求任何 API key。

核心能力

  • 图片占位化:把用户消息里的图片块转成文字占位符,喂给原本只吃文本的 DeepSeek,避免"粘贴图片被拒"
  • 注册 vision 工具:让模型主动调用,单图/多图/OCR/区域细查/多图对比都能识别
  • 自动档位升级:detail=auto 时先跑标准检查,被判定为复杂画面再自动跑深度检查
  • 视觉证据记忆:识别结果写入会话时间线,跨轮复用、会话压缩后还能自动恢复
  • 内容哈希缓存:同图同问同通道同档位,进程内只识一次,避免重复扣费或重跑
  • 多通道自动降级:豆包 Web / Antigravity IDE 额度 / Gemini API / Cockpit 反代 / aicode 直连 / 通用 IDE CLI(Claude Code、Gemini CLI 等),按配置自动选择

技术实现

  • 语言: TypeScript(服务端 + React 客户端)
  • 关键依赖: @deepseek-ai/dsh-tools(注册工具)、@deepseek-ai/schemastery(Config 校验)、@deepseek-ai/dsh-llm(消息构造)
  • 架构模式: 双端插件——服务端 src/index.ts 注册 LLM 适配器和 vision 工具并暴露 /api/vision,客户端 src/client/plugin.tsx 在会话头部挂"识图"面板;豆包 Web 通道额外需要在 Windows 侧跑 bridge.mjs(puppeteer-core 驱动已登录 Chrome)
  • 入口文件: 服务端 src/index.ts(导出 apply、Config),客户端 src/client/plugin.tsx(导出 apply),队列桥接 bridge.mjs

适用场景

DSH 用户在对话里粘贴图片想让 DeepSeek 帮忙看,但模型本身只吃文本。比如问"截这张报错给我解释"、"对比这两张 UI 截图哪张更好"、"把这段聊天记录 OCR 出来"。如果不想配 API key 又想看图,默认通道登录一次豆包就行;如果有 Antigravity/Gemini/Claude Code 订阅,还能换通道用额度。

前置依赖与兼容性

依赖最低版本说明
DSH>= 0.1.0engines.dsh 声明
Node>= 20engines.node 声明
运行平台WSL + Windows 浏览器默认豆包 Web 通道依赖 Windows 侧 bridge.mjs 驱动 Chrome;非 WSL 环境也能装,但要走 API 通道
系统调用Windows curl.exe、PowerShellAPI 通道走 /mnt/c/Windows/System32/curl.exe;Antigravity 通道自动发现 language_server.exe 需要 PowerShell
系统目录C:\Temp桥接与 API 通道都用 ASCII 路径写临时文件,避开中文用户名

安装方式

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

配置项

配置类型说明默认值
defaultChannel枚举默认通道:auto(配置 Antigravity 走 Antigravity,否则豆包 web)/ web(豆包)/ ide(编程工具 CLI)/ antigravity / genlang / cockpit / aicodeauto
defaultModel字符串面板默认模型名(pro 关键字会自动选反重力 pro 档)gemini-3.7-flash
webChannel.enabled布尔豆包 Web 通道开关true
webChannel.queuePort数字WSL 侧队列服务端口,bridge.mjs 默认连这个9340
webChannel.timeoutMs数字等待网页 AI 回复超时(毫秒)240000
antigravityWorkspace / antigravityProjectId / antigravityLsExe / antigravityWindowsHome / antigravityBrainDir字符串Antigravity IDE 通道配置,全部留空时该通道不启用全部空字符串
genlangKey字符串Gemini Developer API key(AIza… 或 AQ.)空
cockpitBaseUrl / cockpitKey字符串Cockpit 反代地址与密钥http://127.0.0.1:65386 / 空
oauthAccount / oauthClientId / oauthClientSecret字符串aicode 直连所需的 OAuth 凭据(用户自带,插件不内置)全部空
ideCli.enabled / ideCli.exe / ideCli.argsTemplate / ideCli.imageRefTemplate / ideCli.timeoutMs / ideCli.cwd布尔/字符串/字符串/字符串/数字/字符串通用 IDE CLI 通道(Claude Code / Gemini CLI / Qwen Code / MiMo 等),配置驱动无需改代码false / 空 / -p {prompt} / {path} / 120000 / 空
visionUpstreams字符串数组对话流包装的上游 LLM 列表,会为每个上游注册一个识图适配器["deepseek"]
upstreamProvider字符串兼容旧版的单上游字段deepseek
cacheMax数字进程内 LRU 缓存条数上限64
manifestMax / rehydrateMax数字视觉记忆清单与压缩后恢复条数上限12 / 4
allowedImageDirs字符串数组非空时只允许 image_path 读取这些目录下的本地图片[]
curlPath字符串WSL 调用 Windows curl.exe 的路径/mnt/c/Windows/System32/curl.exe

本地覆盖:所有配置都可在 ~/.dsh/dsh-vision.json 里以 JSON 覆盖(由 loadOverrides 加载,路径取 $DSH_HOME 或 ~/.dsh)。

常见问题

Q: 装好后能直接用吗?

A: 默认通道是豆包 Web(零成本、免 API key)。WSL 环境需要在 Windows 侧运行一次 node bridge.mjs,并在那个已打开的 Chrome 里登录豆包,之后粘贴图片即可。

Q: 没有 Windows 浏览器也能用吗?

A: 可以,但需要换通道。配置 genlangKey(Gemini API)或 cockpitKey(Cockpit 反代),再把 defaultChannel 改为对应通道;Antigravity 通道仅在运行该 IDE 时可用。

Q: 同一张图重复提问会重复扣费或重跑吗?

A: 不会。插件按图片字节哈希 + 提示词 + 档位 + 模式 + 区域 + 模型 + 通道 + 提示版本算缓存键,同一进程内同一请求只识图一次(src/vision-core.ts:124)。

Q: 一次最多能传几张图?

A: 最多 8 张,单张不超过 8MB,总大小不超过 32MB,HTTP 请求体不超过 48MB;OCR/区域/对比模式各自有额外校验(src/index.ts:731,902-904,1004)。

Q: 为什么网页通道在 WSL 上不直接连 Chrome?

A: WSL 默认无法主动连 Windows 端口,所以插件在 WSL 侧开队列服务(默认 127.0.0.1:9340),由 Windows 侧的 bridge.mjs 主动轮询并驱动已登录的 Chrome(src/web-channels.ts:43,README.md:113-127)。

Q: 怎么卸载?

A: 配置文件在 ~/.dsh/dsh-vision.json(由 loadOverrides 读取);删除该文件即可清除本地 key/路径覆盖。插件本体通过 dsh plugin --profile web remove dsh-vision-web 卸载(src/index.ts:109-122)。

上手难度

入门 — 默认零配置就能在 WSL + Windows 浏览器组合下用起来;要切到 API/Antigravity/IDE CLI 通道才需要写一段 YAML。

已知问题与限制

  • 单图 8MB / 单次总 32MB / HTTP 请求体 48MB 上限,超出会返回错误(src/index.ts:902-904,1004)
  • 一次最多 8 张图;对比模式至少 2 张;区域细查必须提供区域坐标或自然语言(src/index.ts:731-733)
  • 默认豆包 Web 通道必须在 Windows 侧持续运行 bridge.mjs,且该 Chrome 必须已登录豆包;未登录桥接会报"豆包输入框未找到"
  • Ant antigravity 通道依赖运行中的 Antigravity IDE 与 language_server.exe;PID/端口/CSRF 每调用自动发现,但如果 IDE 完全关闭会直接报错(src/index.ts:320-323,509)
  • API 通道依赖 WSL 调用 Windows curl.exe(默认 /mnt/c/Windows/System32/curl.exe),网络受限环境需要确保该路径存在
  • Gemini API 过载(503)会触发自动重试 2 次,仍失败才会把错误回给模型(src/index.ts:211-229)
  • aicode 通道(oauthAccount)返回 500 时,需要 Antigravity IDE 的 workspace 绑定才能用;插件会提示改用 cockpit 通道(src/index.ts:279-281)
  • 客户端面板暂未提供"删除单张图"快捷键以外的高级编辑(如裁剪/旋转),预处理请在外部完成
  • 错误信息会自动截断(如 stderr 限 500 字符、agentapi 错误限 1200 字符)以便日志可读,但排查时可能要靠完整日志(src/index.ts:141-148)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/54xkeee/dsh-vision)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录