DeepEval 完整指南:5分钟上手LLM评测框架
2026/9/9 17:22:59 网站建设 项目流程

DeepEval 完整指南:5分钟上手LLM评测框架

【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval

当你需要量化评估 LLM 应用的质量时,DeepEval 这个开源 LLM 评测框架可以把主观判断变成可复现的分数:把应用的输入输出写进测试用例,选择若干指标跑一遍,就得到 0 到 1 的得分和通过与否的结论。

项目定位

DeepEval 是一个开源的 LLM 评测框架,定位类似 Pytest,但专门用来测试大语言模型应用——你可以把它理解成一条给 AI 应用把关的质检流水线:输入是你的问答数据,输出是一组可对比的分数。它主要服务于构建 RAG 系统、聊天机器人和 Agent 应用的开发者。

  • 内置 30+ 评测指标:覆盖 RAG、多轮对话、Agent 任务、安全性等场景
  • 灵活的裁判模型:指标默认采用 LLM-as-a-judge(让另一个大模型当裁判打分)机制,可以接入你自选的任何模型,包括本地部署的模型
  • Pytest 风格测试:用例写在标准 Python 文件里,一条命令运行,可直接接入 CI/CD 流水线
  • 配套工具链:合成数据集生成、基于评测结果的提示词自动优化、公开基准测试

快速上手

要求 Python 3.9 以上,安装只需一行:

pip install -U deepeval

最小可运行示例(非 Pytest 模式,适合在 Notebook 里直接跑)。先设置OPENAI_API_KEY环境变量,或换成自己的本地模型:

from deepeval import evaluate from deepeval.metrics import AnswerRelevancyMetric from deepeval.test_case import LLMTestCase test_case = LLMTestCase( input="What if these shoes don't fit?", actual_output="We offer a 30-day full refund at no extra costs.", retrieval_context=["All customers are eligible for a 30 day full refund at no extra costs."], ) evaluate([test_case], [AnswerRelevancyMetric(threshold=0.7)])

预期结果:终端打印一张得分表,AnswerRelevancy 得到 0 到 1 之间的分数,达到 0.7 阈值则判定 PASS,否则 FAIL。

核心能力拆解

能力模块解决的问题典型场景
内置评测指标(deepeval/metrics/)主观质量难以量化答案相关性、幻觉、毒性、JSON 格式校验
测试用例与数据集评测输入不统一、人工整理慢RAG 单轮、多轮对话、合成数据生成
追踪与轨迹评测只看最终输出难以定位问题评估 Agent 每一步模型决策与工具调用
基准测试模型选型缺少客观依据MMLU、HumanEval、GSM8K 等公开基准
提示词优化提示词靠反复试错根据评测结果自动改写提示词

内置评测指标。最常用的入口是 AnswerRelevancyMetric,衡量回答与问题的相关程度;FaithfulnessMetric 面向 RAG,校验回答是否基于检索到的上下文、有没有编造事实。没有现成指标时,GEval 允许你写一句话标准(例如"判断 actual output 相对 expected output 是否正确"),由 LLM 按标准打分并给出理由。每个指标一个子目录、各自独立,单挑任何一个指标单独使用也可以。

追踪与轨迹评测。DeepEval 把 LLM 应用既当黑盒,也当可以拆开看的流水线:用@observe()装饰器标记函数后,每次模型调用、工具调用、中间步骤都会被记录成一条 trace。之后用数据集的evals_iterator()把同一批测试输入跑过应用,就能对完整执行轨迹跑 TaskCompletion 等指标,定位是哪一步拖低了分数。

一个完整工作流

以"RAG 客服机器人的质量回归"为例,流程分三步。

步骤 1:写测试用例。在测试文件里放入若干问答样本,每个样本是一个 LLMTestCase,包含 input(用户问题)、actual_output(你的机器人实际回复)、expected_output(理想回复):

# test_chatbot.py import pytest from deepeval import assert_test from deepeval.metrics import AnswerRelevancyMetric from deepeval.test_case import LLMTestCase def test_chatbot(): test_case = LLMTestCase( input="What if these shoes don't fit?", actual_output="You have 30 days to get a full refund at no extra cost.", expected_output="We offer a 30-day full refund at no extra costs.", ) assert_test(test_case, [AnswerRelevancyMetric(threshold=0.7)])

步骤 2:运行测试。在终端执行deepeval test run test_chatbot.py,框架会把每条用例送进指标打分,在终端汇总得分与通过情况。

步骤 3:定位与迭代。指标未达标时,阅读它输出的 reason 文本判断问题出在哪个环节,修改应用或提示词后重跑同一条命令。这条命令可以直接写进 CI 流水线,每次提示词或模型变更都跑一遍回归评测。

进阶与生态

二次开发入口:自定义指标只需继承 BaseMetric(位于 deepeval/metrics/base_metric.py),实现 measure 方法返回 0 到 1 的分数,即可自动接入现有的断言、报表与 CI 流程。

规模化与性能要点:

  • 测试文件可配合 pytest-xdist 并行执行,把数据集拆给多个 worker
  • evaluate支持异步配置并发运行应用,也提供缓存配置,避免裁判模型对同一输入重复计费
  • 指标与测试用例解耦,给大型数据集增删指标不需要改动用例代码

框架集成:LangChain 与 LangGraph 通过 callback handler 接入评测,Pydantic AI、CrewAI、LlamaIndex、OpenAI、Anthropic、Google ADK 等也有对应集成,examples/ 目录里可以找到各框架的可运行示例。

文档与社区

  • 仓库自带完整文档源文件,位于docs/content/docs/目录,其中getting-started.mdx是 5 分钟快速入门,metrics-introduction.mdx是指标选型指南
  • tests/examples/目录提供了官方测试用例和示例脚本,适合直接通读学习
  • 版本变更记录归档在docs/content/changelog/,项目以持续小步迭代的方式更新;使用问题可通过仓库 issue 跟踪器提交

行动清单

  1. 安装后直接运行deepeval test run examples/getting_started/test_example.py,查看完整的打分与判定输出
  2. 浏览deepeval/metrics/下的子目录,挑 1 到 2 个贴合自己 RAG 或 Agent 场景的指标,把示例里的 actual_output 替换成自己应用的真实输出试跑
  3. 打开docs/content/docs/下的 getting-started 页面,按"写用例、选指标、跑测试"三步搭出第一条回归测试

当你能用数据对比两版提示词谁更好用时,剩下的事情就只是不断往数据集里添加新用例了。

【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询