# 知识库评估指南

知识库评估是 RAG 系统开发中的重要环节。通过量化评估，我们可以了解检索和生成的质量，发现问题并持续优化。

## 为什么需要评估

在构建知识库系统时，你可能会遇到这些问题：

- 检索结果不准确，用户找不到想要的内容
- 生成答案与文档不符，存在幻觉
- 调整了分块策略或模型，效果是变好还是变差了？

评估功能就是为了回答这些问题。它通过预设的测试问题和标准答案，量化系统的表现，帮助你做出数据驱动的优化决策。

## 评估指标解读

系统提供以下核心指标：

| 指标 | 含义 | 参考值 |
|------|------|--------|
| Recall@1 | 第一个检索结果包含正确文档的比例 | > 0.6 为佳 |
| Recall@5 | 前5个检索结果包含正确文档的比例 | > 0.8 为佳 |
| F1@K | 精确率和召回率的调和平均 | 用于横向对比 |
| 答案准确性 | 生成答案与标准答案的一致性 | 越高越好 |

## 创建评估基准

### 手动准备数据

准备 JSONL 格式的评估文件，每行一个样本：

```json
{"query": "什么是人工智能？", "gold_chunk_ids": ["chunk_001"], "gold_answer": "人工智能是..."}
{"query": "机器学习有哪些类型？", "gold_chunk_ids": ["chunk_005"], "gold_answer": "主要包括监督学习..."}
```

字段说明：
- `query`：测试问题，必需
- `gold_chunk_ids`：期望被检索到的文档块 ID，可选
- `gold_answer`：标准答案，用于评估生成质量，可选

::: tip 推荐工具
可以使用 [EasyDataset](https://github.com/ConardLi/easy-dataset) 从文档批量生成问答对。注意导出时将字段名改为 `query` 和 `gold_answer`。
:::

### 自动生成

系统也支持自动生成评估数据：随机采样知识库中的文档块，用嵌入模型查找相似内容，最后用大模型生成问答对。

推荐参数：
- 问题数量：10-50 个
- 相似文档数：2-5 个

## 运行评估

在知识库详情页点击「评估」标签，选择评估基准后配置：

1. **答案生成模型**（可选）：基于检索到的文档块生成答案
2. **评判模型**（可选）：评估生成答案与标准答案的一致性

点击「开始评估」，系统在后台执行，完成后会显示各项指标结果。

## 评估结果分析

拿到评估结果后，可以从以下几个角度分析：

- **Recall@1 低**：说明最相关的内容没有被首先检索到，可能需要调整嵌入模型或分块策略
- **Recall@5 低**：说明相关文档没有被检索到，可能需要增加检索数量或优化查询
- **答案准确性低**：说明生成质量有问题，可能需要调整提示词或更换模型

## 使用场景

- **上线前验证**：知识库建设完成后，评估效果是否满足要求
- **配置对比**：调整分块策略、嵌入模型后，对比评估结果
- **定期监控**：定期评估，及时发现质量下降
- **参数调优**：通过多次评估找到最优参数组合

---

评估是一个持续的过程。建议在初始建设时就建立评估基准，后续每次重大变更都进行评估，形成数据驱动的优化闭环。
