前言¶
在 DeepSeek Harness(DSH)里选了一条只支持文本的路由,却想把截图或设计稿一并丢进对话——以前常见结果是输入框直接拒收,或者你得另配一套视觉 API、再查 model ID。若你已经在某个 Provider 上配好了密钥和 base URL,更希望「同一条链路里」把图读出来,再交给当前主模型回答,可以看一下社区插件 dsh-auto-vision(npm 包名 dsh-auto-sight)。它在请求发出前,用同一 Provider 上的视觉模型把图片转成文字描述,再替换成文本块交给纯文本主模型;插件本身不保存、不转发 API Key,沿用 Provider 配置里已有的凭据引用。
这是什么¶
dsh-auto-vision 由 thanderming 维护,分类属于模型推理。一句话:当所选模型不支持 image 输入、或识别不可用时,Auto Vision 会在同一 Provider 上自动找可用的视觉模型读图,再把原请求里的图片块换成带标注的文本描述,主模型仍是你选的那条文本路由。
与「再配第二个视觉服务」相比,README 强调的三点是:不必第二个 API;不必手填 model ID(可选在 Settings 指定);拖进纯文本模型输入框的图片不再被直接拒绝,而是先读再答。
核心功能¶
插件挂载在 llm/stream 上,仅在同时满足下列条件时介入:请求里至少有一个 image 块;主路由未声明 image 能力;且在同一 Provider 上能解析到视觉目标。否则原样透传。
读图成功后,每个图片块会被替换为类似 [Image #n interpreted by <model>] … [/Image #n] 的文本块。会话历史和 UI 仍保留真实图片,只有发往文本模型的请求被改写。
视觉模型选择顺序(前一组失败才试下一组):Settings 里指定的模型 → 同 Provider 上其他已挂载且支持 image 的模型 → 官方 /models 列表里按名称匹配的候选。若指定模型失败,会依次尝试其余目标,并在块上标记 after <failed model> failed;全部失败时插入 [Image #n could not be interpreted by any vision model: …],同一轮里其他图片仍会继续处理。
若主模型本身已支持看图,默认不介入;在 Settings 选了视觉模型后,可开启 Use the vision model even when the main model can see images,强制仍先用视觉模型读一遍(未选视觉模型时该开关无效)。
对未在本地挂载、或适配器已知为纯文本的模型,会通过 Provider 的 OpenAI 兼容 /chat/completions 端点调用,这要求 Provider 配置里有可用的 baseURL 与 apiKeyEnv。
插件还会为「有视觉 sibling 的文本路由」在模型选择器里展示 image 输入能力,便于直接附图。某模型首次在无 image 声明的情况下成功读图后,会把 input: [text, image] 写回该 Provider 的 llm-pi-ai 配置(仅发生在真实用户带图请求之后,不做后台探测);失败或取消的请求不会写入。
每张图默认 60 秒超时;会话内内存缓存 128 条结果,并对进行中的相同请求去重。视觉提示里把图片内容视为不可信数据(要求模型不执行图中指令),但读出的文字仍会进入主模型上下文。
安装与启用¶
官方安装方式如下。
dsh plugin add github:thanderming/dsh-auto-vision
也可从 DSH 插件市场安装。同一代码以预构建形式发布到 npm:dsh-auto-sight(npm i dsh-auto-sight),无需安装时构建或 allowBuilds 确认。
插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证。Node 要求 >=20(见 package.json)。
Settings 配置¶
路径:Settings → Auto Vision。按 Provider 分组选择视觉模型,或保持 Automatic。选择保存在 volatile config,对下一次带图请求生效。为其他 Provider 选的模型会被忽略;插件总是在处理当前请求的那个 Provider 上解析目标。
| 配置键 | 默认值 | 含义 |
|---|---|---|
visionProvider / visionModel |
空 = 自动 | 用于读图的模型;跨 Provider 的选择无效 |
preferVisionModel |
false |
主模型已支持 image 时仍先用所选视觉模型;须已选视觉模型 |
timeoutMs |
60000 |
单张图片读取超时(毫秒) |
选择器三组:Guaranteed(配置声明 input: [text, image])、Configured without image input(已挂载但未声明 image,按名称展示)、Official candidates(/models 无模态元数据,名称猜测,默认折叠)。成功读图后自动标记的模型需刷新 Settings 页才会进入 Guaranteed 组。
典型用法¶
- 安装插件后,在 DSH 里照常选择一条纯文本模型路由。
- 在对话中附上图片(或对已有视觉 sibling 的文本路由直接附图)。
- 发送消息:插件在同 Provider 上调用视觉模型读图,主模型收到的是带
[Image #n interpreted by …]包裹的描述文本,并基于该描述作答。 - 若需固定读图模型或主模型本身也能看图但仍想先走视觉模型,打开 Settings → Auto Vision 完成选择并按需开启 preferVisionModel。
无需在插件配置里填写 API Key;凭据在请求时从该 Provider 的 apiKeyEnv 读取,密钥不会进入插件配置、日志或浏览器 UI。图片只发给同一 Provider 上的视觉模型,不送往第三方服务;描述仅会话内存缓存,不写磁盘。
适用场景与注意¶
适合:已在某一 Provider 上统一配好密钥与路由,希望用纯文本或「未声明 image」的模型处理带图对话;不想维护第二套视觉 API 与 model ID 列表的 DSH 用户。
限制与成本(均来自 README):
- 仅同 Provider:不会跨 API 去调别的服务商上的视觉模型。
- 官方
/models列表只有 model ID 等基础字段,名称匹配的候选不保证接受图片;直连还需baseURL与可用apiKeyEnv。 - 每张未命中缓存的图片会多一次模型调用。
- 自动写回
llm-pi-ai可能与并发编辑 Settings 冲突,仅打警告不重试,不影响当次回答。 - 同 Provider 上若没有任何视觉模型可用,会占位失败文本并仍让主模型告知用户。
DSH 生态强调「一切皆插件」;社区目录 SkillHub 上的 dsh-auto-vision 页 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-auto-vision 把「读图」和「作答」拆成同 Provider 内的两步:视觉模型负责描述,文本主模型负责推理与回复,配置面尽量复用已有 Provider。需要细节、Issue 或源码时见 GitHub:https://github.com/thanderming/dsh-auto-vision;目录介绍见 https://www.skillhub.cn/plugins/thanderming/dsh-auto-vision。