🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

自定义视觉 LightingHa/dsh-custom-vision

DeepSeek 客户端
LightingHa18 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

用自备视觉模型解析图片,让纯文本主模型也能看图答题

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/LightingHa/dsh-custom-vision.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 18 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 12 条)
  • 读取本地文件
    dsh/index.js:155
    const parsed = JSON.parse(readFileSync(file, 'utf-8'))
  • 写入本地文件
    dsh/index.js:164
    mkdirSync(path.dirname(file), { recursive: true })
  • 写入本地文件
    dsh/index.js:166
    writeFileSync(tmp, JSON.stringify(next, null, 2), 'utf-8')
  • 写入本地文件
    dsh/index.js:167
    renameSync(tmp, file)
  • 读取本地文件
    dsh/index.js:272
    const buffer = await readFile(file)
  • 读取本地文件
    dsh/index.js:383
    const buffer = await readFile(hostPath)
  • 读取本地文件
    dsh/index.js:433
    real = await realpath(src)
  • 读取本地文件
    dsh/index.js:437
    real = await realpath(path.join(homedir(), src.slice(2)))
  • 读取本地文件
    dsh/index.js:448
    const stat = statSync(real)
  • 发起网络请求
    client/client.js:102
    fetch(CONFIG_URL, { cache: 'no-store' })
  • 发起网络请求
    client/client.js:128
    fetch(CONFIG_URL, {
  • 发起网络请求
    client/client.js:153
    fetch(TEST_URL, { method: 'POST' })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

在 DeepSeek Harness 里用你自己的 OpenAI 兼容视觉模型:图片先被描述再交给主模型,另带 image_understand 工具,处理图表、截图、UI 和 OCR。

README

由 DeepSeek 最新模型翻译生成
dsh-custom-vision DSH(DeepSeek Harness)插件:用你自己的 OpenAI 兼容视觉模型解析图片。 两个能力: 1. 发图自动识别(核心)——你在对话里粘贴/上传图片后,请求到达主模型之前,插件先用你的视觉模型把图片读成详细文字,主模型一步就能回答细节问题。 对纯文本主模型(如 deepseek-v4.1-flash)尤其有用。 2. image_understand 工具——模型可传本地图片路径、http(s) 图片 URL、粘贴图片的引用文本或 data URI,返回视觉模型的解析结果(看图 / OCR / 界面 / 报错截图 / 图表)。 不依赖任何第三方运行时:只用 Node 内置能力 + @deepseek-ai/schemastery(配置 schema)。 1. 安装 从插件市场安装(推荐) DSH 设置里的「插件市场」搜索 dsh-custom-vision,一键安装,然后重启应用。
展开完整文档(README 剩余 1 节)
dsh-custom-vision

DSH(DeepSeek Harness)插件:用你自己的 OpenAI 兼容视觉模型解析图片。

两个能力:

1. 发图自动识别(核心)——你在对话里粘贴/上传图片后,请求到达主模型之前,插件先用你的视觉模型把图片读成详细文字,主模型一步就能回答细节问题。
对纯文本主模型(如 deepseek-v4.1-flash)尤其有用。
2. image_understand 工具——模型可传本地图片路径、http(s) 图片 URL、粘贴图片的引用文本或 data URI,返回视觉模型的解析结果(看图 / OCR / 界面 / 报错截图 / 图表)。

不依赖任何第三方运行时:只用 Node 内置能力 + @deepseek-ai/schemastery(配置 schema)。

1. 安装

从插件市场安装(推荐)

DSH 设置里的「插件市场」搜索 dsh-custom-vision,一键安装,然后重启应用。

命令行安装

从 npm
dsh plugin --profile desktop add dsh-custom-vision

或直接从 GitHub 源码安装
dsh plugin --profile desktop add github:LightingHa/dsh-custom-vision

本地开发安装

在本目录下:

拷贝安装(稳定;改代码后需重新执行本命令 + 重启应用)
dsh plugin --profile desktop add "file:D:\dshproject\dshtest01\dsh-custom-vision"

或者链接安装(开发用;改代码立即生效,无需重装)
dsh plugin --profile desktop add "link:D:/dshproject/dshtest01/dsh-custom-vision"

命令会把包加进 profile 的 package.json(dependencies + dsh.profile.bundles)。
装完后必须重启 DSH(桌面版:退出应用再打开)才会加载,因为 bundles 在启动时组装。

验证是否加载:重启后打开「设置」,能看到 自定义视觉 卡片即表示已加载。

2. 配置

三种方式,优先级从低到高:

| 方式 | 位置 | 说明 |
| profile 配置 | cordis.patch.yml 的 config: | 适合随 profile 分发 |
| 设置文件 | ~/.dsh/custom-vision.json | 设置界面写入;改完下一次调用即生效,无需重启 |
| 环境变量 | CUSTOM_VISION_API_KEY | 仅作 API Key 兜底 |

最简做法:重启后在 设置 → 自定义视觉 卡片里填写,或直接用命令行写入:

// ~/.dsh/custom-vision.json
{
"baseURL": "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
"model": "qwen3.8-flash",
"provider": "custom",
"keys": { "custom": "sk-your-key" },
"autoDescribe": true
}

baseURL 填到 /v1 为止即可(插件自己拼 /chat/completions)。
兼容 OpenAI / 阿里云百炼 / 火山方舟 / 硅基流动 / 智谱 / Ollama / vLLM / LM Studio / one-api 等任意兼容端点。

主要配置项

| 字段 | 默认 | 含义 |
| baseURL | 空 | OpenAI 兼容地址(到 /v1) |
| model | 空 | 视觉模型名,如 qwen3.8-flash |
| apiKey / keys.<provider> | 空 | API Key(keys 支持多套端点) |
| provider | custom | 密钥槽名 |
| autoDescribe | true | 发图自动识别(关闭后只有工具可用) |
| describePrompt | 内置详细描述词 | 自动识别用的提示词,越详细后续追问越准 |
| describeCacheSize | 64 | 识别结果缓存条数(按图片 sha256,避免重复计费) |
| toolName | image_understand | 工具公开名 |
| maxTokens / temperature | 4096 / 0.2 | 视觉模型采样参数 |
| timeoutMs / retries | 180000 / 2 | 单次超时与限流重试 |
| maxImageBytes | 10 MiB | 单图字节上限;超过时借宿主附件服务自动压缩 |
| allowedDirs | 空(不限制) | 允许读取图片的目录,; 或 , 分隔 |
| extraBody | {} | 额外请求字段,如 {"top_p":0.8} |
| debug | false | 在日志里打印调用诊断(不含密钥与图片内容) |

3. 用法

发图自动识别

直接粘贴/上传图片并提问即可。插件识别后,主模型看到的是图片的描述文本,并在回答里提示可继续追问细节。

- 如果主模型本身支持图片输入(例如 qwen3.8-flash),插件不介入,把请求原样交给主模型。
- 识别结果按图片 sha256 缓存,同一张图只调用一次视觉模型。
- 识别失败时不会中断对话:该图退化为可解析引用(图片),模型仍可用工具针对它追问。

为什么需要「图片能力声明」

DSH 在发送图片时就会校验模型能力:inputModalities 不含 image 直接拒收(session/attachment-invalid · MODEL_DOES_NOT_SUPPORT_IMAGES,界面提示「当前模型不支持图片,请切换支持图片的模型」)。这个校验发生在图片入库之前, 比插件能介入的 llm/stream 更早,所以纯文本主模型下根本发不出图片。
自动识别开启时,插件会覆盖 llm.resolveModelInfo,把选中模型声称为可接收图片:

- 这个声明由插件自己兑现——请求分发前,图片已被换成视觉模型的文字描述,纯文本主模型永远收不到图片块;
- 自动识别关闭时立即还原真实能力,宿主重新按原样拒收(不谎报);
- 插件卸载时还原原始方法;对同一 provider/model 只查询真实能力一次(shouldDescribeFor 走原始方法,避免被自己的声明误导成「主模型能看图」)。

工具

image_understand(
image_source = "D:\\pics\\shot.png", # 路径 / URL / 粘贴引用 / data URI
prompt = "这张报错截图是什么原因?",
task_type = "debug" # auto | general | describe | ocr | ui | debug
)

设置界面里的「测试连接」

设置 → 自定义视觉 → 测试连接:插件内嵌生成一张 64×64 纯色 PNG,真调一次你的端点,显示延迟、模型名、用量与模型回答,用来确认地址/密钥/模型名是否正确。

4. 自检与测试

cd D:\dshproject\dshtest01\dsh-custom-vision

node test/unit.test.mjs # 16 项:图片嗅探、引用解析、请求体、错误处理、重试
node test/host-integration.test.mjs # 13 项:假宿主跑通「发图→自动识别→重写请求」与工具/接口
node test/client-bundle.test.mjs # 5 项:客户端设置卡片注册与渲染

node test/e2e-remote.mjs # 真实端点端到端(读 ~/.dsh/custom-vision.json 或 free-vision.json)
node test/make-fixtures.py # 重新生成测试图(需 Pillow)

插件还暴露三个只读接口,便于排障(需浏览器信任凭据):

- GET /dsh-custom-vision/config —— 当前生效配置(密钥已掩码)+ 运行诊断
- GET /dsh-custom-vision/tools —— 工具是否真的注册进宿主、注册错误、诊断信息
- POST /dsh-custom-vision/test —— 真调一次视觉模型
- GET /dsh-custom-vision/raw/sha256:<hex> —— 按内容地址回显图片(缩略图用)

5. 排障

| 现象 | 处理 |
| 发送图片报「当前模型不支持图片,请切换支持图片的模型」 | 图片能力声明没生效:看 GET /dsh-custom-vision/config 的 status.imageClaim 是否为 applied。若为 failed 说明宿主服务不可写;若 autoDescribe 被关掉也会如此(此时确实不该发图) |
| 设置里看不到「自定义视觉」 | 插件没加载:确认 dsh --profile desktop --dump-config 里有 dsh-custom-vision,并已重启应用 |
| 卡片折叠态一直显示「读取中…」 | 配置接口没返回:确认 GET /dsh-custom-vision/config 可访问。徽章是三态(读取中 / 已配置·缺密钥 / 未配置),不会把「还没读到」当成「未配置」 |
| 改了代码但行为没变 | file: 安装是拷贝,且 pnpm add 因依赖已满足会跳过:先删掉 profiles\<profile>\node_modules\dsh-custom-vision,再执行 dsh plugin --profile <profile> add "file:…"。客户端半部改动刷新页面即可,宿主半部改动需重启应用 |
| 发图后回答「我看不到图片」 | 打开 debug,看日志是否有 llm/stream:请求含图片块;若没有,说明图片没进请求(会话未附加图片)。若显示「主模型可看图」,属正常不介入 |
| 工具没出现在工具列表 | GET /dsh-custom-vision/tools 看 registrationErrors(宿主 schema 方言很严格) |
| HTTP 401/403 | 密钥无效或无该模型权限 |
| HTTP 404 | baseURL 或 model 不对(确认以 /v1 结尾且模型名在该端点存在) |
| HTTP 429 | 限流/额度,插件会自动重试 retries 次 |
| 国内端点 502 | 代理问题:插件默认剔除 HTTP(S)_PROXY 直连;如需保留代理设 CUSTOM_VISION_KEEP_PROXY=1 |
| 图片太大被拒 | 调大 maxImageBytes,或让宿主的附件服务压缩(默认自动尝试) |

6. 开发

改了源码后(link: 安装可跳过这步)
dsh plugin --profile desktop add "file:D:\dshproject\dshtest01\dsh-custom-vision"
重启应用

源码结构:

| 文件 | 职责 |
| dsh/index.js | Cordis 插件入口:工具注册、llm/stream 自动识别、Web 路由、配置 |
| dsh/image.js | 图片格式嗅探、引用解析、data URI、URL 规范化(纯函数) |
| dsh/vision-client.js | OpenAI 兼容 /chat/completions 调用、重试、错误可读化 |
| client/client.js | 浏览器半部:settings.section 设置卡片 |
| cordis.patch.yml | bundle 层:把插件挂进 profile |

已知注意点:

- 工具 schema 不能用属性级 required: true(DSH schema 方言会拒绝,导致工具静默注册失败)。
- attachments 图片读取按「宿主规范化副本路径 → 服务读取 → 内容寻址对象文件」三级回退。
- 自动识别在 llm/stream waterfall 上改写消息;改写后请求不再含图片块,因此不会递归。

7. 发布

维护者视角的发布流程(GitHub 建仓、npm 发布、向 awesome-dsh-plugin 提条目 PR,以及 CI 的硬性门槛)见 PUBLISHING.md。待提交的市场条目在 contrib/LightingHa__dsh-custom-vision.yml。
预览分享卡片长什么样 ↓LightingHa/dsh-custom-vision
分享 · DeepSeek Harness Hub
LightingHa/dsh-custom-vision

用自备视觉模型解析图片,让纯文本主模型也能看图答题

这是你的仓库?认领条目

回到顶部