feat: track prompt evaluation runs

This commit is contained in:
2026-05-21 18:15:17 +08:00
parent c415f547e8
commit 124e45df8c
10 changed files with 389 additions and 0 deletions
@@ -4078,3 +4078,33 @@
- 剩余边界:
- 本轮没有部署到 3.90;由于无数据库迁移,后续只需部署后端/前端即可在测试服务器使用该按钮。
- 当前评测接口是发布前静态质量门禁,不等同于调用真实大模型逐条跑完整黄金样本输出;后续如需更强门禁,可继续接入异步任务队列,把 `scripts/run-phase15-prompt-golden-eval.ps1` 或等价服务端评测器的结果自动回填同一字段。
## 2026-05-21 Phase15-F Prompt 评测运行记录与可追溯门禁闭环
- 已继续按《AI合同起草与审查助手-法律文书能力吸收开发方案-2026-05-20.md》推进 Phase15-F。
- 本轮目标:把上一刀的“页面触发评测并回填版本”升级为“评测运行有记录、有状态、有报告、有审计、可追溯”。
- 后端能力:
- 新增 Alembic 迁移 `20260521_0038_create_prompt_evaluation_runs.py`。
- 新增 `prompt_asset_evaluation_runs` 表,记录每次 Prompt 评测运行。
- 运行记录字段覆盖:Prompt 资产、版本、类型、套件、状态、样本数、通过数、失败数、通过率、质量分、报告 JSON、失败原因、触发人、开始/结束时间。
- `POST /api/v1/prompt-assets/{asset_id}/evaluations/run` 现在会先创建运行记录,再生成评测报告,最后同步回填 Prompt 版本和资产最新评测状态。
- `GET /api/v1/prompt-assets/{asset_id}` 详情会返回最近 20 条 `evaluation_runs`,便于页面和 QA 查证。
- 前端能力:
- `/prompt-assets` 详情区域新增“评测运行历史”表格。
- 运行历史展示套件、状态、样本通过情况、分数、失败原因和完成时间。
- 发布按钮继续受最新评测状态约束,未通过评测仍不可发布。
- 本轮验证:
- `python -m compileall backend\app\models\prompt_asset_evaluation_run.py backend\app\repositories\prompt_asset_evaluation_run_repository.py backend\app\services\prompt_asset_service.py backend\app\api\prompt_assets.py`
- `python -m py_compile backend\migrations\versions\20260521_0038_create_prompt_evaluation_runs.py`
- `$env:PYTHONPATH='backend'; python -m unittest backend.tests.test_prompt_asset_service backend.tests.test_prompt_assets_api backend.tests.test_permission_metadata -v`
- `$env:PYTHONPATH='backend'; python -m unittest backend.tests.test_prompt_asset_service backend.tests.test_prompt_assets_api backend.tests.test_prompt_runtime_service backend.tests.test_chat_api backend.tests.test_clause_recommendation_service backend.tests.test_clauses_api backend.tests.test_review_service backend.tests.test_contracts_api backend.tests.test_permission_metadata -v`
- `cd frontend; npx eslint src/app/prompt-assets/page.tsx src/services/prompt-asset.ts src/types/api.ts`
- `cd frontend; npm run build`
- `cd backend; $env:PYTHONPATH='.'; python -m alembic heads` 返回 `20260521_0038 (head)`。
- `git diff --check`
- Browser 打开 `http://localhost:3000/prompt-assets`,未登录保护页正常显示,页面标题 `AI合同平台`,控制台错误 0。
- 当前闭环结论:
- Phase15-F 已形成“页面触发评测 -> 创建评测运行记录 -> 生成报告 -> 回填 Prompt 版本 -> 发布门禁读取评测状态 -> 详情页展示评测历史 -> 审计留痕”的闭环。
- 剩余边界:
- 本轮尚未部署到 `192.168.3.90`;测试服务器使用该能力前需要执行 Alembic `20260521_0038` 并部署前后端。
- 当前运行仍是同步轻量评测,适合测试服务器资源;后续如果要跑真实大模型逐条黄金样本,可在这张运行表上继续扩展异步队列和 worker。