ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

10分钟上手DeepEval:给LLM应用装上一套自动化质量评估流水线

10分钟上手DeepEval:给LLM应用装上一套自动化质量评估流水线 10分钟上手DeepEval给LLM应用装上一套自动化质量评估流水线【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval你刚上线了一个RAG问答系统老板问了一句怎么证明这次改提示词后答案质量是变好而不是变差你翻遍代码库发现没有一个地方能回答这个问题——输出没有量化标准质量好坏全凭感觉。这正是LLM评估工具需要解决的事DeepEval是一个开源的大语言模型评估框架它之于LLM应用测试就像Pytest之于传统单元测试。 DeepEval到底是什么它是pytest风格的LLM测试库把LLM应用的输入、输出封装成LLMTestCase用30多个现成指标给输出打分分数低于你设定的threshold测试就失败直接接到CI里当质量门禁。指标覆盖RAG、智能体轨迹、多轮对话、多模态和安全性且全部基于LLM-as-a-judge或统计方法在你的机器上本地运行输出不出本地环境与框架无关官方提供LangChain、LlamaIndex、OpenAI、CrewAI、Pydantic AI等现成集成一行代码接入支持端到端黑盒评估也支持对单次LLM调用、工具使用、检索步骤做组件级评估 5行代码完成第一个LLM输出质量断言DeepEval要求Python 3.9及以上安装一行命令pip install -U deepeval export OPENAI_API_KEYsk-xxxx # 指标用LLM当裁判需配置一个API Key下面这段代码定义了两个内置指标通用正确性、答案相关性对一条测试用例断言得分必须达到及格线# test_chatbot.py import pytest from deepeval import assert_test from deepeval.metrics import GEval, AnswerRelevancyMetric from deepeval.test_case import LLMTestCase, SingleTurnParams def test_case(): correctness 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( input如果这双鞋不合适怎么办, actual_output提供30天全额退款无需额外费用。, expected_output30天内可免费全额退款。, retrieval_context[所有客户可享30天全额退款政策。], ) assert_test(test_case, [correctness, AnswerRelevancyMetric(threshold0.5)])然后在终端执行deepeval test run test_chatbot.py会看到每个用例的PASS/FAIL和各项指标得分。跑通后你就有了一个可以反复执行的质量验收命令以后任何一次prompt或模型改动重跑它就知道是进步还是退化。 DeepEval能帮你解决哪些实际问题RAG管线质量回归——当你调完检索或改完chunking需要证明答案没变差时直接用RAG专项指标批量打分AnswerRelevancyMetric回答对问题的相关程度FaithfulnessMetric回答是否忠于检索到的上下文ContextualPrecisionMetric/ContextualRecallMetric检索片段排序与覆盖质量FaithfulnessMetric(threshold0.7)智能体轨迹验收——当你的Agent多步调用工具、你担心它绕远路或调错工具时可以沿完整执行轨迹评估TaskCompletionMetric是否达成了目标ToolCorrectnessMetric是否调用了正确的工具StepEfficiencyMetric是否存在多余步骤for golden in dataset.evals_iterator(metrics[TaskCompletionMetric()]): your_agent(golden.input)自定义标准与多轮对话——当内置指标不覆盖你的业务标准时GEval接受自然语言标准一段话就能定义新指标GEval(name语气合规, criteria判断实际输出是否符合客服语气规范, evaluation_params[SingleTurnParams.ACTUAL_OUTPUT], threshold0.6)多轮聊天场景则可用ConversationCompletenessMetric、RoleAdherenceMetric等逐轮评估。 实战给客服聊天机器人做上线前评估以改完prompt后验证客服机器人质量为例共四步。Step 1把验收用例沉淀成数据集Golden是标注好的标准问答。from deepeval.dataset import Golden, EvaluationDataset from deepeval.test_case import LLMTestCase dataset EvaluationDataset(goldens[ Golden(input怎么退款, expected_output30天内可免费全额退款。), Golden(input物流几天到, expected_output一般3-5个工作日送达。), ])Step 2批量跑评估——每条golden过一遍你的应用用evals_iterator自动采集trace并挂载指标。for golden in dataset.evals_iterator(metrics[ AnswerRelevancyMetric(threshold0.6), GEval(nameCorrectness, criteriaDetermine if the actual output is correct based on the expected output., evaluation_params[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.EXPECTED_OUTPUT], threshold0.6)]): answer your_llm_app(golden.input)Step 3执行并查看结果——deepeval test run test_chatbot.py在终端输出每条用例的得分与通过状态再执行一次deepeval login云端报告会自动生成可直接分享给没有本地环境的同事复核。Step 4换版本对比——把prompt或模型改一版重复Step 2-3用compare把两轮结果并排对比回归一目了然。到这一步你手里就有了这次改动值不值得上线的量化依据。 进一步深挖DeepEval的高级用法如果你只是做内部工具上面第3-5步已经够用如果要往生产级靠可以沿三个方向深入接入CI/CDDeepEval基于pytest插件机制注册见pyproject.toml里的pytest11入口deepeval test run可以作为流水线的阻塞门禁适合每次提交都过质量检查的团队自定义指标继承BaseMetric实现自己的measure逻辑自动融入整个生态适合内置指标覆盖不了的合规、话术等检查合成评估数据集deepeval/synthesizer/支持从文档生成单轮和多轮合成测试数据适合golden标注样本还很少的阶段完整指标列表见指标源码目录提示词自动优化可看optimizer模块。✅ 下一步适合谁、不适合谁换个角度看它的价值DeepEval把质量有没有变差从玄学讨论变成一条可复现的命令回归在CI里就被拦住而不是等用户投诉才发现问题。边界要说清楚它面向离线评估不提供线上流量监控和实时告警生产观测需要另配可观测体系如果你的系统根本不是LLM应用或者只需要对确定性输出做断言普通pytest就是更省的选择。建议先按第3节装一下把最小示例跑起来两分钟后你对它适不适合你的业务就有判断了。【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表