
DeepEval LLM 评估5 分钟跑通首次评估并接入 CI【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepevalDeepEval 是一个开源的 LLM 评估框架用LLM 当法官的方式给模型输出打分把评估变成可进 CI 的 pytest 用例。跟着本文 5 分钟看到第一条评估结果拿到的是一套能直接跑的多指标评估脚本。 30 秒认识 DeepEvalDeepEval 把LLM 即法官做成了可运行的测试用例评估模型给应用输出打分低于阈值测试就失败。和传统断言输出等于预期不同它处理的是非确定性输出2000 条数据也不用人工抽检。内置 40 评估指标RAG 有 AnswerRelevancy、Faithfulness 系列Agent 有 TaskCompletion、ToolUse 系列内容安全有 Hallucination、PIILeakage 系列。核心设计就一条评估结果能直接转成测试通过与否天然适配流水线。 5 分钟跑通第一个 DeepEval 评估先装好框架并配好评估用的 Key。默认评估模型走 OpenAI所以OPENAI_API_KEY是前置条件git clone https://gitcode.com/GitHub_Trending/de/deepeval cd deepeval pip install -U . # 安装当前代码也包含 pytest 插件 deepeval --version # 确认 CLI 可用 export OPENAI_API_KEYyour-api-key写一个最小用例评估一条客服问答的答案相关性# test_case.py from deepeval import assert_test from deepeval.test_case import LLMTestCase from deepeval.metrics import AnswerRelevancyMetric def test_customer_service(): test_case LLMTestCase( inputWhat if these shoes dont fit?, actual_outputWe offer a 30-day full refund at no extra cost., expected_outputYoure eligible for a free full refund within 30 days., ) metric AnswerRelevancyMetric(threshold0.7) assert_test(test_case, [metric])运行deepeval test run test_case.py。终端会打印一张表格测试用例名、指标列显示 AnswerRelevancy 的 0~1 得分、状态列绿色 PASS 或红色 FAIL得分低于 0.7 时用例失败并附上评估者给出的判定理由。 评估模型默认取自OPENAI_API_KEY。配了CONFIDENT_API_KEY后结果会同步到 Confident AI 平台做历史对比只做本地评估可以跳过。 电商售后机器人RAG 问答走完全流程场景电商售后文档问答机器人用三个 RAG 指标批量验证答得相关吗、忠于检索内容吗、上下文用对了吗。第一步定义用例。每条用例含用户问题、检索到的上下文、机器人实际回答cases [ (退货政策是什么, [购买后 30 天内可全额退款。], 您可以在 30 天内获得全额退款。), (支持国际配送吗, [我们目前仅支持国内配送。], 我们提供国内和国际配送服务。), (保修期多长, [所有产品享受 1 年保修。], 产品包含 1 年保修。), ]第二步选指标。相关性管答不答题忠实度管是否忠于检索内容上下文相关性管检索片段是否对症metrics [ AnswerRelevancyMetric(threshold0.7), FaithfulnessMetric(threshold0.7), ContextualRelevancyMetric(threshold0.6), ]第三步批量执行。evaluate异步并发跑完所有用例from deepeval import evaluate from deepeval.test_case import LLMTestCase test_cases [ LLMTestCase(inputq, actual_outputout, retrieval_contextctx) for q, ctx, out in cases ] evaluate(test_casestest_cases, metricsmetrics)第四步读结果。终端打印每个用例在三个指标上的得分表和 PASS/FAIL第一条、第三条全绿。 第二条 Faithfulness 得分 0.2FAIL。第五步判断该不该拦截。第二条失败原因明确检索上下文写着仅支持国内配送回答却说提供国际配送属于无依据编造。线上后果是用户按错误承诺下单产生投诉和退单这类用例必须拦住不许合入。 按需求裁剪GEval 与本地评估模型用 GEval 给客服话术打自定义分数内置指标覆盖不了业务标准语气、格式、合规话术时用 GEval把自然语言标准直接交给评估模型。⚠️ 评估仍有波动加strict_modeTrue收紧判定from deepeval.metrics import GEval from deepeval.test_case import SingleTurnParams tone_metric GEval( name语气评估, criteria判断回复是否礼貌、专业避免含糊其辞或推诿话术, evaluation_params[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.INPUT], threshold0.8, strict_modeTrue, )把评估模型换成本地 Ollama有数据合规顾虑或想省 API 费用时把法官换成本地模型评估流量不出内网。⚠️ 评估模型能力应不弱于被评模型弱模型评强模型分数漂移明显from deepeval.models.llms import OllamaModel metric AnswerRelevancyMetric( threshold0.7, modelOllamaModel(modelllama3.1:70b), ) 从本机到 CI 流水线DeepEval 是 pytest 插件CI 集成只需一条测试命令最小 workflow# .github/workflows/llm-eval.yml name: LLM Evaluation Pipeline on: [push, pull_request] jobs: evaluate: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - uses: actions/setup-pythonv4 with: { python-version: 3.11 } - run: pip install deepeval - run: deepeval test run tests/ env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} CONFIDENT_API_KEY: ${{ secrets.CONFIDENT_API_KEY }}把评估结果当作合并门槛任一用例低于阈值即阻断 PR而不是只看有没有报错。把阈值当作标尺先用真实业务数据校准一次之后保持稳定频繁调整会让回归线失去意义。把每次运行当作历史数据配置CONFIDENT_API_KEY后平台自动累积指标曲线劣化一眼可见。⚠️ 排错速查症状原因一句话修复同一用例两次运行得分不同LLM 法官自带随机性重要指标多次运行取均值重复对比加--use-cache频繁 429 限流默认并发 100 打满提供商配额传async_configAsyncConfig(max_concurrent5)降并发某指标直接报错而非给分Faithfulness、Contextual 系列缺retrieval_context给用例补上该字段再跑本地评估首次极慢Ollama 首次调用才拉取模型提前ollama pull 模型名预热下一步读一遍 deepeval/metrics/ 里AnswerRelevancyMetric的源码理解从用例到得分的完整链路再跑 examples/rag_evaluation/ 下的向量库集成示例把评估接到你自己的检索栈上。指标选择参考 docs/。【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考