Files
ycode/docs/Responses协议与真实对话验收-2026-10-16.md

30 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 通过。