Files
bid-doctor/evals
YANG JIANKUAN 08e3fe7eff
Some checks failed
ci / server (push) Has been cancelled
ci / web (push) Has been cancelled
ci / contract (push) Has been cancelled
feat(qualification): 资质库和资质匹配(查标第 4 步,规则集 2026.11-r4)
- 资质库(FR-M6-08):增删改、证书扫描件(PDF/JPG/PNG,企业级密钥加密、签名下载)、
  late_for 按进行中项目的投标截止日提醒、审计;前端资质库页和对话框,侧栏入口
- 资质匹配(FR-M3-05):证书类别词表(16 类,产品证书、人员证书不进匹配),
  QUAL.EXPIRED / LEVEL_LOW / NOT_COVERED;投标文字层按清单项定级,只有资质库记录的降一级,
  出处显示「依据:资质库记录」(查标页、报告模板 v2);一类证书一个问题;评分项不逐条找响应的也查
- 响应错位规则不再把资质表的证书名称格当成照抄的要求
- 评测:qual_defects.py 派生资质情况表,D12 3/3、D18 2/2、规矩的资质表 0 误报;开发集不退化
- 决策 QL1–QL7;方案和落地记录 docs/architecture/qualification-plan.md,评测 check-eval.md §13

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 23:22:50 +08:00
..

评测

  • run_extract.py:离线跑一份招标文件的全部抽取任务,统计结果,并审计模型输出里的不合理模式(引文太短、同一句被拆成多条、编号和引文不是同一句、声称有标注但原文没有……)。改提示词、改规则、换模型前后各跑一次对比。用法见文件头。
  • 输出放在 evals/out/(不进 git):里面有真实招标文件的内容。模型输出缓存在 evals/out/cache/,同一模型 + 提示词版本 + 输入只调用一次,只改规则时重放不花钱。

S01–S10 标注集(v1,2026-11-03)

结果和分析见 docs/architecture/extract-eval.md。

  • gold/<ID>.json:标注集,规范见 gold/GUIDELINES.md。用「页码 + 原文片段」定位,切句规则变了也能用。目前由 AI 标注、AI 复核(reviewed: false),还没有人工复核。
  • prepare.py:样本转成规范化 PDF,导出带句子编号的全文 out/docs/<ID>/sentences.txt(标注时看它)。旧版 DOC 先在转换容器里转 DOCX(产品流程还缺这一步,见 TODO)。
  • gold.py check <ID>:检查标注能不能全部定位。
  • run_all.sh <运行名>:10 份文件跑全部抽取,结果在 out/runs/<运行名>/。
  • score.py <运行名>:打分,输出 out/score/<运行名>/summary.md(各类召回率、准确率、项目信息正确率)和每份文件的漏抽、多抽清单。
docker compose -f deploy/compose/compose.yaml up -d gotenberg
cd server
../.venv/bin/python ../evals/prepare.py          # 一次即可
cd .. && evals/run_all.sh base && cd server
../.venv/bin/python ../evals/score.py base

改了规则或提示词之后,换一个运行名重跑、打分,和上一次的 summary.md 对比。目前的基线是 fix3(docs/architecture/extract-eval.md §7;分数怎么读、为什么不能当达标证据,见 extract-status.md §2);base 是修复前的那一轮,用的是旧切句(s3-v3),不能拿现在的标注集重新打分。正式清单里多出来、对不上标注的条目要逐条裁定(GUIDELINES §4)。

查标评测集(2026-11-04 起)

规范见 check/GUIDELINES.md,留出集划分 check/split.json(开工前选定,不改)。

  • check/render.py <投标文件>:把投标文件稿 out/check/<投标文件>/spec.json 渲染成 PDF,扫描件页换成图片,回填响应清单里的位置。
  • check/run_check.py <投标文件>:拿读标评测的清单离线跑查标的响应匹配,模型输出缓存在 out/cache/。
  • 生成器 build.py、注入 mutate.py、评分 score.py 待写。投标文件稿、PDF、响应清单都在 out/check/(不进 git);留出集专用的注入词库和 C 风格写作说明封存在 out/check/_sealed/。