Resume Evaluation System

履历解析评测体系说明

这页用于汇报当前履历解析如何评估效果:标注了哪些数据集、覆盖哪些输入形态、评分公式怎么算、现有报告怎么看,以及后续如何把 bad case 持续沉淀成稳定回归。

1. 已标注数据集:35 条 JSONL Case

当前不是只靠肉眼观察 Demo,而是把输入、期望字段、负例、数量要求和 URL 抽取要求写成可重复运行的 golden set。

已建立基线
数据集数量定位当前使用方式
v1_golden.jsonl 14 条 文件类稳定回归:PDF、图片、Markdown、公开简历模板。 适合本地回归和 CI 前质量检查。
v1_url_golden.jsonl 20 条 真实 URL 专项:个人主页、学术主页、作品集、公开人物资料、非单人页面。 默认 skip=true,用于手动或专项 live web 回放。
scoring_smoke.jsonl 1 条 验证 scorer 自身逻辑,确保评分器没有坏。 快速 smoke,不代表整体效果。
汇报口径 当前标注的不是“样本文本列表”,而是可自动评分的 case:每条包含输入、期望字段、负例断言、最低数量要求和标签分桶。

2. 覆盖形态:文件、图片、公开主页和负例空间

数据集覆盖了主链路,但还未达到生产级覆盖。当前重点是先保证评分框架、契约和核心输入形态跑通。

输入矩阵

文件类

  • 单页 PDF
  • 多页 PDF
  • 公开 PDF 模板
  • Markdown / 纯文本

视觉类

  • 图片简历
  • 扫描件类输入
  • 图片型 PDF 作为目标场景
  • 后续补学生证 / 工牌负例

URL 类

  • 个人主页
  • GitHub Pages 简历
  • 学术主页
  • 机构 profile / faculty page

边界类

  • 非单人实验室页面
  • 公开人物资料
  • docx 样本已纳入但暂未默认通过
  • 防爬 / 验证码需专项扩充

当前覆盖重心

文件稳定回归
14 cases
URL 手动专项
20 cases
scorer smoke
1 case

3. 评分公式:不只看 JSON 是否生成

评分器会检查字段召回、负例控制、数量覆盖和同一履历项的组合匹配。URL 还会单独评分前置抽取质量。

自动评分

结构化解析默认分

score = field_recall * 0.70 + negative_precision * 0.20 + count_coverage * 0.10 pass_threshold = 0.85

带 item_groups 的严格分

score = field_recall * 0.50 + item_groups * 0.20 + negative_precision * 0.20 + count_coverage * 0.10

前置抽取分

extraction_score = required_snippets * 0.50 + noise_control * 0.20 + page_coverage * 0.20 + min_chars_passed * 0.10

聚合总分

overall_score = extraction_score * 0.30 + structured_score * 0.70
断言类型评什么例子
expected.fields关键字段是否被抽到。姓名、学校、公司、职位、项目、奖项。
negative_fields不该出现的错误是否被避免。没有学生会经历时,不应编造学生会。
minimum_counts履历项数量是否达到最低覆盖。多页简历至少抽出 4 条 resume_items。
item_groups同一条履历项内部字段是否组合正确。resume_type=2 + 学校 + 专业 + 学位必须在同一项。
extractionURL 或文档抽取正文是否可靠。必须包含关键片段,不能含验证码或污染文本。

4. 评测流水线:先验数据质量,再跑解析,再归因失败

前置抽取问题不要误判成模型问题;结构化问题也不要混进网页抓取。当前工具链按阶段拆开,再聚合。

可重复运行
1

数据集门禁

检查 case id、样本文件、字段深度、live web skip 状态。

2

生成输出

使用 parser_v1 或外部方案生成 raw_outputs。

3

前置评分

检查正文关键片段、噪音、页覆盖和最小长度。

4

结构化评分

检查 JSON 契约、字段、负例、数量和履历项组合。

5

报告归因

输出通过率、失败明细、耗时、token、成本和错误阶段。

5. 报告口径:质量、耗时、成本一起看

现有报告已经能支持横向比较不同模型、Fast / Full、thinking 开关和 URL 抓取方案,但样本规模还属于阶段性验证。

阶段性横评

质量指标

  • pass_rate
  • average_score
  • field recall
  • negative precision
  • page2 recall

性能指标

  • latency_ms.total
  • latency_ms.extraction
  • latency_ms.structured
  • p50 / p90
  • error_stage

成本指标

  • prompt_tokens
  • completion_tokens
  • total_tokens
  • estimated_cny
  • model / method 分桶
当前结论边界 已有报告能说明评测框架和策略对比已跑通;但不能直接声称覆盖完整生产效果,因为真实 URL、非履历负例、学生证/工牌和强防爬站点还需要继续扩充。

6. 当前版本评测结果

这里记录 2026-06-22 已实际运行的验证结果。更完整的中文报告见 docs/evaluation-current.md

已验证

resume-lab 部署包

55 passed,耗时 34.86s。

  • 覆盖静态页、健康检查、内嵌解析运行时。
  • 确认 `/evaluation.html` 可作为演示页面资产。

agent-tools 履历测试

142 passed,耗时 1.74s。

  • 覆盖履历 parser、service、URL cleaner/fetcher、评测工具。
  • 评测报告输出已中文化。

数据集质量门禁

34 cases,0 errors,0 warnings。

  • 检查主 golden set 的结构、引用文件和标注质量。
  • 不调用模型,适合作为快速门禁。
历史 URL 5 Case 横评通过通过率平均总分平均耗时
ark_official_mini_260428_5url/aggregate5/5100%0.995033.6s
ark_official_260428_5url/aggregate5/5100%0.995045.2s
ark_official_pro_260215_5url/aggregate5/5100%0.9827131.4s
thinking_enabled/aggregate4/580%0.970542.2s
结果解读 当前可以证明评测框架、部署包测试、数据集门禁和阶段性 URL 横评都已跑通;不能直接声称覆盖完整生产效果,仍需持续扩充真实样本和负例。

7. 当前短板:框架已有,样本仍需扩大

这部分建议汇报时主动说明,避免把阶段性评测包装成生产级覆盖。

风险透明

已具备

  • 自动化 JSONL golden set。
  • 字段、负例、数量和 item group 评分。
  • 前置抽取与结构化解析分开评估。
  • 耗时、token、成本和错误阶段可汇总。
  • URL live web 默认跳过稳定 CI,避免网络抖动污染回归。

仍不足

  • 文件类 golden set 只有 14 条。
  • URL case 多数是手动专项,不适合默认 CI。
  • 非履历负例、学生证、工牌、验证码、防爬页还需补成稳定样本。
  • docx 已有样本但当前仍属于待补齐链路。
  • 真实生产数据还需要脱敏、授权和人工标注流程。

8. 未来持续评估:把测试发现变成回归资产

后续关键不是临时跑几个 Demo,而是每次发现问题都转成可重复评分的 case。

持续闭环
近期
扩到 50 条稳定 golden set

补学生证、工牌、无关 PDF、空白图片、图片型 PDF、百度百科/Wikipedia、个人主页和长正文样本。

中期
建立 bad case 转标注流程

Demo 发现问题后记录输入、期望、错误输出和修复目标,补进 JSONL,修复后进入固定回归。

长期
质量、延迟、成本三维看板

固定跟踪 P0 字段召回、非履历拦截、URL 成功率、JSON 失败率、p90 延迟和单次成本。

建议门禁

指标建议目标用途
总通过率>= 80%判断当前版本是否可进入人工验收。
P0 字段召回>= 90%保护名片初始化关键字段。
负例控制>= 95%避免非履历误解析和模型编造。
JSON / 运行失败率<= 5%控制稳定性和模型截断风险。
多页后页召回>= 75%避免只抽第一页造成履历遗漏。

9. 文件和命令入口

真正效果评测资产目前主要在 agent-tools 仓库;resume-lab 负责演示和部署体验。以下路径均以 agent-tools 仓库根目录为准。

维护入口
evals/modules/resume/datasets/v1_golden.jsonl文件类主 golden set。
evals/modules/resume/datasets/v1_url_golden.jsonlURL / 公开主页专项 golden set。
evals/modules/resume/tools/quality_gate.py数据集质量门禁,不调用模型。
evals/modules/resume/tools/resume_eval.py结构化解析评分器。
evals/modules/resume/tools/extraction_eval.py前置抽取质量评分器。
evals/modules/resume/tools/aggregated_eval.py前置分和结构化分聚合报告。

常用命令

# 在 agent-tools 仓库根目录执行 uv run python evals/modules/resume/tools/quality_gate.py uv run python evals/modules/resume/tools/resume_eval.py \ --dataset evals/modules/resume/datasets/scoring_smoke.jsonl \ --method dataset \ --out-dir evals/modules/resume/reports/smoke uv run python evals/modules/resume/tools/resume_eval.py \ --dataset evals/modules/resume/datasets/v1_golden.jsonl \ --method parser_v1 \ --out-dir evals/modules/resume/reports/parser_v1_manual