Skip to content

feat: 质量运维共享同批随机题,缺少通过对照时不隔离账号 - #642

Merged
ranxi2001 merged 3 commits into
productionfrom
feat/quality-shared-batches-638
Nov 3, 2026
Merged

ranxi2001 merged 3 commits into
productionfrom
feat/quality-shared-batches-638

Conversation

@ranxi2001

@ranxi2001 ranxi2001 commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

解决的问题与行为变化

随机推理题原来由每个账号独立生成,明确答错后立即执行账号策略,缺少跨账号同题基线。现在同批账号从数据库读取相同随机题,先收集结果,再按模型原名、映射目标、effort、通道、所选答题路径和判题配置比较。只有其他账号同题明确通过,答错结果才进入原有质量处置;全错或缺少通过对照时保留错误答案,不新增质量限制。

  • 原始正确/错误/未知/跳过状态保留,新增独立批次证据、比较状态和对照计数。
  • 优先调度、性能监控和渠道运维同步排除没有对照依据的随机题降智样本。
  • 本次实现同时同题与处置保护,不据此认证真实模型身份,也未校准题目难度、连续多题阈值或供应商独立性。

关联记录与来源

  • Refs [Feature] 质量运维按同批同题对照,缺少通过基线时避免误判账号降智 #638。Issue 附 SSH 只读数据库快照的脱敏分析:4,696 条保留记录、47 个账号、2,700 道题,每题原来只测一个账号。
  • 基线:production@9039070968a2d233e832ca3eaa7f58633cf55691,已将最新 production 合入本分支。
  • 复用现有随机题生成器、账号测试传输、判题器、账号租约、质量处置及所有权恢复;没有引入外部仓库代码。

复现与验收

  • 使用虚构账号和合成作答,在同一批次注册两个到期的随机题规则。
  • 两账号同题都明确答错时,历史保持答错,处置依据显示没有通过对照,账号不因本题新增限制。
  • 后完成的账号同条件通过时,前一个答错账号才按既有策略处置;通过账号恢复仍遵守规则开关与所有权。
  • 暂停、编辑、映射变化、晚到、请求失败、判题未知、同账号别名、不同模型/effort/路径/判题配置,不能充当有效通过对照。
  • 重启后读取持久批次继续比较,收集和最终处置均幂等;账号变更、结果动作及批次完成在同一事务提交,冲突使用 savepoint 撤销账号变更并保留历史。
  • 回归位置:quality_shared_batch_test.go、quality_shared_batch_integration_test.go、已有随机题 runner 用例和 AccountQualityView.spec.ts。定向配置/租约回归已在本地通过;完整结果以当前 head 的 CI 为准。
协议、调度或传输改动补充
  • 复用管理员定时测试传输与 SSE 完成判定,不新增公开模型端点。两分钟请求启动窗口、十二分钟批次收集期限;原有十分钟答题期限、并发限制和重试预算保留,窗口到期不再启动新请求或重试。
  • 记录本站选择的路径和账号映射目标,区分普通账号、BPS、SIWC、Prism 和合成测试;不能证明供应商内部执行模型身份或账号背后的独立性。
  • HTTP 拒绝、超时、EOF、取消和判题未知保持原始记录,不作为通过基线。等待同批比较时释放模型 worker,保留数据库租约直到统一处置或租约到期。
  • 不改变业务请求的粘性会话、故障转移、计费或原生 429/5xx 保护。延后的 5xx 随机题只有持久 episode 的模型冷却策略可继续处置;依赖瞬时队列的旧事件策略保守记录。
  • 收集已经提交的请求不会因后台重启重发。未提交收集就崩溃的请求不能视为已完成,保留原租约超时语义。

实际验证

检查与执行目录 / 命令 结果 覆盖范围、证据或未运行原因
应用 worktree:git diff --check 通过 补丁空白检查;Go 文件已用 gofmt 格式化
GitHub production、贡献指南及 PR 模板核对 已完成 base/head 及披露要求已核对,未将本地 HEAD 当线上版本
backend:GOMAXPROCS=2 GOMEMLIMIT=2GiB go test -tags=unit ./internal/repository -run '^(TestQualityRestoreDiagnostics|TestQualityOutcomeMissingConfig)' -count=1 -timeout=3m 通过 仅针对已定位的 CI 失败验证租约/空配置保护和恢复诊断;未在本地运行全量套件
当前修复提交 f3d9d1ec6 的 CI 进行中 主单元测试阶段、前端和 golangci-lint 已通过,集成测试仍在运行;不代表全部通过
前端 typecheck 与 AccountQualityView.spec.ts CI 通过 当前 head 的 CI frontend job 成功;本地未运行
UI 截图与真实页面验收 未运行 未启动本地预览,截图待补;不以生产页面快照冒充本分支渲染
真实上游、生产迁移和部署 未运行 本次只提交代码与 PR

兼容性与运行影响

  • 配置/API:没有新增需开启的开关,已有随机题规则在全部检测实例升级后使用共享对照;固定糖果题、状态探针仍走原流程。批次证据是只读结果字段,保存/导入规则时清除。
  • 数据库:新增 326_quality_shared_batches.sql 两张运行时表,七天清理;原检测历史结构保持兼容。旧历史不补写对照,监控不将无批次依据的旧随机题作为降智惩罚。
  • 凭据/隐私:批次保存生成题、规则快照和结构化判题,不含账号凭据或其他账号答案正文;结果详情仅展示对照计数,不公开对照身份。
  • 成本:只复用到期/已授权的请求,不额外对全池发测试;每批准备最多八个本地随机题。超过启动窗口的排队样本保守退出,容量不足会减少有效对照,需要运营评估;未测量性能收益。
  • 回滚:旧二进制忽略新增表,但会恢复旧随机题处置行为。混合版本无法保证保护完整,回滚前暂停随机题规则。已有隔离不自动解除。

文档与用户可见变化

更新 docs/account-quality-operations.md 的共享批次、处置边界、恢复与回滚说明。质量运维详情新增批次窗口、映射模型/路径、其他账号通过/失败/未知数和处置依据,保留“答错”与“缺少有效对照”的区别;中英文文案同步。UI 截图待补。

Agent 使用声明

  • Agent 名称与参与范围:Codex;数据库只读分析、方案、实现、回归用例和正文撰写。未使用子 Agent。
  • 模型名称:GPT-6(会话声明系列;运行时未提供可核实的具体模型 ID)。
  • 推理强度:未知(本会话工具未暴露实际配置值)。

提交前自查

  • base 分支和改动范围正确,没有夹带无关修改。
  • 正文、提交、测试数据和附件不含凭据、ticket/state 或真实用户敏感信息。
  • 实际验证结果已列出,失败、未运行和未覆盖的部分已说明。
  • 已检查配置默认值、权限、兼容性及相关文档;不适用项已说明。
  • 已补充针对性回归用例,租约/空配置定向回归通过,其余结果以当前 head 的 CI 为准。
  • 已填写 Agent 使用声明,列出所有参与的 Agent、模型和推理强度。

@ranxi2001
ranxi2001 merged commit 42a8676 into production Nov 3, 2026
73 checks passed
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