DeepEval 快速上手指南:5 分钟跑通 30+ 项 LLM 评测指标
2026/9/10 19:34:01 网站建设 项目流程

DeepEval 快速上手指南:5 分钟跑通 30+ 项 LLM 评测指标

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

你在调 LLM 应用时,有没有遇到过这种困境:换了一版 Prompt,客服机器人的回答是变好了还是变差了?只能靠人肉抽几条对话凭感觉判断。这种"凭感觉上线"的状态,在金融、医疗等对准确性有硬性要求的场景里尤其危险。

DeepEval 是一个开源的 LLM 评测框架(当前版本 4.2.0,支持 Python 3.9+),定位类似"专门给 LLM 应用写的 Pytest":你定义测试用例和评测指标,它用 LLM-as-a-judge(用一个大模型当"裁判"来打分)等本地运行的方法,给你的回答质量打出 0–1 的分数。所有评测流程都在你机器上执行,敏感数据不用出内网,也省去了为每次裁判调用额外付费的成本。

它是什么:一个"给 AI 应用做单元测试"的框架

传统软件测试验证"程序有没有按预期运行",而 LLM 应用的输出天然是非确定性的——同一个问题,模型每次回答的措辞都不同。DeepEval 解决的核心问题就是:如何把"回答得好不好"变成一个可量化、可回归、可进 CI 的标准流程

几个关键定位:

  • 本地化评测:评测指标依赖的裁判模型和 NLP 模型在本地运行,数据零出境,满足合规要求
  • 端到端 + 组件级:既可以把整个应用当黑盒测,也可以只测其中一次 LLM 调用、一次工具调用、一次检索
  • 指标体系覆盖广:从 RAG 忠实度到 Agent 任务完成度,再到多模态与语音,deepeval/metrics/ 下有 50+ 个开箱即用的指标
  • 框架无关:不管你的应用是 OpenAI SDK、LangChain 还是 CrewAI 写的,都能接入

5 分钟先跑起来:安装 DeepEval 并写出第一个测试

安装只需一条命令(DeepEval 本身就是个 pytest 插件):

pip install -U deepeval export OPENAI_API_KEY="你的API Key" deepeval test run test_chatbot.py

最小可运行示例:假设你有一个 RAG 客服机器人,新建test_chatbot.py

import pytest from deepeval import assert_test from deepeval.metrics import GEval from deepeval.test_case import LLMTestCase, SingleTurnParams def test_case(): correctness_metric = GEval( name="Correctness", criteria="判断 actual output 是否符合 expected output", evaluation_params=[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.EXPECTED_OUTPUT], threshold=0.5, ) test_case = LLMTestCase( input="鞋子不合脚怎么办?", actual_output="30 天内可无理由全额退款。", expected_output="30 天内可免费全额退款。", retrieval_context=["所有客户享有 30 天免费全额退款。"], ) assert_test(test_case, [correctness_metric])

运行deepeval test run test_chatbot.py,测试通过即代表得分超过阈值(0.5)。这里GEval是一个"万能裁判":你给一段自然语言评分标准(criteria),它就能按这个标准打分,不需要为每种业务指标单独开发。更多起步细节可参考 官方入门文档 和 示例文件。

核心能力拆解:30+ 指标按场景分组速查

所有指标得分都在 0–1 之间,配合threshold决定测试通过与否。按下表选型:

指标组代表指标评测什么典型场景
自定义标准GEval、DAGMetric任意你描述的标准(DAG 用有向无环图拆解判定步骤,更确定)通用回归测试
RAG 检索问答Faithfulness、AnswerRelevancy、ContextualRecall / Precision / Relevancy、RAGAS回答是否忠实于检索上下文、是否与问题相关、检索质量如何知识库问答、客服
Agent / 工具调用TaskCompletion、ToolCorrectness、GoalAccuracy、StepEfficiency、PlanAdherence任务是否完成、工具与参数是否正确、有没有绕弯路智能体应用
多轮对话TurnRelevancy、KnowledgeRetention、ConversationCompleteness、RoleAdherence跨轮次的一致性、角色是否跑偏聊天机器人
安全与合规Toxicity、Bias、PIILeakage、NonAdvice、Misuse、RoleViolation有害内容、偏见、隐私泄露、越界建议内容审核、合规审计
格式与结构JsonCorrectness、ExactMatch、PatternMatch结构化输出是否符合 schemaAPI 接口、抽取任务
多模态与语音TextToImageMetric、ImageCoherence、VoiceNaturalness 等图像生成质量、图文一致性、语音自然度文生图、语音助手

除了指标,框架还自带三类"生产力"能力:

  • 合成数据集生成deepeval/synthesizer/支持从文档自动生成单轮/多轮评测数据,解决"没有足够测试集"的问题
  • 基准测试:10 行代码以内即可让任意 LLM 跑 MMLU、HumanEval、GSM8K 等公开基准(见 基准测试文档),方便横向对比模型
  • Prompt 自动优化deepeval/optimizer/能基于评测结果自动改写 Prompt 并迭代

接入你的工作流:本地模型、框架集成与 CI/CD

裁判模型可自选,也支持纯本地。每个指标都接受model参数,deepeval/models/下内置了 OllamaModel、LocalModel(指向任意 OpenAI 兼容端点)、OpenAIModel、AnthropicModel、GeminiModel、AmazonBedrockModel、LiteLLMModel、DeepSeekModel 等 13 种适配器。用 Ollama 跑本地裁判,数据全程不出机器:

  • 例如构造一个OllamaModel(model="llama3.2:3b"),传给AnswerRelevancyMetric(model=local_model)即可

主流框架都有现成集成。deepeval/integrations/ 覆盖 LangChain / LangGraph(回调处理器)、Pydantic AI、CrewAI(多智能体)、OpenAI 与 OpenAI Agents(客户端封装)、LlamaIndex(RAG)、Anthropic、Google ADK、AWS AgentCore 等。接入后调用链会被自动追踪,可以直接对完整轨迹做评测。

进 CI/CD 只需 pytest 命令。DeepEval 以 pytest 插件形式注册,测试写成标准的test_*.py,在流水线里跑deepeval test run就能出结果,失败项会阻塞发布——评测从此成为和单元测试同级的质量门禁。

落到具体业务:三个典型场景的"问题→做法"

场景一:金融客服的幻觉与合规风险问题:模型回答流畅,但利率、费率是编的;还可能在回答里带出用户手机号等隐私信息。做法:用"忠实度 + 相关性 + 隐私"三指标组合卡关:

from deepeval import assert_test from deepeval.metrics import FaithfulnessMetric, AnswerRelevancyMetric, PIILeakageMetric from deepeval.test_case import LLMTestCase case = LLMTestCase( input="这款理财产品的年利率是多少?", actual_output="当前年利率为 3.2%。", retrieval_context=["产品 A 年利率 3.2%,起购 1 万元。"], ) assert_test( case, [FaithfulnessMetric(threshold=0.8), AnswerRelevancyMetric(threshold=0.7), PIILeakageMetric()], )

Faithfulness 会逐句核对回答能否被retrieval_context支撑,编造的数字直接扣分。

场景二:Agent 应用"失败了但不知道哪一步坏的"问题:智能体最终没完成任务,但中间经历了十几步工具调用,人工排查成本极高。做法:给应用函数加上@observe()装饰器(来自 deepeval/tracing/),DeepEval 会记录完整的模型决策与工具调用轨迹,然后叠加TaskCompletionMetric(是否达成目标)、ToolCorrectnessMetric(是否调对了工具、传对了参数)、StepEfficiencyMetric(有没有多余步骤),把"黑盒失败"拆成可定位的具体环节。

场景三:多轮聊天机器人的"失忆"与角色漂移问题:对话进行到第 5 轮,机器人忘了前文约定的约束,语气也从"专业顾问"变成了"闲聊搭子"。做法:用多轮指标KnowledgeRetentionMetric(事实信息跨轮次保留)+RoleAdherenceMetric(全程角色一致性)+TurnRelevancyMetric(每轮回答的相关性),对整段会话打分,而不只是看单轮输出。

从能用用到好用:四个进阶方向

  • 轨迹级评测(trajectory-based evals):不只评最终答案,而是对 Agent 的完整路径打分。用dataset.evals_iterator(metrics=[...])把同一数据集反复灌入应用,每次运行自动采集轨迹并评测,适合持续回归(详见 轨迹评测文档)
  • 自定义指标:继承BaseMetric(位于deepeval/metrics/base_metric.py),实现打分逻辑后即可与整个评测生态无缝集成——业务特有的"合规话术检查"这类需求都能自己写
  • 并行与规模:依赖 pytest-xdist,加-n auto即可多进程并行跑大规模测试集;指标本身支持异步执行
  • Prompt 自动调优闭环:把评测得分反馈给deepeval/optimizer/的 Prompt 优化器,让它基于结果自动改写 Prompt,形成"评测→优化→再评测"的闭环

周边生态与路线

  • TypeScript 同构实现:仓库内typescript/目录提供了 JS/TS 版本的核心能力,前端或 Node 侧也能接
  • 平台与 MCP:配套的 Confident AI 平台提供数据集管理、实验对比、生产环境监控等 UI 能力,也可通过 MCP 服务把评测当作标准层调用
  • 持续演进方向:多模态指标(图像/语音)与 MCP 评测(MCP Task Completion、MCP Use)是近几个版本的重点新增,说明框架正从"评文本"走向"评一切 LLM 产物"

落地路线图:你接下来要做的 5 步

  1. 装框架、跑通样例pip install -U deepeval,照着 examples/getting_started/test_example.py 跑一次deepeval test run,确认环境没问题
  2. 选 2–3 个指标:按前面"能力拆解"表格,结合你的业务场景(RAG 选 Faithfulness 系,Agent 选 TaskCompletion 系)
  3. 攒评测集:手工整理 30–50 条真实用户问题;不够就用合成数据生成器从你的文档批量造
  4. 接入现有流程:把评测脚本放进 CI,设定阈值作为发布门禁,让"Prompt 漂移"在合并前就被拦下
  5. 建立迭代节奏:每次改 Prompt、换模型后重跑同一数据集,对比得分变化,把评测报告作为决策依据而不是感觉

评测不是一次性的项目,而是和你应用同寿命的质量基础设施。今天花 5 分钟跑通第一个测试,就是这条路上最划算的一步 🚀

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

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

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

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

立即咨询