尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DeepEval 实操手册:用 pytest 式断言搭一条本地 LLM 评估流水线

DeepEval 实操手册:用 pytest 式断言搭一条本地 LLM 评估流水线 DeepEval 实操手册用 pytest 式断言搭一条本地 LLM 评估流水线【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepevalDeepEval 是一个开源 LLM 评估框架把 LLM 应用当作 pytest 单元测试来测解决模型或 prompt 变更后质量回归难以量化的问题。它用 LLM-as-a-judge 和本地 NLP 模型打分测试数据不出你的机器。如果你做了一个 RAG 应用想在上线前验证回答的相关性与幻觉率这就是对应场景。定位与适用边界DeepEval 处于 LLM 应用与测试体系之间的评估层。它不编排 prompt、也不做模型训练而是接收 input、actual_output、expected_output、retrieval_context输出 0-1 的分数和判定理由。你写测试文件用 pytest 或 deepeval CLI 执行得到每个用例的通过状态与得分。它适合三类情况对 RAG 管道做端到端黑盒评估对 Agent 做逐步轨迹评估验证工具调用是否正确以及 prompt 变更后的回归测试让新旧版本的分数可以直接比较。适合谁已有产出稳定输出的 LLM 应用需要可复现、可比较的评估结果团队使用 pytest 式测试流程不适合谁目标是微调模型本身提升能力只需一次性人工抽查无持续回归需求 核心评估能力概览指标库30 现成指标覆盖 RAG、Agent、多轮对话与安全四类场景全部支持自定义阈值。G-Eval按任意自定义标准打分AnswerRelevancy、Faithfulness 等 RAG 指标TaskCompletion、ToolCorrectness 等 Agent 指标Bias、Toxicity、PII 泄露等安全指标数据集与合成数据用 EvaluationDataset 管理用例用 Synthesizer 批量生成 golden避免全部手写。从文档生成单轮和多轮测试用例从已有上下文生成 golden用例可被 pytest 参数化引用追踪与轨迹评估通过 observe 或框架插桩捕获完整调用链对 Agent 走过的每一步做轨迹评估而不只看最终回答。有序记录 LLM 调用与工具调用对完整轨迹跑 TaskCompletion支持手动插桩与自动插桩标准基准几行代码让任意 LLM 跑 MMLU、HumanEval、GSM8K 等基准用于模型选型时的能力对比。十行代码内完成基准评测覆盖推理、代码、知识类任务 跑通第一个 LLM 评估用例要求 Python 3.9先执行安装pip install -U deepeval评估写法接近 pytest构造 LLMTestCase声明指标与阈值assert_test 会在分数不达标时抛断言错误。下面是一个最小程序正确性评估的例子from deepeval import assert_test from deepeval.metrics import GEval from deepeval.test_case import LLMTestCase, SingleTurnParams def test_case(): metric GEval( nameCorrectness, criteriaDetermine if the actual output is correct based on the expected output., evaluation_params[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.EXPECTED_OUTPUT], threshold0.5, ) test_case LLMTestCase( inputWhat if these shoes dont fit?, actual_outputYou have 30 days to get a full refund at no extra cost., expected_outputWe offer a 30-day full refund at no extra costs., ) assert_test(test_case, [metric])配置评判模型的环境变量默认 OpenAI也可换成其他模型后用 CLI 执行该文件deepeval test run test_case.py跑完后你会在终端看到该指标 0-1 的得分与判定理由低于阈值则得到包含具体分数和阈值的 AssertionError可直接定位失败原因。典型场景走查RAG 回答质量回归你换了切块策略或向量库需要确认检索质量没有下降。ContextualPrecision相关分块是否排在前位Faithfulness回答是否基于检索上下文AnswerRelevancy回答与问题的匹配度收益变更前后的同一组分数可以直接对比量化回答这次优化是涨是跌。Agent 工具调用校验Agent 应该查订单状态但你观察到它偶尔调用退款接口或绕远路。ToolCorrectness工具与参数是否选对TaskCompletion完整轨迹是否达成目标StepEfficiency是否存在冗余步骤收益能定位到具体哪一步走错而不是只知道结果不对。多轮对话安全校验需要确认机器人在长对话中不泄露个人信息、不输出有害内容。PII Leakage检测回答中的个人信息Toxicity回答毒性打分Knowledge Retention跨轮次事实是否漂移收益对整段对话整体评估并可指出问题出现在哪一轮。 接入框架与 CI集成方式分两种框架本身有回调机制时传一个 handler已有 OpenTelemetry 的框架则开启一行插桩。LangChain / LangGraph传入 CallbackHandlerOpenAI / Anthropic换成包装后的 clientPydantic AI / CrewAI / Google ADK一行 instrumentLlamaIndex评估其上的 RAG 应用自定义指标继承 BaseMetric 即可接入它是 pytest 兼容的评估文件写成 test_*.py在 CI 里照常执行把评估结果作为合并与发布门禁。不接云平台的纯本地使用也完整可用如果希望跨团队共享报告可再接入其配套平台。 落地路径建议如果你准备把 DeepEval 引入项目先固定 20 条用例。手写 20-30 条高价值 case 并标注 expected_output不要一开始追求数量用例质量决定评估结果的可信度。只选两三个指标。RAG 场景从 AnswerRelevancy 加 Faithfulness 开始再加一个 G-Eval 覆盖业务自定义标准避免一次性跑全部指标导致成本与噪音上升。接入 CI。把评估文件作为 pytest 测试挂到每次合并流程上这是从偶尔测一下变成持续回归的关键一步。生产环境再加平台。个人使用本地 CLI 即可多团队协同时再引入报告聚合与权限管理并固定评判模型版本以保证分数可比。❓ 高频疑问不接云平台能完整跑吗可以。指标打分在你机器上完成不登录就不向云端发送数据。唯一的外部依赖是评判模型的 API且评判模型可配置为自部署模型。评判模型怎么选默认用 OpenAI 模型也可换成任意 LLM。关键是固定一个评判模型并长期不变否则不同批次之间的分数不可比。多指标阈值怎么定先全量跑一遍看分数分布把阈值设在明确可接受的下限如 0.7。指标冲突时以直接对应业务目标的指标为判定依据其余作参考观察。结果能直接当上线门禁吗可以。assert_test 在低于阈值时抛断言错误CI 可据此阻断发布。建议先在小数据集上跑一段时间观察误报率后再收紧阈值。资源入口项目说明与快速开始README.md全部指标源码deepeval/metrics/标准基准实现deepeval/benchmarks/可直接运行的示例测试examples/getting_started/test_example.py文档内容目录docs/content/docs/【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表