使用 Langfuse 构建 LLM 可观测性平台,监控与优化 AI 应用

解决 LLM 应用在生产环境中的“黑盒”问题:通过集成 Langfuse,实现对 AI 调用链路的实时追踪、提示词版本控制以及量化的质量评估,将 AI 开发从“凭感觉调优”转向“数据驱动优化”。

为什么需要这个技能

传统的软件监控关注 CPU 和内存,但 LLM 应用的稳定性取决于成本、延迟和生成质量。当用户反馈 AI 回答错误时,如果没有详细的 Trace(追踪),开发者很难知道是检索阶段(RAG)拿错了文档,还是提示词(Prompt)引导有误,亦或是模型本身幻觉。

Langfuse 提供了一套完整的可观测性方案,能够记录每一次 API 调用、管理不同版本的 Prompt,并允许通过“LLM-as-a-judge”等机制对输出结果进行自动化打分,从而快速定位问题并迭代优化。

适用场景

  • 调试复杂链路:在多步推理或 Agent 工作流中,追踪每个步骤的输入输出和耗时。
  • 提示词 A/B 测试:在不重启服务的情况下,通过 Langfuse UI 动态更新 Prompt 并对比效果。
  • 成本与性能审计:精确统计每个用户、每个会话消耗的 Token 数量及响应延迟。
  • 建立评测集:将真实请求转化为数据集,通过自动化评分衡量模型升级前后的质量变化。

核心工作流

1. 基础链路追踪(Tracing)

通过集成 SDK,将 LLM 调用包装在 Trace 中。对于 OpenAI 用户,可以使用 langfuse.openai 替代原生库,实现零代码入侵的自动追踪。

from langfuse.openai import openai

# 所有的调用将自动记录到 Langfuse 后台
response = openai.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "你好"}],
    name="greeting-trace", # 自定义追踪名称
    user_id="user-123"
)

2. 提示词版本管理(Prompt Management)

将 Prompt 从代码中解耦,存储在 Langfuse 云端。通过标签(如 productionstaging)控制版本发布。

from langfuse import Langfuse

langfuse = Langfuse()
# 获取生产环境下最新的提示词版本
prompt = langfuse.get_prompt("customer-support-v3", label="production")
compiled_prompt = prompt.compile(customer_name="张三")

3. 质量评估与打分(Evaluation)

在 Trace 结束后,通过 API 为该次请求打分(Score),用于分析模型表现。

# 为当前追踪记录打分
trace.score(
    name="relevance", 
    value=0.9, 
    comment="回答高度相关"
)

4. 装饰器快速集成

对于基于函数的应用,使用 @observe() 装饰器可自动构建父子层级的 Span 结构。

from langfuse.decorators import observe

@observe()
def main_flow(user_input: str):
    context = get_context(user_input) # 自动成为子 Span
    return generate_response(context)

@observe()
def get_context(text: str):
    # 记录 RAG 检索过程
    return "retrieved_docs..."

下载和安装

下载 langfuse 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐