惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42
博客园_首页
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
F
Fortinet All Blogs
腾讯CDC
罗磊的独立博客
IT之家
IT之家
I
InfoQ
V
V2EX
博客园 - 叶小钗
A
About on SuperTechFans
Y
Y Combinator Blog
C
Check Point Blog
量子位
Martin Fowler
Martin Fowler
Vercel News
Vercel News

博客园 - work hard work smart

Java 面试1 Java 常见面试问题 手撕java常用代码 WebStorm 创建react工程 构建企业级 Text-to-SQL Agent:基于 LangGraph 的智能数据查询系统设计 Harness 工程:驾驭 AI Agent 的工程化艺术 DeepAgents 多智能体架构实战:从设计模式到后端选型 Vue 自定义组件完全指南:从零构建待办事项应用 使用 LangChain + Hugging Face 构建文本向量化服务 SQLAlchemy 使用详解 Python 中使用 Elasticsearch 的完整指南 Qdrant 向量数据库使用指南 OpenEvals 快速入门:LLM 评估指南 LangSmith 批量评估完全指南 Qwen-Agent 入门指南:快速构建智能体应用 LangSmith 集成实战:从追踪到评估的完整指南 初识 go-zero:一款让你写后端更规范、更高效的 Go 微服务框架 RAG 中为什么需要 Rerank,以及如何使用 Rerank LangChain4j RAG 核心组件与组合方式 如何使用 Elasticsearch 进行全文检索和向量检索 MinerU Docker 部署指南 5 分钟上手:为 Cline 配置一个免费的 MCP 天气服务 Neo4j 图数据库安装与 Spring Boot 集成实战指南 LangFuse 实战指南:用 @observe 三行代码给 LLM 应用加上全链路追踪 Function Call 深度解析:让大模型从"嘴炮"到"实干"的技术革命 Spring AI 提示词模板实战:告别硬编码,实现提示词工程化管理 LangChain4j 实战指南:用 Java 轻松构建 AI 应用 Spring AI 对话短期记忆实战:让大模型拥有"记忆力" Spring AI 提示词工程实战:让大模型更懂你的意图 Spring AI ChatClient 深度解析:优雅构建大模型应用的利器
DeepEval 快速入门:LLM 应用评估指南
work hard work smart · 2026-06-25 · via 博客园 - work hard work smart

DeepEval 快速入门:LLM 应用评估指南

什么是 DeepEval?

DeepEval 是一个开源的 LLM 评估框架,用于测试和评估大语言模型应用的质量。它提供多种内置评估指标,支持自定义评估标准。

特点:

  • 开源免费
  • 安装简单
  • 内置丰富评估指标
  • 支持自定义评估

安装

pip install deepeval

配置环境变量:

# Windows PowerShell
$env:OPENAI_API_KEY="your-openai-key"

# Linux/Mac
export OPENAI_API_KEY="your-openai-key"

核心概念

1. 测试用例(LLMTestCase)

每个测试用例包含三个要素:

from deepeval.test_case import LLMTestCase

test_case = LLMTestCase(
    input="用户问题",           # 输入
    actual_output="AI回答",     # 实际输出
    retrieval_context=["背景信息"]  # 可选:参考上下文
)

2. 评估指标(Metrics)

DeepEval 提供多种内置指标:

from deepeval.metrics import (
    AnswerRelevancyMetric,    # 答案相关性
    HallucinationMetric,      # 幻觉检测
    FaithfulnessMetric,       # 忠实度
    ContextualPrecisionMetric # 上下文精确度
)

# 创建指标
metric = AnswerRelevancyMetric(
    threshold=0.7,           # 通过阈值
    model="gpt-4o-mini",     # 评估模型
    include_reason=True      # 包含评分理由
)

3. 运行评估

from deepeval import evaluate

results = evaluate(
    test_cases=[test_case1, test_case2],
    metrics=[metric1, metric2]
)

完整示例:智能客服评估

场景

评估一个电商客服助手的回答质量。

步骤 1:定义应用

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

# 定义客服助手
llm = ChatOpenAI(model="gpt-3.5-turbo")

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是电商客服,专业友好地回答问题。"),
    ("user", "{question}")
])

chain = prompt | llm

def customer_service(question: str) -> str:
    response = chain.invoke({"question": question})
    return response.content

步骤 2:准备测试数据

test_data = [
    {
        "input": "我的订单什么时候能到?",
        "context": ["订单号:12345", "发货时间:2024-01-15"]
    },
    {
        "input": "这个商品支持退货吗?",
        "context": ["退货政策:7天无理由退货"]
    },
    {
        "input": "有什么优惠活动吗?",
        "context": ["当前活动:满100减20"]
    }
]

步骤 3:创建测试用例

from deepeval.test_case import LLMTestCase

test_cases = []

for data in test_data:
    # 运行应用获取回答
    answer = customer_service(data["input"])
    
    # 创建测试用例
    test_case = LLMTestCase(
        input=data["input"],
        actual_output=answer,
        retrieval_context=data["context"]
    )
    test_cases.append(test_case)

步骤 4:配置评估指标

from deepeval.metrics import (
    AnswerRelevancyMetric,
    HallucinationMetric
)

metrics = [
    # 答案相关性
    AnswerRelevancyMetric(
        threshold=0.7,
        model="gpt-4o-mini"
    ),
    
    # 幻觉检测
    HallucinationMetric(
        threshold=0.5,
        model="gpt-4o-mini"
    )
]

步骤 5:运行评估

from deepeval import evaluate

results = evaluate(
    test_cases=test_cases,
    metrics=metrics,
    print_results=True
)

自定义评估指标

使用 GEval 创建自定义评估:

from deepeval.metrics import GEval
from deepeval.test_case import LLMTestCaseParams

custom_metric = GEval(
    name="服务态度",
    criteria="评估客服回答是否专业、友好、有同理心",
    evaluation_params=[
        LLMTestCaseParams.INPUT,
        LLMTestCaseParams.ACTUAL_OUTPUT
    ],
    evaluation_steps=[
        "检查是否使用礼貌用语",
        "评估语气是否友好",
        "判断是否有同理心"
    ],
    threshold=0.6,
    model="gpt-4o-mini"
)

Pytest 集成

DeepEval 可以与 pytest 集成,实现自动化测试:

from deepeval import assert_test
from deepeval.test_case import LLMTestCase
from deepeval.metrics import AnswerRelevancyMetric

def test_customer_service():
    # 创建测试用例
    test_case = LLMTestCase(
        input="订单什么时候到?",
        actual_output="您的订单预计明天送达",
        retrieval_context=["订单号:12345"]
    )
    
    # 定义指标
    metric = AnswerRelevancyMetric(threshold=0.7, model="gpt-4o-mini")
    
    # 断言测试通过
    assert_test(test_case, [metric])

运行测试:

pytest test_customer_service.py

常用评估指标

指标 用途 适用场景
AnswerRelevancyMetric 答案相关性 评估回答是否切题
HallucinationMetric 幻觉检测 检测是否编造信息
FaithfulnessMetric 忠实度 评估是否基于上下文
ContextualPrecisionMetric 上下文精确度 评估检索质量
BiasMetric 偏见检测 检测偏见内容
ToxicityMetric 毒性检测 检测有害内容

查看结果

方式 1:终端输出

results = evaluate(
    test_cases=test_cases,
    metrics=metrics,
    print_results=True  # 打印结果
)

方式 2:Web 界面

# 运行评估后,查看 Web 界面
deepeval test run your_test_file.py

访问 http://localhost:19820 查看详细报告。


最佳实践

1. 设置合理阈值

# 根据场景调整阈值
metric = AnswerRelevancyMetric(
    threshold=0.7,  # 严格场景:0.8+
                    # 一般场景:0.6-0.7
                    # 宽松场景:0.5
    model="gpt-4o-mini"
)

2. 组合多个指标

metrics = [
    AnswerRelevancyMetric(threshold=0.7, model="gpt-4o-mini"),
    HallucinationMetric(threshold=0.5, model="gpt-4o-mini"),
    FaithfulnessMetric(threshold=0.6, model="gpt-4o-mini")
]

3. 准备高质量测试数据

# ✅ 好的测试数据
{
    "input": "订单延迟了怎么办?",
    "context": ["订单政策:延迟赔偿10元", "客服流程:先道歉再解决方案"]
}

# ❌ 差的测试数据
{
    "input": "你好",
    "context": []
}

总结

DeepEval 的优势

维度 说明
易用性 几行代码即可开始评估
开源免费 无使用限制
丰富指标 内置多种评估指标
可扩展 支持自定义评估
CI/CD 集成 支持 pytest

适用场景

  • ✅ LLM 应用上线前测试
  • ✅ 提示词优化后验证
  • ✅ 模型对比评估
  • ✅ 持续质量监控

开始使用 DeepEval,让你的 LLM 应用质量可控!🚀