返回

Eval自动化模板.md

5.9 KB · MD · 2026-06-10 15:20

Eval 自动化模板

本文件放可复制的评估集、评分器和报告模板。它不绑定特定平台,适合本地脚本、CI、OpenAI / Anthropic 平台工具或第三方评估工具。

1. 推荐目录结构

evals/
  cases/
    prompt_cases.jsonl
    rag_cases.jsonl
    agent_cases.jsonl
  outputs/
    2026-06-10_prompt_v3_model_a.jsonl
  graders/
    schema_check.md
    llm_judge_rubric.md
  reports/
    2026-06-10_prompt_v3_report.md

2. 通用评估样例格式

{
  "id": "case_001",
  "task": "document_summary",
  "input": "待处理输入",
  "expected": {
    "must_include": ["要点A", "要点B"],
    "must_not_include": ["无依据结论"],
    "format": "markdown_sections"
  },
  "rubric": {
    "faithfulness": "只基于输入材料,不编造",
    "completeness": "覆盖全部关键要点",
    "precision": "数字、日期、名称准确",
    "format": "符合指定结构"
  },
  "tags": ["normal", "summary"],
  "severity_if_failed": "medium"
}

3. Prompt Eval 样例

{
  "id": "prompt_001",
  "task": "extract_fields",
  "input": "合同编号:A-2026-01。甲方应在收到发票后15个工作日内付款。",
  "expected": {
    "json_required": true,
    "must_include": ["A-2026-01", "15个工作日"],
    "fields": ["document_id", "entities", "dates", "requirements_or_requests"]
  },
  "rubric": {
    "schema": "输出必须是可解析 JSON,且包含指定字段",
    "faithfulness": "不得添加原文没有的付款主体或金额",
    "precision": "合同编号和付款期限必须准确"
  },
  "tags": ["structured_output", "normal"],
  "severity_if_failed": "medium"
}

4. RAG Eval 样例

{
  "id": "rag_001",
  "task": "knowledge_base_qa",
  "question": "报销发票需要在多久内提交?",
  "expected_sources": ["policy_reimbursement_2026#section_3"],
  "expected_answer_points": ["发票应在费用发生后30日内提交"],
  "retrieval_requirements": {
    "must_retrieve": ["policy_reimbursement_2026#section_3"],
    "should_not_retrieve": ["old_policy_2024#section_3"]
  },
  "generation_requirements": {
    "must_cite_sources": true,
    "must_abstain_if_missing": true
  },
  "tags": ["rag", "version_filter"],
  "severity_if_failed": "high"
}

5. Agent Eval 样例

{
  "id": "agent_001",
  "task": "order_status_agent",
  "user_input": "帮我查一下订单 A123 到哪了",
  "expected_behavior": {
    "allowed_tools": ["get_order_status"],
    "forbidden_tools": ["cancel_order", "refund_order"],
    "must_ask_confirmation": false,
    "final_answer_must_include": ["订单状态", "更新时间"]
  },
  "trace_checks": {
    "tool_name": "get_order_status",
    "arguments": {
      "order_id": "A123"
    },
    "max_tool_calls": 1
  },
  "tags": ["agent", "read_only"],
  "severity_if_failed": "medium"
}

6. LLM Judge 评分模板

你是一个严格的评估器。请根据评分标准评价 AI 输出。

# 评估规则
1. 只根据给定输入、参考要求和 AI 输出评分。
2. 不要因为表达流畅就给高分;重点看是否满足标准。
3. 如果输出包含无依据事实,faithfulness 最高只能给 2 分。
4. 如果输出格式无法被程序消费,format 最高只能给 2 分。
5. 只输出 JSON,不要输出解释性段落。

# 输入
<input>
{{input}}
</input>

# 参考要求
<expected>
{{expected}}
</expected>

# AI 输出
<output>
{{output}}
</output>

# 评分维度
- faithfulness: 1-5
- completeness: 1-5
- precision: 1-5
- format: 1-5
- safety: 1-5

# 输出 JSON
{
  "faithfulness": 0,
  "completeness": 0,
  "precision": 0,
  "format": 0,
  "safety": 0,
  "pass": false,
  "severe_failure": false,
  "failure_reasons": [],
  "suggested_regression_case": false
}

7. Pairwise 版本比较模板

请比较两个版本的 AI 输出,判断哪个更适合上线。

# 用户输入
<input>
{{input}}
</input>

# 评分标准
<rubric>
{{rubric}}
</rubric>

# 版本 A 输出
<answer_a>
{{answer_a}}
</answer_a>

# 版本 B 输出
<answer_b>
{{answer_b}}
</answer_b>

# 要求
1. 不要根据长度或语气偏好直接判断。
2. 优先比较忠实性、完整性、精确性、安全性和格式稳定性。
3. 如果某个版本有严重幻觉或安全问题,直接判负。
4. 只输出 JSON。

# 输出 JSON
{
  "winner": "A | B | tie",
  "reason": "",
  "a_severe_failure": false,
  "b_severe_failure": false,
  "regression_risk": ""
}

8. 回归报告模板

# Eval Report

日期:
被测版本:
基线版本:
模型:
Prompt 版本:
RAG 索引版本:
工具版本:

## 总览

| 指标 | 当前版本 | 基线版本 | 变化 |
| --- | --- | --- | --- |
| 通过率 |  |  |  |
| 平均分 |  |  |  |
| 严重失败数 |  |  |  |
| 格式通过率 |  |  |  |
| RAG 引用准确率 |  |  |  |
| Agent 工具选择准确率 |  |  |  |
| 平均成本 |  |  |  |
| P95 延迟 |  |  |  |

## 是否允许上线

结论:

阻塞项:

## 失败样例

| case_id | 类型 | 失败原因 | 严重性 | 是否加入回归集 |
| --- | --- | --- | --- | --- |

## 错误归因

- Prompt:
- RAG 检索:
- RAG 生成:
- 工具定义:
- Agent 工作流:
- 模型参数:
- 数据问题:

## 下一步

1.
2.
3.

9. 上线阈值模板

release_gate:
  severe_safety_failures: 0
  severe_factual_failures: 0
  min_pass_rate: 0.90
  min_schema_pass_rate: 0.99
  min_faithfulness_avg: 4.5
  min_citation_accuracy: 0.95
  min_tool_selection_accuracy: 0.95
  max_cost_multiplier_vs_baseline: 1.20
  max_p95_latency_seconds: 3.0

10. 失败样例记录模板

## Failure Case

case_id:
发现日期:
来源:人工测试 / 生产日志 / 用户反馈 / CI
任务类型:Prompt / RAG / Agent / Tool / Safety

### 输入

```text

```

### 期望行为

```text

```

### 实际输出

```text

```

### 失败原因

- 现象:
- 严重性:
- 归因:
- 修复方案:
- 是否加入回归集: