前言¶
在 DeepSeek Harness(DSH)里对话时,如果主模型只支持文本(例如 deepseek-v4.1-flash),粘贴或上传图片往往会在发送阶段就被拒收:宿主会校验 inputModalities,不含 image 的模型会提示「当前模型不支持图片」。换用自带多模态的模型可以解决,但未必是你想用的推理端点或成本结构。
下面介绍的 dsh-custom-vision(维护者 LightingHa)走另一条路:用你自己配置的 OpenAI 兼容视觉 API,在请求到达主模型之前把图片读成文字,并额外提供 image_understand 工具供模型按需看图、OCR 或分析界面截图。插件不引入额外运行时,仅依赖 Node 内置能力与 @deepseek-ai/schemastery(配置 schema)。
这是什么¶
dsh-custom-vision 是 DSH 社区插件,分类为模型推理。它解决两类问题:
- 发图自动识别:对话里附图后,插件先调用你的视觉模型生成详细描述,主模型收到的已是文本,可继续追问细节。
- 工具调用:注册
image_understand,支持本地路径、http(s) URL、粘贴引用或 data URI,适用于图表、截图、UI 与报错信息等任务。
当主模型本身已支持图片输入时,插件不介入,请求原样交给主模型。
核心功能¶
发图自动识别¶
开启 autoDescribe(默认 true)后,图片在 llm/stream 阶段被替换为视觉模型的文字输出。同一张图按 sha256 缓存(默认 describeCacheSize 为 64),避免重复计费。识别失败不会中断对话:该图退化为可解析引用,主模型仍可通过工具追问。
因 DSH 在发送图片时就会校验模型能力,纯文本主模型下无法直接附图。插件在自动识别开启时会覆盖 llm.resolveModelInfo,声明当前模型可接收图片——实际兑现方式是分发前已换成文字,主模型不会收到图片块。关闭自动识别或卸载插件后,能力声明会还原。
image_understand 工具¶
模型可调用:
image_understand(
image_source = "D:\\pics\\shot.png",
prompt = "这张报错截图是什么原因?",
task_type = "debug"
)
task_type 可选 auto、general、describe、ocr、ui、debug。单图默认上限 10 MiB,超出时可借宿主附件服务压缩;allowedDirs 可限制可读目录。
设置与排障接口¶
设置界面提供「测试连接」:内嵌 64×64 测试图真实调用端点。另暴露只读路由便于排障,例如 GET /dsh-custom-vision/config(密钥掩码)、GET /dsh-custom-vision/tools、POST /dsh-custom-vision/test。
安装与启用¶
推荐在 DSH 设置 → 插件市场 搜索 dsh-custom-vision 安装。命令行示例(桌面 profile):
dsh plugin --profile desktop add dsh-custom-vision
或从 GitHub 安装:
dsh plugin --profile desktop add github:LightingHa/dsh-custom-vision
安装会写入 profile 的 package.json(dependencies 与 dsh.profile.bundles)。装完后必须重启 DSH(桌面版退出再打开),bundles 在启动时组装。重启后在设置中能看到 自定义视觉 卡片即表示已加载。
本地开发可用 file: 拷贝或 link: 链接安装,详见仓库 README。
配置¶
优先级从低到高:profile 的 cordis.patch.yml → ~/.dsh/custom-vision.json(设置界面写入,改完下次调用生效,无需重启)→ 环境变量 CUSTOM_VISION_API_KEY(仅 API Key 兜底)。
最简做法:重启后在 设置 → 自定义视觉 填写,或直接编辑:
{
"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 等端点。常用字段还包括 describePrompt、maxTokens(默认 4096)、temperature(默认 0.2)、timeoutMs(默认 180000)、retries(默认 2)、toolName(默认 image_understand)等,完整表格见 GitHub README。
典型用法¶
- 配置
baseURL、model与密钥,确认autoDescribe为true。 - 重启 DSH,在设置里用「测试连接」验证端点。
- 选择纯文本主模型,在对话中粘贴或上传图片并提问;主模型看到的是描述文本,可继续追问细节。
- 若只需工具、不要自动改写请求,将
autoDescribe设为false(此时纯文本主模型仍无法直接发图,需主模型支持图片或改用工具路径)。
发图后若主模型回答「看不到图片」,可开启 debug 查日志;若工具未出现在列表,可访问 GET /dsh-custom-vision/tools 查看 registrationErrors。
适用场景与注意¶
适合:希望继续用轻量纯文本主模型,又要在对话里处理截图、图表或 OCR;或需要统一走自建 / 第三方 OpenAI 兼容视觉端点。
注意:
- 插件在 当前 dsh 进程权限 下运行,工具可读取你配置的本地路径;安装前请阅读源码与 MIT 许可证。
- 需要 Node
>=18,DSH 版本需满足package.json中engines.dsh范围。 - 国内部分端点若遇 502,插件默认剔除
HTTP(S)_PROXY直连;需保留代理可设CUSTOM_VISION_KEEP_PROXY=1。 - 社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-custom-vision 把「看图」拆成独立的 OpenAI 兼容视觉调用,再在 DSH 里用自动描述和 image_understand 接回主对话,让纯文本主模型也能处理附图场景。进一步了解安装、排障与开发结构,见 GitHub:LightingHa/dsh-custom-vision 与 SkillHub 目录页。