Repository navigation
Releases
Releases · bug-huntter/dsh-vision-plugin
v1.2.3
Changes
- 修复 DSH
0.1.7-rc.2volatile 配置对象需要通过.get()读取,避免settings.baseUrl.trim is not a function - 修复
adapterStream提前把图片投影成占位符,导致视觉请求缺少图片内容的问题 - 在最终边界保留并转写图片,修复启用插件且测试通过后,带图片对话仍失败的问题
- 增加 Context 服务读取、默认导出、原型方法补丁和 volatile 配置回归测试
Compatibility
- 已在 DSH
0.1.7-rc.2实测图片识别正常
Install
dsh plugin add @lp181818/dsh-vision-plugin@1.2.3v1.2.0 — 密钥来源收敛 + 密钥格式
v1.2.0 — 密钥来源收敛 + 密钥格式
按「密钥只有一个来源」重做设置项:去掉一个会静默换 key 的间接层,并把"没带 key"变成一句能照着做的提示。
破坏性变更(配置项)
| 项目 | v1.1.4 及更早 | v1.2.0 |
|---|---|---|
| 密钥来源 | apiKeyEnv(环境变量/凭证名)> apiKey > 复用同 Base URL 路由的密钥 |
只有 apiKey(设置页 API Key 字段) |
| 「密钥来源(变量名)」栏 | 有 | 已移除(旧的 apiKeyEnv 值被忽略) |
| 路由复用 | 兜底生效,会静默换成别的路由的密钥 | 彻底移除,绝不再替换你填的 key |
| 密钥格式 | 无(固定 Authorization: Bearer) |
新增:openai / anthropic / gemini / azure |
| 未填 key 时 | 可能复用路由密钥,或收到上游那句看不懂的 401 | 发请求前就报「未携带 API Key」,并指明去哪个字段填 |
| 401/403 提示 | 只提示"密钥来自路由复用" | 点名「已按 <格式> 携带密钥但被拒绝」,指向格式是否匹配 |
| 保存前测试 | key 为空按"无法验证"放行保存 | key 为空直接阻止保存,并给出「未携带 API Key」 |
新增「密钥格式」
端点始终是 {baseUrl}/chat/completions,只切换鉴权请求头(主机端与浏览器测试共用同一个实现):
| 格式 | 请求头 | 适用 |
|---|---|---|
openai(默认) |
Authorization: Bearer <key> |
OpenAI、OpenRouter、火山方舟 ARK、DeepSeek 及多数兼容网关 |
anthropic |
x-api-key: <key> + anthropic-version: 2023-06-01 |
Anthropic 风鉴权的网关 / 代理 |
gemini |
x-goog-api-key: <key> |
Google 风鉴权的网关 / 代理 |
azure |
api-key: <key> |
Azure OpenAI 风鉴权的网关 / 代理 |
本版只切换鉴权请求头,不切换端点与报文(选
anthropic不会改走/v1/messages,选gemini不会改走generateContent)。要直连官方 Anthropic / Gemini 原生协议,仍需一个把它们转成 OpenAI 兼容格式的网关。
未携带 API Key 时的提示
主机端在发出请求之前就判定并写日志,浏览器端「测试连接」用的是同一条提示:
[图片转写失败:未携带 API Key:请在 设置 → 识图模型配置 的「API Key」字段填写密钥
(当前密钥格式:openai,如与密钥不匹配请在同页切换)——该图片未传递给模型]
不会再出现"图没送到模型,却只给一句看不懂的 401"。
迁移
升级后打开设置页,确认 API Key 已填、密钥格式与服务商匹配即可。旧行为等价于新版 密钥格式 = openai,OpenRouter / ARK / OpenAI 用户无需改动;settings.yaml 里遗留的 apiKeyEnv 会被忽略(可直接从配置文件中删掉)。
修复与测试
- 保存可靠性:设置页
keyFormat走一次原子mutate并读回校验是否真的落盘(DSH 契约里被拒的写入不抛异常) - 回归测试:
test/key-resolution.test.mjs(6)、test/auth-headers.test.mjs(21,新增)、test/commit-settings.test.mjs(20) - 同时包含此前仅发布在 GitHub 的两个修复:v1.1.3(显式填写的 API Key 优先于路由复用)与 v1.1.4(保存被拒时不再静默丢弃草稿)
安装 / 升级
# npm
dsh plugin --profile web add @lp181818/dsh-vision-plugin@1.2.0
# 或:设置 → 插件 → 市场 → 更新已安装旧版的用户:客户端改动刷新页面即可生效;主机端改动需重启 DSH(重启后「未携带 API Key」判定与鉴权头映射才会生效)。
完整变更记录:见 README 的 v1.2.0 章节。
v1.1.2
What's Changed
- 修复:兼容新版本 DSH API(移除已废弃的 \settingsNamespace\ 引用,改用 \settings.register\)
- 调整:版本号从 1.1.1 → 1.1.2
v1.1.1
dsh-vision-plugin v1.1.1
修复
- 识图连接测试不再误报:推理型视觉模型(如 glm-5-3-flash)返回 HTTP 200 但把输出放在
reasoning_content时,旧测试将空content误判为"模型不支持图片输入"并阻止保存。现在任何 2xx 都判定为成功(空输出仅提示,不阻断),readContent同时读取content与reasoning_content。 - 401/403 加提示:非空 API Key 鉴权失败时,若检测到 key 疑似误带引号/空格会追加提示,避免与端点/模型配置错误混淆;空 key 的 401 仍保持"可保存(unverifiable)"。
影响
只改动浏览器端连接测试逻辑;服务端识图行为不变。