3.9 KiB
3.9 KiB
Responses 协议与真实对话验收(2026-10-16)
用户选择恢复原有 API 服务后,重新检查发现当前模型已由用户更新为 gpt-6-luna,接口为完整 /v1/responses。旧 YCode 连接测试在它后面追加 /chat/completions;OMP 又固定使用 openai-completions。此前的旧模型连接拒绝属于历史结果,不能作为新配置不可用的依据。
修复
src/shared/openai-endpoint.ts统一区分完整 Responses 地址、完整 Chat Completions 地址和普通 API 根。明确/responses选择 Responses,其余根保持 Chat 兼容;用户落盘地址和密钥保持原值。src/main/omp-model.ts选择真实 OMPopenai-responses适配器,给 SDK 提供 API 根,避免重复拼接。协议及有效根进入配置 fingerprint,活动回合仍使用自己的不可变配置。src/main/models.ts分协议构造未保存配置连接测试,正确识别 Responses output,包括短 token 预算导致的合法 reasoning/incomplete。错误不回显上游正文或秘密。src/main/gateway/responses.ts与 Gateway 入口兼容备用内核的 Responses 输入、图像、工具历史、流式文本/reasoning/function-call 及终态。只有合法 completed 终态才交付可执行工具调用;失败、截断和 incomplete 不冒充完成。
协议依据:OpenAI 官方流式响应说明、官方 Responses 流事件定义。这是对用户自定义网关协议的兼容,没有查询或推断该模型的公开供应商可用性,没有迁移用户模型。
验证
- 最终
npm run build,含两端 typecheck,通过。日志.tmp/responses-final-build-20261016.log。 - 模型注册表 focused 回归通过:完整/尾斜线路径、请求 schema、无鉴权、留空保留旧密钥、不写配置、非法结果和 HTTP 错误。
- 实际 OMP loader 接受
openai-responses,SDK 根为/v1;.tmp/omp-responses-loader-nz5Pns/report.json。该检查没有调用用户上游。 - 隔离生产 App → preload/IPC → 实际 OMP → 受控 Responses 上游,28/28;两轮历史、准确路径、认证、禁工具、token 参数、取消及真实 transcript。
.tmp/responses-integration-UbxGhB/report.json。 - 备用 Gateway 30/30,含实际 fallback
runTurn工具执行与回填、文本/推理、非法终态、失败和取消;旧 Chat smoke 通过。.tmp/gateway-responses-7RoDVm/report.json。 - 修改后的旧 Chat 实际 OMP 能力回归22/22仍通过,覆盖无鉴权、禁工具/图像、token配置及真实回复,
.tmp/model-capabilities-PEJKAM/report.json。 - 实际用户配置连接测试成功。随后经真实生产 DOM 发送两条简短验收消息,真实远程上游两轮均为 done,第二轮正确回忆第一轮验证码。
.tmp/live-responses-acceptance-HP2ruM/report.json;没有使用受控响应替代。这两轮保留在此前专用测试会话b54d80bd-ff69-4ec8-9bb1-e21b31b2b9a9,没有向 WorkBuddy 发消息。 - 另从真实
sessions.json核对最后四条 user/assistant/user/assistant,两个 assistant 均 done、内容匹配、modelId 为当前模型;完成后返回原会话。更新时先检查活动回合及草稿,第一次检查遇到忙状态未关闭窗口,空闲后才更新;未丢弃用户输入。
没有在报告中记录真实端点主机、API Key 或任意上游诊断正文;真实测试只记录状态、长度和预期文本匹配布尔值。
范围限制
本轮证明真实供应商的简单两轮文本对话与保存,不能替代所有模型/工具/图像/复杂 reasoning 的验收。备用 Gateway 现有历史契约未保存 encrypted reasoning 等不透明上下文;对要求这些数据连续回传的供应商仍需扩展。UI 的文字栅格与全状态动效差异仍按持续进度文档跟踪,本次协议修复不构成整个 UI 1:1 通过。