Ragas 评测使用教程:用 Python 给 RAG 应用打分

Ragas 是一个用 Python 编写的 RAG 评测框架,它通过一组内置指标给检索增强生成(RAG)应用的回答质量打分。
如果你已经有一个 RAG 应用,想知道答案是否忠实于检索内容、是否回答了用户问题,可以按下面的步骤用 Ragas 跑一次评测。

先确认运行环境和依赖

Ragas 的评测过程需要调用大语言模型和嵌入模型。
本文以 Python 3.10 及以上版本、OpenAI 兼容接口为例,其他模型服务需要替换对应的封装类。

安装核心依赖:

pip install ragas datasets langchain-openai

设置模型服务的 API Key 和 Base URL:

export OPENAI_API_KEY="你的密钥"
export OPENAI_BASE_URL="https://api.openai.com/v1"

如果使用兼容 OpenAI 协议的第三方服务,把 OPENAI_BASE_URL 换成服务商提供的地址即可。
评测前先确保模型接口能正常返回结果,否则 Ragas 会在调用阶段报连接错误。

准备评测数据

Ragas 要求每条评测样本至少包含四个字段:question(用户问题)、answer(RAG 系统生成的回答)、contexts(检索返回的文本片段列表)、ground_truth(参考答案)。
其中 contexts 必须是列表,不能是单个字符串。

下面是一个最小可用的数据集示例:

from datasets import Dataset

data = {
    "question": ["Ragas 的主要用途是什么?"],
    "answer": ["Ragas 用于评测 RAG 应用的检索和生成质量。"],
    "contexts": [["Ragas 是一个 RAG 评测框架,提供 faithfulness、answer_relevancy 等指标。"]],
    "ground_truth": ["Ragas 是一个用于评测 RAG 应用的 Python 框架。"]
}

dataset = Dataset.from_dict(data)

如果样本量较大,建议从 CSV 或 JSON 文件读取后转换成 Dataset。
注意 ground_truth 只在使用需要参考答案的指标时才必要,但建议保留,方便后续对比。

选择指标并执行评测

Ragas 内置了多个指标,新手可以先从以下三个开始:

  • faithfulness:回答是否忠实于检索到的上下文,适合检查模型是否编造信息。
  • answer_relevancy:回答与问题的相关程度。
  • context_precision:检索到的上下文中有多少是真正有用的。

用 evaluate 函数执行评测:

from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision

result = evaluate(
    dataset=dataset,
    metrics=[faithfulness, answer_relevancy, context_precision]
)

print(result)

执行后会在终端输出每个指标的分数,分数范围通常是 0 到 1,越高越好。
如果某个指标返回 nan,通常是因为该条样本的字段缺失或模型调用失败,需要检查数据格式和接口连通性。

常见报错与避坑

报错 KeyError: 'contexts':说明数据集缺少 contexts 字段,或者字段名拼写不一致。
Ragas 对字段名敏感,请按文档使用 question、answer、contexts、ground_truth。

评测速度很慢:每个样本都要多次调用模型,样本量大时耗时明显。
可以先用 10 到 20 条样本跑通流程,再逐步增加。

指标分数全部为 0 或异常低:先检查 answer 字段是否为空,再确认模型服务是否正常返回。
部分兼容接口对并发请求有限制,可以降低并发数或分批执行。

不要用评测结果直接替代人工检查:Ragas 的指标依赖模型判断,适合做趋势对比和批量筛查,关键业务场景仍建议抽样人工复核。

验证评测是否生效

跑完评测后,建议做两件事确认结果可信:

  1. 打印 result 的完整内容,确认每个指标都有数值,而不是全部为 nan。
  2. 手动挑选一两条低分样本,对照 answer 和 contexts 检查是否真的存在答非所问或编造内容。

如果低分样本确实有问题,说明评测流程工作正常;
如果低分样本人工检查后认为回答合理,则需要调整指标选择或检查模型判断是否稳定。
评测不是一次性的工作,建议在每次修改检索策略或提示词后重新跑一次,观察分数变化。

常见疑问

Ragas 必须用 OpenAI 吗? 不是。
Ragas 支持通过 LangChain 封装接入其他模型服务,只要替换对应的 LLM 和 embeddings 对象即可。

没有 ground_truth 能评测吗? 可以。
faithfulness 和 answer_relevancy 不强制要求参考答案,但 context_precision 等指标可能需要。
建议根据指标文档确认字段要求。

评测结果和人工判断不一致怎么办? 先检查数据格式和模型接口是否稳定,再考虑调整指标组合。
Ragas 的分数是参考值,不是绝对标准。

分享到:
上一篇
Vectara 使用教程:从创建语料到 API 检索的完整流程
下一篇
TruLens评测使用教程:从安装到跑通RAG应用评估
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意