DeepEval LLM评估框架:5分钟跑通第一次模型质量测试
【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval
DeepEval 是一个开源的LLM 评估框架:把大模型输出当成可测试对象,写测试用例、用 40 余个内置指标打分,并能接入 CI。适合需要系统化验证 LLM 应用质量的 AI 工程师与开发者。
它解决什么问题
DeepEval 解决一个具体问题:用“测试”代替“凭感觉”来评估模型。以下三类情况最适合引入它:
- RAG 知识库:换模型或调整检索后,回答质量会悄悄变化,需要客观分数判断好坏。
- 客服对话机器人:坏例子靠人工抽查追不上,需要固定指标的回归测试在质量下滑时给出信号。
- Agent 工具调用:智能体可能选错工具或陷入循环,需要对调用链做量化检查,而不只看最终回答。
安装并完成第一次评估
需要 Python 3.9+,一条命令完成安装:
pip install deepeval再写一个 pytest 风格的测试文件,仓库里已有可直接参考的示例 examples/getting_started/test_example.py:
from deepeval import assert_test from deepeval.metrics import AnswerRelevancyMetric from deepeval.test_case import LLMTestCase def test_answer_relevancy(): test_case = LLMTestCase( input="What if these shoes don't fit?", actual_output="We offer a 30-day full refund.", expected_output="Free full refund within 30 days.", ) metric = AnswerRelevancyMetric(threshold=0.7) assert_test(test_case, [metric])执行deepeval test run test_example.py,终端会给出每个用例的通过/失败与得分。若还需要可视化看板、标注与团队协作,可接入 Confident AI 平台(支持与编码工具通过 MCP 对接):
核心能力:从数据集到回归
- 数据集管理(
deepeval/dataset/):EvaluationDataset批量组织测试用例,Goldens 支持版本管理,可导入导出 CSV/JSON。 - 评估执行(
deepeval/evaluate/):evaluate()本地跑完整数据集并按指标打分;内置 pytest 插件,可直接挂进 CI。 - 追踪(
deepeval/tracing/):基于 OpenTelemetry 记录每次 LLM 与工具调用为 span,失败用例可定位到具体环节。 - 对话模拟(
deepeval/simulator/):用 LLM 扮演“用户”与机器人多轮对话,把对话结果沉淀为回归数据集。
📊 指标体系:一次看懂内置指标
指标实现集中在 deepeval/metrics/,按场景选取即可:
| 指标 | 评估内容 |
|---|---|
AnswerRelevancyMetric | 回答与问题的相关程度 |
FaithfulnessMetric | 回答是否以给定参考资料为依据 |
ContextualRelevancyMetric | 检索到的上下文与问题的相关性 |
ContextualRecallMetric | 参考资料是否覆盖期望答案要点 |
HallucinationMetric | 资料中无依据的编造内容 |
SummarizationMetric | 摘要对原文的忠实度 |
ToxicityMetric/BiasMetric | 有害内容与偏见 |
PIILeakageMetric | 是否泄露个人信息 |
GEval | 用自然语言自定义任意评分标准 |
DAGMetric | 结构化多步评分(子标准树) |
ToolUseMetric | 工具选择与调用参数是否正确 |
ConversationCompletenessMetric | 多轮任务是否达成目标 |
ExactMatchMetric/PatternMatchMetric | 规则匹配,无需调用 LLM |
规则类指标如ExactMatchMetric不需要裁判模型;GEval这类 LLM 指标需配置裁判模型(本地或商用模型均可)。
三个最有价值的落地场景
RAG 知识库问答
- 用 ContextualRelevancy + ContextualRecall + Faithfulness 三件套,区分“检索差”和“生成差”
- 测试集固定,只改检索参数或模型,直接对比得分
- 加
HallucinationMetric拦截无依据回答 - 每次回归都能得到新旧用例的逐项对比视图:
客服多轮对话
ConversationCompletenessMetric检查对话目标是否达成- 用 ConversationSimulator 自动生成用户问题,减少人工造例
- Turn 级忠实度指标跟踪单轮质量回退
Agent / MCP 工具调用
ToolUseMetric检查工具选择与参数AgentLoopDetectionMetric识别无限循环MCPTaskCompletionMetric评估端到端任务完成度
LangChain、CrewAI 等框架如何接入
deepeval/integrations/ 目录提供了主流框架的插桩集成:
- LangChain / LangGraph:自动捕获链与节点为评估轨迹
- LlamaIndex:观察 RAG 中检索与生成各步骤
- OpenAI Agents / Pydantic AI / CrewAI:记录智能体编排全过程
- Google ADK / Strands:把 Agent 应用接入同一评估管线
- Anthropic / OpenAI SDK:补丁式自动追踪,代码改动最小
📚 进阶:源码目录与评估策略
- 指标实现:deepeval/metrics/;测试用例定义:deepeval/test_case/
- 官方文档入口:docs/content/docs/getting-started.mdx;CI 用法:docs/content/docs/evaluation-unit-testing-in-ci-cd.mdx
制定评估策略的建议:
- 先用 10~30 条线上真实问题建基线数据集,并为每个指标设定通过阈值
- 每次改 prompt 或换模型都跑一次回归评估,低于阈值即告警
- 把失败用例当 bug 处理:沿调用链定位问题出在检索、生成还是工具调用
- 定期把线上坏例子回流进数据集,让测试集随业务演进
❓ 常见疑问
评估本身需要调用 LLM 接口吗?规则类指标如ExactMatchMetric不需要;AnswerRelevancyMetric、GEval等基于 LLM 的指标需要配置裁判模型,本地或商用模型均可。
业务数据必须上云吗?核心评估在本地执行,数据可以不出你的环境。Confident AI 平台是可选组件,用于可视化、标注与协作。
如何在 CI 中运行?DeepEval 注册为 pytest 插件,可直接用deepeval test run,也可以像普通pytest一样运行,失败即阻断构建。
自定义评估标准要写代码吗?GEval直接用自然语言描述标准并指定评估参数即可;需要更严格结构时,用DAGMetric把标准拆成子标准树。
动手试试
从你的应用里挑一条真实问题写进测试用例跑一遍。完整文档见 docs/content/docs/getting-started.mdx,指标源码在 deepeval/metrics/。
【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考