Skip to content

阶段 5:Langfuse 平台能力

预计学习时间:1 天
Tracing 只是起点;Langfuse 的真正价值在于「追踪 → 分析 → 迭代」闭环。


目录

  1. 能力全景图
  2. Prompt 管理
  3. Evaluation 评测
  4. Datasets 与实验
  5. Dashboard 与分析
  6. 生活类比:开餐厅的全流程
  7. 学习检查

1. 能力全景图

         ┌──────────────────────────────────────────┐
         │           Langfuse 平台                   │
         └──────────────────────────────────────────┘
    ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐
    │ Tracing │→ │ Prompt  │→ │  Eval   │→ │Dashboard│
    │ 发现问题 │  │ 迭代优化 │  │ 量化效果 │  │ 持续监控 │
    └─────────┘  └─────────┘  └─────────┘  └─────────┘
能力解决什么问题生活类比
TracingAI 某次回答为什么错了调监控录像
Prompt MgmtPrompt 改了不知道哪个版本在线菜谱版本管理
Evaluation改好了还是不好,缺少客观分数顾客试吃打分
Datasets没法批量回归测试标准考题库
Dashboard成本/延迟/错误率趋势经营日报

2. Prompt 管理

2.1 为什么需要

生产环境里 Prompt 经常改:

v1: "你是一个客服助手..."
v2: "你是一个专业客服,回答要简洁..."
v3: "你是一个专业客服,回答要简洁,引用知识库原文..."

如果没有版本管理,出了问题你根本不知道线上跑的是哪个版本。

2.2 核心概念

概念说明
Prompt Name唯一标识,如 customer-service-system
Version自动递增的版本号
Label标签,如 productionstaging
Config关联的模型参数

2.3 基本用法(Python SDK)

python
from langfuse import Langfuse

lf = Langfuse()

# 创建 Prompt 版本
lf.create_prompt(
    name="weather-bot-system",
    prompt="你是一个天气助手。根据提供的天气数据回答用户。",
    labels=["production"],
    config={"model": "gpt-4o", "temperature": 0.3},
)

# 获取线上 Prompt
prompt = lf.get_prompt("weather-bot-system", label="production")
compiled = prompt.compile(city="北京", temp=25)

2.4 生活类比

餐厅菜谱本:

  • Name = 菜名「宫保鸡丁」
  • Version = 第 3 版(少盐)
  • Label = 「今日特供」还是「备用菜谱」
  • 换错菜谱 = 线上 Prompt 回滚事故

3. Evaluation 评测

3.1 为什么需要

Tracing 告诉你「发生了什么」;Evaluation 告诉你「做得好不好」。

3.2 评分方式

方式说明适用
人工打分在 UI 里给 Trace 打 1-5 分早期、高质量样本
Numeric Score数值分,如 0.85自动化流水线
Boolean Score通过/不通过回归测试
Categorical多类别标签分类质量
LLM-as-Judge用另一个 LLM 打分大规模自动评测

3.3 SDK 打分示例

python
trace = lf.trace(name="qa-bot", id="trace-uuid-from-server")

# 方式 1:对 trace 打分
trace.score(
    name="user-satisfaction",
    value=4,
    comment="回答准确但略啰嗦",
)

# 方式 2:对某个 observation 打分
generation.score(
    name="faithfulness",
    value=0.9,
    data_type="NUMERIC",
)

3.4 生活类比

外卖平台「骑手送达后请你打分」——Langfuse 的 Score 就是这张评分卡,可以挂在整单(Trace)或某道菜(Observation)上。


4. Datasets 与实验

4.1 Dataset

Dataset = 一组标准测试用例:

json
[
  {"input": "北京天气", "expected_output": "应包含温度和天气状况"},
  {"input": "退款政策", "expected_output": "应引用官方政策原文"},
  {"input": "你好", "expected_output": "礼貌问候"}
]

4.2 Experiment

用 Dataset 批量跑你的应用,对比:

  • 模型 A vs 模型 B
  • Prompt v1 vs v2
  • 不同 temperature
Experiment: "prompt-v2-vs-v3"
  Dataset: 50 条客服问题
  Run A: gpt-4o + prompt v2 → 平均分 4.1
  Run B: gpt-4o + prompt v3 → 平均分 4.6  ← 胜出

4.3 生活类比

Dataset = 高考题库
Experiment = 两次模拟考,对比哪套复习方案更有效


5. Dashboard 与分析

Langfuse 内置 Dashboard,常见分析维度:

维度用途
Latency P50/P95找到慢请求
Token 用量成本控制
Cost by Model哪个模型最贵
Error Rate失败率趋势
Scores 分布质量趋势
User / Session按用户聚合

典型排查路径

Dashboard 发现 P95 延迟从 2s 升到 8s

Traces 过滤 tags=prod, latency>5s

点开最慢的 Trace,看哪个 Observation 耗时最长

发现 retriever 步骤从 100ms 变成 5s → 向量库问题

6. 生活类比:开餐厅的全流程

把 Langfuse 平台能力串成一条故事线:

  1. 开业(接入 Tracing):每个订单都有后厨录像
  2. 菜谱迭代(Prompt Mgmt):宫保鸡丁从 v1 改到 v3
  3. 试吃评分(Evaluation):请美食博主打分
  4. 批量盲测(Datasets):50 位顾客试吃新旧两版
  5. 看经营日报(Dashboard):发现周末晚高峰出餐慢

这就是 LLM 应用从「能跑」到「跑得好」的工程化路径。


7. 学习检查

  • [ ] 能解释 Prompt 版本和 Label 的作用
  • [ ] 知道至少两种 Evaluation 打分方式
  • [ ] 理解 Dataset + Experiment 的回归测试价值
  • [ ] 能描述从 Dashboard 发现异常到定位 Trace 的排查路径

下一章6_integration_cases.md