Skip to content

fix(prism): 增加专属模型选择,修复工具兼容、错误响应和并发统计 - #281

Open
ranxi2001 wants to merge 2 commits into
productionfrom
fix/prism-model-scopes
Open

ranxi2001 wants to merge 2 commits into
productionfrom
fix/prism-model-scopes

Conversation

@ranxi2001

@ranxi2001 ranxi2001 commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

解决的问题与行为变化

开启 Prism 后,账号原先接管所有 Responses 模型,音频等不支持的模型也进入适配器返回 422;Codex 的可选推理参数会使普通文本请求被拒绝。适配器错误已经写出 JSON 后,网关仍可能追加 SSE;这些失败还会清零账号自动并发升档进度。

本 PR 修复四项:

  1. 账号编辑页增加 Prism 专属模型勾选,支持 gpt-6.1-sol、gpt-5.6-sol、gpt-5.6-terra、gpt-6-luna。按账号映射后的名称匹配,未选模型保留原生 / Excel 路由;全部取消表示不走 Prism。同步调整 WS 调度、连接绑定、ticket 和账号测试。
  2. 6.1 Sol 客户端工具桥接默认启用,启动时检查验证依赖,支持显式关闭。四个模型的文本请求均接受 include=["reasoning.encrypted_content"] 和 reasoning.summary=auto,不会编造加密推理。保留已有函数、自定义工具和结果回传协议。
  3. 已完成错误响应不再追加兜底 SSE;若已经发出 SSE 心跳,则写一个合法的 response.failed。
  4. Prism 请求不参与原生账号自动并发升降档,适配器 422/429 不再污染该统计。账号页补充独立并发限制的说明,本 PR 不调整线上适配器容量。

关联记录与来源

Refs #256、#280,基于已合并的 #278 工具桥接继续修复。#280 的自然流量未记录请求正文,不能将所有 422 都归为同一种原因;本 PR 覆盖已复现的可选推理参数 / 工具兼容失败,并补充已知错误码与 Go / 适配器升级顺序。没有引入其他仓库提交。

复现与验收

基线:production 的 bc83ff9c367883e5b7d0140e6bb42e2e7cc5239c。回归测试使用虚构 OAuth 账号和本地 mock 适配器 / 上游。

  • 在账号编辑页开启 Prism,仅勾选 6.1 Sol 并保存;未勾选的 5.6 Sol / 音频模型继续走原生通道。
  • 旧账号没有范围字段时只默认四个支持模型;空数组、非法值和通配符不能扩大范围。
  • 发送包含可选推理参数的文本请求,以及函数调用 → 回传结果 → 自定义工具 → 回传结果 → 最终回答的离线 HTTP/SSE 闭环。
  • 模拟适配器 400/401/409/422/429/502 和非法终态,检查 JSON 可解析或只有一个流式终止事件;Prism 结果不更改原生升档统计。

仍未覆盖真实账号的线上工具执行、模型权益和持续并发。本次不声称线上验收完成。

实际验证

检查 结果 范围
backend: go test ./internal/service ./internal/handler -run 'Prism|AutoConfig|OpenAITurn|OpenAICodexTicket' 通过 本次路由、ticket、错误响应和并发回归
python -m unittest discover -s prism-adapter -p 'test_*.py' 通过 64 项离线测试,包含工具闭环
前端 vue-tsc --noEmit、全目录 ESLint 通过 类型与静态检查
账号编辑 + i18n Vitest 通过 26 项测试
Playwright 实际组件预览 通过 模拟保存收到仅 6.1 Sol 的模型范围,桌面 / 移动深色截图,零浏览器错误
git diff --check 通过 补丁格式
扩展 go test ./internal/service 失败 图片心跳 rec.Flushed 时序断言、收益浮点精确相等断言;收益失败已在未修改的生产基线连续复现 3 次,图片时序失败原因尚未证实
golangci-lint v2.13.0 通过 首提交全后端 0 issues;最终提交 b39ffd3 的 service 再检查 0 issues。最新远端 CI 仍在运行

截图对应提交 d1f355aa0b3a0bbee086a3712a51b97eb12247a0;入口为账号管理 → 编辑 OpenAI OAuth 账号。实际组件 + 模拟 API,不是生产截图。

修改前 修改后
原先只有 Prism 总开关 四模型独立勾选

仅选择 6.1 Sol 并保存 · 移动端深色

兼容性与运行影响

  • 新增账号 extra.openai_prism_browser_models,无数据库迁移。Prism 所选模型失败不自动更换模型或协议;不增加重放。
  • 必须同步升级 Go 网关与 prism-adapter/,安装其固定版本 wheel;旧适配器仍会返回 tools_disabled / 422。PRISM_ADAPTER_CLIENT_TOOLS_ENABLED=false 保留显式关闭能力。未安装依赖时新适配器停止启动。
  • 工具桥接仅限 6.1 Sol 的客户端工具;其他三个模型保留文本路径。真实 encrypted reasoning 历史、服务端会话状态和托管工具仍受已有能力边界约束。
  • OAuth / 调用者隔离和脱敏规则不变;usage 仍未知,不以零 token 入账。本次没有生产部署、数据库操作或并发性能承诺。
  • 回滚到不认识模型范围的旧 Go 网关前,应关闭账号 Prism 总开关,避免恢复旧版全模型接管行为。

文档与用户可见变化

更新适配器 README、账号编辑中英文说明、并发进度提示及截图说明。

Agent 使用声明

  • Agent:Codex,参与诊断、代码、测试、截图和 PR 说明;没有使用子 Agent。
  • 模型:GPT-6(运行时未提供完整型号 ID)。
  • 推理强度:未知(运行时未提供可核实的档位)。

提交前自查

  • base 为 production,独立 worktree,只包含本次修复。
  • 提交、测试和截图使用虚构数据,不含凭据或真实账号邮箱。
  • 已列出实际验证,失败和未验证边界单独说明。
  • 已检查默认值、配置兼容、回滚和文档。
  • 已补充针对性回归验证。
  • 已填写 Agent 使用声明。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant