---
name: rag-eval-checklist
description: 评测 RAG 系统质量时使用。当需要判断一个 RAG/知识库问答系统"能不能上生产"、或要给 RAG 建立评测闭环时，按此清单执行：构建评测集 → RAGAS 核心指标 → 脏数据压力测试 → 上线门槛判定。
tags: [rag, eval, ragas, production]
category: skills
---


# RAG 系统评测清单

给 RAG 系统建立评测闭环的可执行步骤。适用场景：客户问"你们这个问答系统准确率多少"、上线前验收、迭代后回归测试。

## 第一步：构建评测集（不要用真实用户当小白鼠）

1. 从真实文档里挑 30–50 个问题，覆盖三类：
   - **答案在文档里**（约 70%）——考检索和生成
   - **答案不在文档里**（约 20%）——考"拒答"能力
   - **需要跨文档综合**（约 10%）——考多跳检索
2. 每个问题人工写出标准答案和出处文档 ID
3. 存成 CSV：`question, ground_truth, source_doc`

## 第二步：跑 RAGAS 核心指标

```bash
pip install ragas
```

四个指标，及格线参考（生产门槛）：

| 指标 | 测什么 | 上线门槛 |
|------|--------|----------|
| Faithfulness 忠实度 | 答案是否忠于检索到的内容（幻觉率反向） | ≥ 0.85 |
| Answer Relevancy | 答案与问题的相关性 | ≥ 0.80 |
| Context Precision | 检索回来的内容里"有用的占多少" | ≥ 0.75 |
| Context Recall | 该检到的是否检到了 | ≥ 0.85 |

## 第三步：脏数据压力测试（企业现场的真考点）

干净数据人人会跑，用下面这些"脏"样本再测一轮：

- 扫描件 PDF（OCR 噪声）
- 表格混排的报表（分块会把表切碎）
- 同一口径在不同文档里版本不一致（考冲突处理）
- 超长文档（超 context，考分块策略）

记录每一类的失败模式，这就是给客户的技术方案里"已知限制"一节的内容。

## 第四步：判定与迭代

- 四项指标全部达标 → 可以谈上线
- Faithfulness 不达标 → 先改生成端：system prompt 加"只依据以下材料回答"、加引用溯源
- Context 指标不达标 → 先改检索端：分块大小、混合检索（BM25+向量）、Rerank
- 每次改动后重跑评测集，形成回归基线

## 参考资源

- RAGAS：https://github.com/explodinggradients/ragas
- Hamel Husain《Your AI Product Needs Evals》：https://hamel.dev/blog/posts/evals/
- RAG Techniques（脏数据配方）：https://github.com/NirDiamant/RAG_Techniques
