使用 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 云端。通过标签(如 production 或 staging)控制版本发布。
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..."
下载和安装
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐