30 lines
3.9 KiB
Markdown
30 lines
3.9 KiB
Markdown
# 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` 选择真实 OMP `openai-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 官方流式响应说明](https://developers.openai.com/api/docs/guides/streaming-responses)、[官方 Responses 流事件定义](https://developers.openai.com/api/reference/resources/responses/streaming-events)。这是对用户自定义网关协议的兼容,没有查询或推断该模型的公开供应商可用性,没有迁移用户模型。
|
||
|
||
## 验证
|
||
|
||
- 最终 `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 通过。
|