修复中途退出比价的 LLM 成本回填 #191

Merged
guke merged 1 commits from codex/comparison-cancelled-llm-cost into main 2026-07-28 17:57:53 +08:00
Member

问题

比价记录进入中途退出后未触发 LLM 成本回填,周期补偿也未扫描 cancelled,导致实际已有 LLM 调用的记录长期显示成本、LLM、TOKEN 为空。

修改

  • finalize 落库后立即追加 LLM 成本回填
  • 周期补偿范围加入 cancelled
  • 保持无有效调用和全调用失败记录不伪造成本
  • 增加即时回填和周期补偿回归测试

验证

  • ruff 检查通过
  • 相关测试 28 项通过
  • 全仓 626 项通过;主干既有失败已在未修改的 origin/main 复现
## 问题 比价记录进入中途退出后未触发 LLM 成本回填,周期补偿也未扫描 cancelled,导致实际已有 LLM 调用的记录长期显示成本、LLM、TOKEN 为空。 ## 修改 - finalize 落库后立即追加 LLM 成本回填 - 周期补偿范围加入 cancelled - 保持无有效调用和全调用失败记录不伪造成本 - 增加即时回填和周期补偿回归测试 ## 验证 - ruff 检查通过 - 相关测试 28 项通过 - 全仓 626 项通过;主干既有失败已在未修改的 origin/main 复现
linkeyu added 1 commit 2026-07-28 14:48:25 +08:00
Member

🤖 review-pr 深审结论

🟢 看着没问题,已实跑验证(后端 pytest 15 项通过)。 置信度 0.9。

正面

  • BackgroundTasks(compare.py:28)与 backfill_comparison_llm_cost(compare.py:39)均已 import,无 NameError;与 trace_epilogue 已有的 done 路径同款写法,一致。
  • _harvest_abort_blocking 返回 rec.id 供后台任务回填;repair 批量同步加入 cancelled,与实时回填口径一致;测试覆盖完整。

说明(low)

  • 🟢 每次 cancelled finalize 都会调度一次回填后台任务;有 record_id 守卫、且镜像既有 done 路径行为,风险低。
## 🤖 review-pr 深审结论 **🟢 看着没问题,已实跑验证(后端 pytest 15 项通过)。** 置信度 0.9。 ### 正面 - `BackgroundTasks`(`compare.py:28`)与 `backfill_comparison_llm_cost`(`compare.py:39`)均已 import,无 NameError;与 `trace_epilogue` 已有的 done 路径同款写法,一致。 - `_harvest_abort_blocking` 返回 `rec.id` 供后台任务回填;repair 批量同步加入 `cancelled`,与实时回填口径一致;测试覆盖完整。 ### 说明(low) - 🟢 每次 cancelled finalize 都会调度一次回填后台任务;有 `record_id` 守卫、且镜像既有 done 路径行为,风险低。
guke merged commit e529112a90 into main 2026-07-28 17:57:53 +08:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WonderableAI/shaguabijia-app-server#191