跳到主内容

dsh-vision

12Star1Fork3Issue0Watching

为 DeepSeek Harness 接入第三方识图模型:网页右下角配置面板发送图片自动识图并回传给模型,同时让模型能自己截图+识图。

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

安装

命令web profile
$ dsh plugin --profile web add @linenxi-ctrl/dsh-vision

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

对话式安装

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

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

一句话定位

dsh-vision 是 DeepSeek Harness 的外挂识图能力扩展插件。它把任意支持视觉的第三方模型接入 DSH,让原本不识图的模型能看懂图片与屏幕:用户可以在网页面板里点选图片自动识图,模型也可以自己截图后调用识图。

核心能力

  • 网页右下角浮动鲸鱼按钮(可拖动),点击打开配置面板填写 API 地址、密钥、模型与提示词
  • 在面板内点「📤 发送图片」选图,自动调第三方识图 API 并把识别文本作为消息发回当前会话
  • 自动按 API 地址探测 OpenAI Chat / OpenAI Responses / Anthropic / Gemini 四种协议,另支持 custom 模板适配长尾接口
  • 为 agent 注册 screenshot 与 recognize_image 两个工具,让模型能自主「截图 → 识图 → 等待结果」
  • 提供「连接拉取」按钮,一键拉取目标 API 支持的模型列表(含协议)并回填到面板
  • 通过 proxy 字段支持 HTTP/HTTPS 代理,避开外网直连限制

技术实现

  • 语言: JavaScript (Node.js ESM + 浏览器原生 JS)
  • 关键依赖: @deepseek-ai/schemastery(配置 schema)、node:http/node:https(外发 HTTP 请求)、node:child_process(截图)、@deepseek-ai/cordis(host 平面注入)
  • 架构模式: 三平面注入——host 平面(lib/index.js,提供 settings namespace 与 ctx.vision 服务,挂载 HTTP 路由)、client 平面(lib/client.js,注入浏览器 UI)、agent 平面(lib/tool.js,挂载到 preset 提供工具);通过 dsh.bundle.patch 自动接入 profile layer
  • 入口文件: lib/index.js(host,export name='vision')/ lib/client.js(client bundle,id='@linenxi-ctrl/dsh-vision')/ lib/tool.js(agent,export name='vision-tool')

适用场景

当你用的 DeepSeek 模型本身不识图(或想用更便宜的识图模型替代默认视觉模型)时,可以用它把 GPT-4o、Claude、Gemini 或自托管的 Qwen-VL 等任何支持视觉的 API 接进来。典型用途:让模型解读用户截图里的报错、自动识别网页内容、把图片里的代码或表格转录成文字,或用更便宜的识图模型降低主对话成本。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.6peerDependencies 声明
Node.js>=18README 推荐 18+,install.sh 可自动下载免安装版
macOS系统自带screencapture 截图
Windows系统自带PowerShell + System.Drawing 截图
LinuxImageMagick需安装提供 import 命令
原生 npm 模块无仅依赖系统自带 CLI 工具

安装方式

dsh plugin --profile web add github:linenxi-ctrl/dsh-vision

配置项

配置类型说明默认值
apiBase字符串识图模型的 API 地址(按协议填到基础路径即可)https://api.openai.com/v1
apiKey字符串(密钥不回显)API 密钥空
model字符串模型名称gpt-4o-mini
protocol字符串协议:auto / openai-chat / openai-responses / anthropic / gemini / customauto
prompt字符串识图提示词(skill),可自定义内置详细中文 prompt
proxy字符串可选 HTTP 代理地址空
timeoutMs数字单次识图请求超时(毫秒)60000
requestTemplate字符串仅 custom 协议:请求体 JSON 模板空
responsePath字符串仅 custom 协议:从响应取文本的点号路径空

常见问题

Q: 需要准备什么才能用?

A: 需要一个支持图片输入的模型 API(OpenAI、Anthropic、Gemini 或自建兼容服务),在网页右下角鲸鱼按钮的面板里填入 API 地址、密钥和模型名即可。

Q: 一定要装 npm 包吗?能不能离线用?

A: 不必。仓库自带 install.bat / install.sh,安装脚本会自动从国内镜像下载免安装版 Node.js,免 pnpm 也能跑,适合内网或不想装 npm 工具链的环境。

Q: 装好了为什么模型还是不会自己识图?

A: 网页面板按钮(client)和识图服务(host)默认会一起挂载;如果想让模型自己截图识图,还需要在 agent preset 的 agent.cordis.yml 里追加 lib/tool.js 的挂载行,让 screenshot / recognize_image 进入该 preset 的工具清单。

Q: 面板里的「发送图片」和 DeepSeek 默认拖图行为冲突吗?

A: 不冲突。插件不拦截整页拖图,DeepSeek 原生的图片理解流程完全不受影响,只有面板里点「发送图片」才走外挂识图。

Q: 协议选 auto 还是手动指定好?

A: 默认 auto 会按 API 地址自动探测(识别 anthropic / gemini / /responses 路径)。复杂场景下可以点「连接拉取」让插件列出 API 支持的模型并自动选协议,省得手填。

Q: 怎么适配长尾接口?

A: 把协议切到 custom,在「自定义请求模板」里按 {{model}} / {{prompt}} / {{image}} / {{dataUrl}} / {{mime}} 占位符拼 JSON 模板,并在「响应文本路径」里用点号路径(如 choices.0.message.content)指到返回文本位置。注意占位符必须裸写不要加引号。

Q: 截图功能需要哪些系统组件?

A: Windows 需要 PowerShell(自带),macOS 自带 screencapture,Linux 需要安装 ImageMagick(提供 import 命令),否则 screenshot 工具会失败。

Q: 怎么完全卸载?

A: npm 安装的先跑 dsh plugin --profile web remove @linenxi-ctrl/dsh-vision,再跑仓库的 uninstall.mjs / uninstall.bat / uninstall.sh 一键清理客户端副本、agent preset 与 cordis.patch.yml 挂载。

上手难度

入门 — 装好插件后只需在网页右下角面板填三项(API 地址、密钥、模型),点「📤 发送图片」就能用;进阶玩法(custom 协议、代理、agent preset 工具挂载)属于可选优化。

已知问题与限制

  • 图片大小上限 20MB(base64 解码后),超过会直接抛错(lib/index.js:28)
  • custom 协议的鉴权默认走 Authorization: Bearer <apiKey>,需要特殊鉴权头(如 AWS Signature、自定义 HMAC)的接口需要自行改造 lib/index.js 的协议适配层
  • 截图工具依赖外部 CLI:Linux 必须先装 ImageMagick,Windows 必须 PowerShell 可用(lib/tool.js:42-60)
  • agent 工具(lib/tool.js)强依赖 host 平面的 ctx.vision 服务;若 host 插件未挂载就调工具,会抛「识图服务未安装」错误(lib/tool.js:96)
  • recognize_image 单次超时 120 秒、screenshot 单次 30 秒,外挂 API 太慢时会先超时(lib/tool.js:92, 119)
  • package.json 必须保存为 UTF-8 无 BOM,否则 Harness 启动会 JSON 解析失败(BUGFIX-NOTES.md:13-42)
  • 客户端 bundle 的 __ModuleLoader__.load 注册 id 必须使用完整包名 @linenxi-ctrl/dsh-vision,否则加载会被 Harness 视为未注册(BUGFIX-NOTES.md:44-99)

查看使用指南 →

该插件的安装步骤、关键要点、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/linenxi-ctrl/dsh-vision)

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

返回插件目录