一个6.1K※开源RAG评估工具:Ragas
来源:互联网
时间:2026-08-23 13:48:34
构建完 RAG 系统之后,手头最要紧的事就是设计一套指标来评估它的表现——到底这个系统靠不靠谱,检索和生成环节有没有掉链子。整个评估流程一直是块硬骨头,今天直接介绍一个现成的开源项目,专门解决这个问题。

Ragas 是专为评估检索增强生成(RAG)流水线而生的框架。所谓 RAG,就是借助外部数据来丰富大语言模型上下文的典型应用。市面上已经有不少工具和框架能帮你搭建这些流水线,但怎么量化性能、怎么找出薄弱环节,往往让人头疼。Ragas(全称 RAG Evaluation)就是来填补这个空白的。
它基于最新的研究成果,提供了一系列评估 LLM 生成文本的指标,能让你对 RAG 流水线的表现有清晰的了解。而且 Ragas 可以集成到 CI/CD 流程中,持续监控性能,防止回归。
Ragas 的工作原理
Ragas 从两个层面提供了关键指标:
- :用
检索器
context_precision和context_recall衡量检索系统抓取上下文的质量。 - :用
生成器
faithfulness评估生成的答案是否忠实于上下文(即排除幻觉),用answer_relevancy判断答案与问题的相关程度。

下面是这几个核心指标的详细实现思路:
Faithfulness(忠实度)
- 衡量生成的答案能否从提供的上下文中合理推断出来。实现分两步:先用 LLM 把答案拆解成一组独立句子,再逐一验证每个句子是否能在上下文中找到依据。
Answer Relevance(答案相关性)
- 评估答案针对原问题的回应程度,暂不考虑事实准确性。做法:根据答案逆向生成一批潜在问题,再用嵌入模型计算这些生成问题与原始问题的余弦相似度,最后取平均值。
Context Precision(上下文精确度)
- 衡量检索到的上下文片段与给定问题的匹配程度。重点看排在靠前位置的信息中,有多大比例是真正相关的。
Context Recall(上下文召回率)
- 检验检索到的上下文是否能覆盖真实答案所需的信息。把真实答案逐句与检索到的上下文对比,看有多少句子能被追溯到。
上述指标的具体计算公式,后续会专门介绍。Ragas 还提供了其他指标,感兴趣的话可以参考官方文档。

下面直接让评估系统跑起来。
环境搭建
运行需要安装的依赖
pip install ragas #pip install git+https://github.com/explodinggradients/ragas
代码示例
一个小示例,看看 Ragas 实际怎么工作
(注:Ragas 默认使用 OpenAI 的模型进行评估,如有需要可以修改代码替换自己的模型。)
from datasets import Dataset
import os
from ragas import evaluate
from ragas.metrics import faithfulness, answer_correctness
os.environ["OPENAI_API_KEY"] = "your-openai-key"
data_samples = {
'question': ['When was the first super bowl?', 'Who won the most super bowls?'],
'answer': ['The first superbowl was held on Jan 15, 1967', 'The most super bowls ha ve been won by The New England Patriots'],
'contexts' : [['The First AFL–NFL World Championship Game was an American football game played on January 15, 1967, at the Los Angeles Memorial Coliseum in Los Angeles,'],
['The Green Bay Packers...Green Bay, Wisconsin.','The Packers compete...Football Conference']],
'ground_truth': ['The first superbowl was held on January 15, 1967', 'The New England Patriots ha ve won the Super Bowl a record six times']
}
dataset = Dataset.from_dict(data_samples)
score = evaluate(dataset,metrics=[faithfulness,answer_correctness])
score.to_pandas()
上面介绍的那四个指标是当前最常用的方案。直接上手试一试,看看你手头的 RAG 系统表现如何。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名