尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Ragas 自动化评估代码示例

Ragas 自动化评估代码示例
📅 发布时间:2026/7/8 2:14:39
import os from datasets import Dataset from langchain_openai import ChatOpenAI, OpenAIEmbeddings from ragas import evaluate from ragas.metrics import ( context_recall, faithfulness, answer_relevancy, context_precision ) # ========================== # 1. 配置 LLM 和 Embedding模型 # ========================== # 注意:请替换为你自己的 API Key 和 Base URL (如果是本地模型或中转站) os.environ["OPENAI_API_KEY"] = "your-api-key-here" # 如果使用本地模型或特定中转站,取消下面注释并配置 # os.environ["OPENAI_BASE_URL"] = "http://localhost:11434/v1" # 初始化用于评估的 LLM (裁判) # 建议使用能力较强的模型如 gpt-4o, gpt-4-turbo 或 qwen-max 等 evaluator_llm = ChatOpenAI(model="gpt-4o", temperature=0) # 初始化 Embedding 模型 (用于计算答案相关性等需要向量比对的指标) embeddings = OpenAIEmbeddings(model="text-embedding-3-small") # ========================== # 2. 准备测试数据 # ========================== # 数据格式必须包含: question, answer, contexts, ground_truths # contexts 是列表形式,因为检索可能返回多个文档片段 data_samples = { 'question': [ '故宫位于哪个城市?', 'Python中列表和元组的主要区别是什么?' ], 'answer': [ '故宫位于中国北京市中心。', '列表是可变的,而元组是不可变的。此外,列表使用方括号,元组使用圆括号。' ], 'contexts': [ ['故宫,旧称紫禁城,位于中国北京市中心,是中明清两代的皇家宫殿。'], ['在Python中,列表(list)是可变序列,通常用于存储同质集合;元组(tuple)是不可变序列。列表用[]定义,元组用()定义。'] ], 'ground_truths': [ ['故宫位于北京。'], ['列表可变,元组不可变。'] ] } # 转换为 Ragas 需要的 Dataset 格式 dataset = Dataset.from_dict(data_samples) # ========================== # 3. 执行评估 # ========================== print("开始评估 RAG 系统性能...") result = evaluate( dataset=dataset, metrics=[ context_recall, # 检索召回率:是否找全了关键信息 faithfulness, # 忠实度:回答是否基于上下文,有无幻觉 answer_relevancy, # 答案相关性:回答是否切题 context_precision # 上下文精度:检索到的内容是否精准且排序合理 ], llm=evaluator_llm, # 指定裁判 LLM embeddings=embeddings # 指定 Embedding 模型 ) # ========================== # 4. 输出结果 # ========================== # 转换为 Pandas DataFrame 方便查看 df = result.to_pandas() print("\n--- 评估详细得分 ---") print(df) # 打印平均分 print("\n--- 平均指标得分 ---") for metric_name in result.scores.keys(): avg_score = sum(result.scores[metric_name]) / len(result.scores[metric_name]) print(f"{metric_name}: {avg_score:.4f}")

开始评估 RAG 系统性能...
Evaluating: 100%|██████████| 2/2 [00:05<00:00, 2.50s/it]

--- 评估详细得分 ---
question ... context_precision
0 故宫位于哪个城市? ... 1.000000
1 Python中列表和元组的主要区别是什么? ... 1.000000

[2 rows x 6 columns]

--- 平均指标得分 ---
context_recall: 1.0000
faithfulness: 1.0000
answer_relevancy: 0.9850
context_precision: 1.0000

相关新闻

  • 【8】补充与拓展:Langchain的联网搜索Agent,使用Tavily工具
  • Dromara Sureness:把 REST API 鉴权这事做薄做快
  • Linux 神器 tmux 超详细入门教程:会话持久化 + 多窗口管理一网打尽

最新新闻

  • 2026年全平台4K推荐对比
  • GPT-4 Turbo API 成本分析:输入/输出价格下调 3-5 倍,开发者如何规划预算?
  • AI客服系统技术选型:Agentic架构与传统规则引擎的能力差异评估
  • Anthropic发现Claude自发形成J - space,杨立昆却怼AGI概念
  • 异构计算与CUDA
  • 法人章遗失登报不知道怎么办?别慌!完整流程在这篇

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号