Langfuse攻略:开源 LLM 观测平台。
Langfuse 是一款来自德国的开源 LLM 观测平台,专注于帮助开发者追踪、调试和优化大语言模型应用。它本质上是一个“监控+调试”工具箱,让你能看到模型在真实场景中的每一次调用、输入输出、延迟、成本以及异常行为。
核心能力:
适合谁:
不适合谁:
目标:用 Docker 自托管 Langfuse,并完成一次最简单的 LLM 调用追踪。
git clone https://github.com/langfuse/langfuse.gitdocker compose up -d。等待镜像拉取完成(约 2-3 分钟)。http://localhost:3000,注册第一个管理员账号。pip install langfuse。在代码中初始化:from langfuse import Langfuse
langfuse = Langfuse(public_key="你的公钥", secret_key="你的私钥", host="http://localhost:3000")
trace 和 generation 中:trace = langfuse.trace(name="my-first-trace")
generation = trace.generation(name="openai-call", model="gpt-3.5-turbo")
# 你的实际 LLM 调用代码
generation.end(output="Hello, world!")
trace.end()
第 1 天小结:你已经拥有一个自托管的观测平台,并成功记录了第一条追踪。此时可探索 UI 中的“Scores”和“Cost”模块,了解基本数据。
目标:将 Langfuse 嵌入真实项目,实现自动评估和错误告警。
集成 LangChain:Langfuse 提供 LangChain 回调处理器,只需一行代码:
from langfuse.callback import CallbackHandler
handler = CallbackHandler(public_key="...", secret_key="...", host="http://localhost:3000")
# 在 LangChain 的 Agent 或 Chain 中传入 callbacks=[handler]
之后每次 Chain 调用都会自动记录完整链路,包括工具调用、中间步骤。
设置自动评估:在 UI 的“Evaluation”中创建“Auto Evaluation”,选择“LLM as Judge”模板。配置一个 GPT-4 模型来打分(比如评估回答的“有帮助性”)。系统会自动对历史追踪进行评分。
配置错误监控:在“Alerts”中设置规则,例如“当错误率超过 5% 时发送邮件通知”。Langfuse 会检测 HTTP 状态码或异常。
创建测试数据集:将生产环境中的真实用户请求(如常见问题)导出为数据集。在“Datasets”中创建,然后批量重放,对比不同 Prompt 或模型版本的效果。
第 1 周小结:你已能监控生产环境的 LLM 调用,并自动评估质量。此时可尝试修改 Prompt 后重放数据集,观察评分变化。
目标:编写自定义评估函数、优化存储、集成 CI/CD。
自定义评估:Langfuse 支持 Python 脚本作为评估器。创建一个函数,接收 trace 数据,返回分数:
def my_evaluator(trace):
if "错误" in trace.output:
return 0
return 1
在 UI 中注册该评估器,即可对实时追踪打分。
数据保留策略:默认存储所有数据,长期运行会占用磁盘。在 docker-compose.yml 中配置环境变量 LANGFUSE_DATA_RETENTION_DAYS=30,自动清理超过 30 天的追踪。
集成 CI/CD:在代码仓库中增加测试步骤,使用 Langfuse 的 Python SDK 在 CI 中运行测试集,对比新版本 Prompt 的评估分数是否下降。若下降则阻断合并。
多环境隔离:用不同项目区分开发、测试、生产环境。每个环境使用独立的 API Key,避免数据混淆。
Langfuse 本身完全免费(MIT 协议),无任何功能限制或收费计划。你需要承担的成本仅为服务器费用:
注意:如果调用外部 LLM(如 OpenAI),API 费用需单独计算,Langfuse 不涉及这部分。
如果 Langfuse 不适合你的场景,可以考虑以下替代方案:
最终建议:如果你的团队有 1-2 名开发者,且愿意花半天时间部署和集成,Langfuse 是目前性价比最高的自托管观测方案。如果完全不想碰代码,建议直接使用商业 SaaS 产品。