DeepEval 入门指南:10 分钟跑通你的第一个 LLM 评估
【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval
把 prompt 调好、换上新模型之后,你凭什么确认它没在胡说?大多数团队的回答是:在终端里手动翻一遍输出,"感觉没问题"。这种感觉不可复现,也无法阻止下一次改动悄悄引入回归。DeepEval 是一个开源的 LLM 评估框架,用来做 AI 模型评估:它的工作方式类似 pytest,你写好测试用例后在本地执行自动化评估,由 LLM 作为评判方(LLM-as-a-judge)给每次输出打分,判断回答是否相关、是否有幻觉、是否达成任务目标。
DeepEval 解决的三个评估难题
- 改动没有回归测试。你调整了 prompt 或更换了模型,除了人眼抽查,没有任何机制能证明质量没下降。DeepEval 让这类检查变成可重复执行的测试,分数低于阈值时测试直接失败。
- 人工评估主观且不可复现。"这个回答还行"和"这个回答不行"之间的界限因人而异。LLM 评判方把标准固化成评分依据,同一个用例多次评估结果一致可追溯。
- RAG 与 Agent 的评估维度太多。检索质量、事实一致性、工具调用是否正确、整条决策轨迹是否高效……手写一套评估代码成本很高,DeepEval 内置 40+ 现成指标覆盖这些场景。
安装后先跑通的第一条命令
环境准备只需三步:
- 确认 Python 版本为 3.9 及以上,建议用虚拟环境隔离依赖;
- 安装框架本身:
pip install -U deepeval export OPENAI_API_KEY="sk-..."- 设置好
OPENAI_API_KEY后即可运行评估。多数 LLM 评判类指标默认调用 OpenAI 模型当评判方,所以这个 key 是必需项;评估结果默认只留在本地,不上传任何数据。
💡 提示:如果你想在云端生成可分享的评估报告,可以额外执行deepeval login注册账号;这是可选项,不影响本地评估。
跑通一个真实任务:从测试用例到看懂结果
用一个客服问答场景演示单轮评估。DeepEval 里一切评估都围绕LLLMTestCase展开(准确类名是LLMTestCase),它的四个字段分别对应:用户输入input、你应用的真实输出actual_output、标准答案expected_output、RAG 场景的检索上下文retrieval_context。
新建test_chatbot.py,写入以下最小可运行示例:
from deepeval import assert_test from deepeval.test_case import LLMTestCase from deepeval.metrics import AnswerRelevancyMetric def test_chatbot(): case = LLMTestCase(input="What if these shoes don't fit?", actual_output="We offer a 30-day full refund at no extra cost.", expected_output="Free full refund within 30 days of purchase.") assert_test(case, [AnswerRelevancyMetric(threshold=0.7)])把actual_output换成你应用对这条输入的真实回答,然后在终端执行deepeval test run test_chatbot.py。
运行后你会得到三项信息:得分(0-1 之间的浮点数)、通过/失败状态(得分是否达到threshold设定值)、评判理由(评判方说明扣分原因的文字解释)。AnswerRelevancyMetric衡量的是回答与问题的相关程度——如果它给出了题外话,分数会明显下降。登录平台后,同一批用例的结果会出现在这样的测试用例面板里,可以看到每个用例的状态、输入与输出对照:
按需进阶:自定义指标与多指标组合
自定义指标 GEval:内置指标覆盖不了业务标准时,用自然语言描述你的评判规则即可,例如"回答是否礼貌专业":
from deepeval.metrics import GEval from deepeval.test_case import SingleTurnParams politeness = GEval(name="Politeness", criteria="Judge whether the reply is polite, professional, and useful.", evaluation_params=[SingleTurnParams.INPUT, SingleTurnParams.ACTUAL_OUTPUT], threshold=0.8)criteria是评判方遵循的打分依据,evaluation_params指定它拿哪些字段参与判断,最后把politeness加进assert_test的指标列表即可。
多指标组合:同一个测试用例可以挂多个指标一起跑,各指标独立打分、互不影响。RAG 场景的常见组合是AnswerRelevancyMetric(答案相关)加FaithfulnessMetric(答案与检索上下文是否事实一致,此时需在用例中填retrieval_context);Agent 场景则可以用TaskCompletionMetric、ToolUseMetric分别评估目标达成与工具调用。完整清单见 deepeval/metrics/。
落地与避坑:接入 CI/CD,以及阈值和成本建议
接入现有工作流:在 CI 的流水线里加一步pip install -U deepeval和deepeval test run tests/,并注入OPENAI_API_KEY环境变量。之后任何 prompt 或模型变更都会触发评估,指标掉分即红灯,这是防止 prompt 漂移最简单有效的手段。如果团队需要集中管理评估历史与数据集,deepeval login之后本地评估结果会自动同步到 Confident AI 平台,评估、数据集、提示词和 trace 都经由统一的 API 层接入:
⚠️ 注意:新手最常踩的三个坑——
- 阈值拍脑袋。建议先不设严格阈值(默认 0.5),跑一轮看分数分布,确认哪些用例该过、哪些该挂之后,再把阈值定在合理分位,避免一上来设 0.9 导致全线红灯失去信任。
- 评判成本。每个指标对每个用例都会触发一次 LLM 调用,指标多 × 用例多会线性放大开销;先用 20-50 条有代表性的黄金样本,而不是全量数据。
- 评判方本身会波动。LLM 打分不是完全确定性的,保留一小批人工确认过的基准用例,定期校准评判标准本身。
下一步行动
- 把上文示例中的
actual_output替换为你应用对同一输入的真实输出,执行deepeval test run test_chatbot.py拿到第一个分数; - 浏览 deepeval/metrics/,按你的场景(单轮问答 / RAG / Agent)挑出 2-3 个指标组合进测试;
- 将
deepeval test run加进 CI 流水线,让评估在每次改动时自动执行。
更多细节可参考官方入门文档 docs/content/docs/getting-started.mdx 与完整示例 examples/getting_started/test_example.py。
【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考