首页/AI/RAG 与向量库速查/DeepEval 与 CI 中的评测

DeepEval 与 CI 中的评测

DeepEval 以测试用例方式组织评测:把问题、检索上下文与输出写成用例,断言各指标阈值,接入 CI 后每次发布自动跑回归——评测从“一次性报告”变成“持续门禁”。

RAG 与向量库速查AI更新于 2026-10-13

DeepEval 做什么

DeepEval 用测试用例的方式组织评测:把问题、检索上下文、模型输出与期望答案写成一个用例,再对各指标设置阈值断言,接进 CI 后每次改动自动跑回归。它把评测从「一次性报告」变成「持续门禁」,让质量回归像单元测试一样被自动拦截,而不是等上线后由用户发现。

基本信息

组织方式以测试用例为单位,一道题一个用例
常用指标忠实度、答案相关性等 RAG 专用指标
接入方式在 CI 中运行,指标低于阈值即判定失败
阈值策略以当前基线为准,允许约定范围内的小幅波动

典型使用场景

  • 发布门禁:改动提示词或模型后自动跑评测,低于阈值阻断合并
  • 重构保护:改检索参数时确认没有引入质量回退
  • 多模型对比:同一套用例跑不同模型,输出统一格式的对比报告
  • 历史问题固化:把线上出现过的坏例子补进用例集,防止再次出现
  • 团队协作:用例集入库,评审时以用例结果为共同依据

用例与断言

用例与断言
from deepeval import evaluate
from deepeval.metrics import FaithfulnessMetric, AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase

tc = LLMTestCase(input="如何评估召回?", actual_output=answer,
                 retrieval_context=chunks, expected_output=gold)
# 阈值按当前基线设定,先宽松后逐步收紧
evaluate([tc], metrics=[FaithfulnessMetric(threshold=0.7),
                        AnswerRelevancyMetric(threshold=0.7)])

CI 门禁要点

要点做法常见问题
阈值以当前基线为准,允许小幅波动照抄默认值,与业务实际不符
用例集覆盖高风险与高频问题只放简单题,门禁形同虚设
运行时间控制用例规模,避免拖慢流水线全量评测导致 CI 频繁超时
失败处理门禁失败必须阻断合并只发告警,没人处理
CI 门禁阈值先按当前基线设定(例如允许小幅波动而不是一刀切),避免一次性拉高导致无人愿意合代码,指标反而被绕开。
评测指标本身依赖模型调用,要注意费用与耗时:把用例集按优先级分层,高频用例每次跑,完整集在夜间或发版前运行。

易错点

  • 评测自动跑但没人看结果,门禁形同虚设
  • 阈值直接照抄文档默认值,与业务基线不匹配
  • 用例集从不更新,线上反复出现的问题进不了门禁
  • 评测依赖外部模型,网络或配额异常导致流水线随机失败

数据来源与参考

  • DeepEval 官方文档(RAG Metrics / CI 集成)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌