Skip to content

Releases: llersakuya/dsh-connect-qpcm-gateway

v0.5.0 — 推理档位全开、默认 256k 与收图、改名为模型网关接入工具

Choose a tag to compare

@llersakuya llersakuya released this 23 Oct 11:00

v0.5.0

三处改动,都可用面板验证。

1. 推理档位全开:Off → Xhigh → Max,外加自动档

之前只声明 off / medium / high。现在整条阶梯都可选:

菜单项 发出的 reasoning.effort
Off none
Minimal minimal
Low low
Medium medium
High high
Xhigh xhigh
Max max
(provider default) 不发 reasoning,由网关决定

不声明 defaultEffort,所以模型选择器里自动多出 provider default 那一项——就是自动档。

七个发送值都在两条路由(deepseek-v4-pro、gpt-6.1-sol)上逐个实测,全部 HTTP 200。
也就是说选了不会报错;具体某个后端换档后会不会真的多思考,取决于后端自己。

关于「Ultra」:DSH 的 pi-ai 适配器用档位 id 自动生成菜单文案
(Off / Minimal / … / Max),插件无法插入自定义名字。最高档是 max,
菜单里显示为 Max。

2. 默认上下文 256000,默认开启收图

未单独设置的模型从此默认 contextWindow = 256000、input = ["text","image"]。
面板里已经手工设过的模型保持原样(比如某个只收文本的,不会被改回去)。

3. 插件改名

显示名改为 模型网关接入工具(英文界面 Model Gateway Connector)。
包名、路由 id、状态文件路径、凭据引用名都没动,已有配置和 Key 不受影响。

升级

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.5.0/dsh-connect-qpcm-gateway-0.5.0.tgz

桌面版也可以在 设置 → 插件 里粘贴同一个地址。不用重输 Key。

验证

新增 tests/reasoning-and-defaults.mjs:挂载插件后直接问适配器

  • resolveModel().reasoning.efforts = off/minimal/low/medium/high/xhigh/max,且 defaultEffort 为 undefined(自动档存在)
  • 未覆盖的模型:contextWindow = 256000、inputModalities = ["text","image"]、overridden = []
  • 显式覆盖的模型仍以自己的值为准

本机装上后实时快照确认两条路由都返回七档,未覆盖模型 256k + 收图。

v0.4.3 — 修复重启后提示未配置 API Key

Choose a tag to compare

@llersakuya llersakuya released this 21 Oct 11:10

重启后提示还没有配置 API Key

症状:每次重启软件,插件面板提示还没有配置 API Key,要重新保存一次才恢复。

原因:冷启动时序问题——插件在凭据服务完成初始化之前就挂载了,提前读了一次
Key 库,把当时还没载入的 Key 当成"未配置",并且把这个 MISSING_CREDENTIAL 状态
保留了一整个会话。Key 本身一直都在 ~/.dsh/.credentials.yaml 里,没有丢。

修复:插件把 credentials 列为启动硬依赖,等凭据服务初始化完成后再挂载。

顺带修了一个相关的小问题:上一次目录拉取失败的结果会被目录缓存当成"新鲜"而不再
重试,导致重启后看到的还是上次的失败状态。现在失败的目录在重启后会重新拉取,成功
的缓存不受影响。

升级

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.4.3/dsh-connect-qpcm-gateway-0.4.3.tgz

桌面版也可以在 设置 → 插件 里粘贴同一个地址。配置不用动,Key 不用重输。

验证

新增冷启动回归测试(tests/startup-credentials.mjs):凭据服务延迟初始化,连续跑两次完整启动。旧逻辑复现"Key 已配置但仍报缺失";修复后两次启动均无提前读取、错误自动清除、模型勾选与上下文覆盖完整保留。真实的 .credentials.yaml 未被触碰。

v0.4.2 — 修复点收图后数值消失

Choose a tag to compare

@llersakuya llersakuya released this 18 Oct 14:38

点「收图」后上下文窗口和最大输出会消失

症状:模型目录里点一下「收图」,旁边的上下文窗口、最大输出两个输入框就空了。

原因:草稿只记了被改的那一个字段,而显示时把草稿当成整份记录:

// 点收图 → 草稿 = { image: true }
// 显示时直接 return 草稿 → contextWindow / maxTokens 都没了

两个数字框于是拿到 undefined 和空串,看起来就是"数值消失"。

更糟的是它连保存也一起弄坏了:Number(undefined) 是 NaN,保存前的校验判定"上下文窗口非法"直接返回——所以手点收图这件事本身也存不进去。

现在改成草稿覆盖在生效值之上,并且新建草稿时先把当前值铺满。保存前也不会再拿空值去算。

升级

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.4.2/dsh-connect-qpcm-gateway-0.4.2.tgz

桌面版也可以在 设置 → 插件 里粘贴同一个地址。配置不用动。

验证

先让旧逻辑复现,再确认新逻辑修好——两边都跑过:

操作 旧逻辑 修复后
只点收图 context="undefined" max="" context="200000" max="8192"
改上下文为 300000 再点收图 数字丢失 300000 / 8192
点收图再改最大输出为 4096 数字丢失 200000 / 4096
点收图后保存 发不出 payload {contextWindow:200000, maxTokens:8192, input:["text","image"]}

未设置最大输出时(maxTokens 为空)也验过:点收图后仍是空,上下文窗口不受影响。

v0.4.1 — 修复模型加载失败

Choose a tag to compare

@llersakuya llersakuya released this 18 Oct 14:00

修了一个会让模型全部加载失败的 bug

症状:面板看着正常,但模型拉不出来、对话框报加载失败、每一次对话都不成。

原因:适配器装配时,从 options 里取 key 解析函数的那行漏了一个字段:

-const { readConnections, readModelsFor, get } = options
+const { readConnections, readModelsFor, resolveApiKey, get } = options

少这一项,resolveApiKey 就是未定义。而它不是在装配时求值,是在拉清单和发请求时才被调用——所以适配器照样注册成功、面板照样显示「已接入」,直到真正要 key 的那一刻才抛 ReferenceError。这也是为什么它在面板上看不出问题。

v0.4.0 引入的,v0.4.1 修好。升级即可,不用改任何配置:你的连接、Key、模型勾选、逐模型设置都在 state.json 里,没受影响。

升级

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.4.1/dsh-connect-qpcm-gateway-0.4.1.tgz

桌面版也可以在 设置 → 插件 里粘贴同一个地址。

验证方式

这次是对着真实的 PiAiAdapter 跑的,不是 mock:

注册的路由: ["qpcm-gateway","connection-2"]
qpcm-gateway  : 2 个模型 → deepseek-v4-pro, deepseek-v4.1-flash
connection-2  : 2 个模型 → gpt-6-astra, gpt-6.1-sol

两条路由各自拿到自己的模型,密钥也没串。

顺带确认的

  • 两组对网关各发一次真实补全,四条模型全部 HTTP 200
  • 保存 → 回读 → 落盘 三个环节的值一致
  • 中文/英文 84 个文案键仍然完全对齐

v0.4.0 — 多组 API 同时接入

Choose a tag to compare

@llersakuya llersakuya released this 18 Oct 13:32

一键安装

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.4.0/dsh-connect-qpcm-gateway-0.4.0.tgz

不需要 git,不需要放行 pnpm 构建脚本。

这一版:可以接多组 API

面板最上面是分组列表,点「添加一组」就多一组。每组有自己的:

  • Base URL — 端点互相独立
  • API Key — 各自的凭据引用,互不串用
  • 模型清单 — 各自的 /models 与勾选
  • 接入开关 — 可以只开其中一组

各组的模型同时出现在模型选择器里,以路由 id 区分。最多 8 组——每一组都会
往选择器里塞条目,没有上限会把那里淹掉。

升级不会丢东西

老用户的状态文件是扁平的(v0.3.x 只有一组)。这一版读到时自动迁成第一组:

  • 第一组的 id 仍然是 qpcm-gateway,所以老会话里的模型引用继续有效
  • 已存的端点、勾选、逐模型覆盖、凭据引用全部保留

一直有的

  • 走 OpenAI Responses 协议(POST {baseURL}/responses)
  • 推理档位 off / medium / high(按实测 reasoning_tokens 定的)
  • 每个模型可单独调上下文窗口 / 最大输出 / 是否收图
  • 存 Key 后自动接入(只做一次)
  • 工具调用、流式、多轮对话、系统提示实测通过

v0.3.0 — 按模型自定义上下文/输出/模态

Choose a tag to compare

@llersakuya llersakuya released this 18 Oct 13:15

一键安装

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.3.0/dsh-connect-qpcm-gateway-0.3.0.tgz

不需要 git,不需要放行 pnpm 构建脚本。

装完打开 插件 → QPCM 网关接入,粘一次 API Key,点「保存并验证」——
目录拉通后插件会自动接入。

这一版的新东西:按模型自定义

网关的 /models 只给 id 和名字,不给窗口和上限,所以这些数字原本是写死的兜底值。
现在每个模型后面多了一行设置:

项 含义 默认
上下文 contextWindow 128000
最大输出 maxTokens → max_output_tokens 留空 = 不声明
收图 是否声明 image 模态 只收文本

改完点那一行的保存才生效;有覆盖的模型带「已自定义」标记,可以恢复默认。

两个实测过的细节:

  • maxTokens 会被上下文窗口反向截断(pi-ai 的
    clampMaxTokensToContext)。窗口比输出上限还小时,发出去的数字会比填的小。
  • 「最大输出」默认留空:网关没声明上限,填一个数字等于把「平台没说」写成「平台说了」。

设置存在插件自己的状态文件里,不写进你的 llm-pi-ai 配置。

一直有的

  • 走 OpenAI Responses 协议(POST {baseURL}/responses)
  • 推理档位 off / medium / high(按实测 reasoning_tokens 定的)
  • 工具调用、工具结果回轮、流式、多轮对话、系统提示全部实测通过
  • 不提供图像模型

v0.2.0 — 一键安装,存 Key 即接入

Choose a tag to compare

@llersakuya llersakuya released this 18 Oct 11:35

一键安装

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.2.0/dsh-connect-qpcm-gateway-0.2.0.tgz

不需要 git,不需要放行 pnpm 构建脚本,不需要任何预先配置。

装完打开 插件 → QPCM 网关接入,粘一次 API Key,点「保存并验证」——
目录拉通后插件会自动接入,模型立刻出现在模型选择器里。

这一版的新东西

  • 保存 Key 后自动接入:少一次「还要再点一下开关」
  • 自动接入只做一次:你自己关掉之后,不会被后面的保存动作重新打开

协议与能力(v0.1.0 起)

  • 走 OpenAI Responses 协议(POST {baseURL}/responses)
  • 推理档位 off / medium / high
  • 工具调用、工具结果回轮、流式、多轮对话、系统提示全部实测通过
  • 不提供图像模型:gpt-image-2.5-* 在 /responses 上 502,且 DSH 的 LLM 接缝没有图像生成能力

v0.1.0 — 首个公开版本

Choose a tag to compare

@llersakuya llersakuya released this 18 Oct 11:25

一键安装

dsh plugin --profile desktop add https://github.com/llersakuya/dsh-connect-qpcm-gateway/releases/download/v0.1.0/dsh-connect-qpcm-gateway-0.1.0.tgz

装完打开 插件 → QPCM 网关接入,填 API Key、拉取模型、打开接入开关即可。

这个版本包含

  • 走 OpenAI Responses 协议(POST {baseURL}/responses),不是 /chat/completions
  • 推理档位 off / medium / high(minimal、low 实测多数模型为 0 token,未提供)
  • 工具调用、工具结果回轮、流式、多轮对话、系统提示全部实测通过
  • 面板:Base URL、API Key、模型目录三态勾选、接入开关
  • 图像模型不提供:gpt-image-2.5-* 在 /responses 上 502,且 DSH 的 LLM 接缝没有图像生成能力

安装方式对比

.tgz 不依赖 git、不触发 pnpm 构建拦截、版本锁死。github: 地址也能装,但需要本机有 git。