大家好,在人工智能领域,RAG系统融合了检索方法与生成式AI模型,相比纯大语言模型,提升了准确性、减少幻觉且更具可审计性。不过,在实际应用中,当建好RAG系统投入使用时,如何判断接收信息是否正确、模型回复是否与输入一致,又该怎么衡量和优化系统性能,答案是可观测性。
本文将介绍如何搭建整合Langfuse可观测性与RAGAS评估指标的RAG系统,前者用于监控系统各阶段,后者能衡量回复质量。通过二者结合,打造可不断评估优化的RAG系统。后续会解析各组件、说明其作用并给出整合代码 。
1.RAG
RAG系统主要包含四个组件,各组件依次协同工作,共同实现系统功能。
在“文档处理”阶段,原始文档会被转化为可处理、可索引的格式,为后续流程奠定基础。接着进入“分块和索引”阶段,文档被分割成较小片段,借助向量嵌入技术创建可搜索索引,方便快速定位相关信息。
随后的“检索”阶段,系统依据用户查询,从索引中精准找到最匹配的文档片段。最后在“生成”阶段,系统将检索到的信息与原始查询融合,进而生成全面且准确的答案。
2.Langfuse
Langfuse是一个专为大语言模型应用程序设计的开源可观测性平台,提供了以下详细的可见性:
-
追踪:贯穿整个堆栈的完整请求生命周期
-
指标:性能、成本和质量指标
-
评估:自动评估回复质量
-
实验跟踪:不同配置的A/B测试
对于我们的RAG系统,Langfuse能帮助监控从文档处理到最终回复生成的所有过程,提供持续改进系统所需的见解。
3.RAGAS
RAGAS(检索增强生成评估)是专为评估RAG系统输出而设计的开源框架。
RAGAS评估RAG系统的两个主要方面:检索质量和生成质量。在我们的实现中,会特别使用两个重要指标:
-
忠实度:该指标衡量生成的答案与检索到的文档中的信息的忠实程度。高忠实度分数表明模型是根据我们手头的资源提供答案,而不是凭空捏造。
-
答案相关性:该指标评估生成的答案对用户原始查询的回应程度。高相关性分数表明答案与问题直接相关,满足了用户的信息需求。
通过这些指标,可以定量评估RAG系统的性能,并随着时间的推移进行改进。将RAGAS指标与Langfuse可观测性相结合,我们可以全面了解系统的工作原理和工作效果。
4.实践项目
首先下载使用的库:
pip install langchain langchain_openai faiss-cpu ragas pypdf langfuse
然后进行必要的导入:
import os
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from datasets import Dataset
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy
from langfuse import Langfuse
from langchain_openai import OpenAIEmbeddings
from langchain_openai import OpenAI as OpenAILLM
from dotenv import load_dotenv
load_dotenv()
在编写代码之前,创建Langfuse账户并获取API密钥。为此,需要在https://langfuse.com/上注册,创建一个项目,并

最低0.47元/天 解锁文章
156






