Langfuse 的使用

如何监控 AI 系统的运行状况?

使用 Langfuse 作为 AI 可观测性平台,实现了全链路追踪和性能监控。

核心能力:

  1. 全链路追踪(Trace):记录从用户请求到 AI 响应的完整流程,包括多个 Agent、LLM 调用、检索等环节
  2. Token 成本分析:自动统计每次 LLM 调用的 Token 消耗和费用,为模型选型提供量化依据
  3. 性能监控:分析每个环节的耗时,定位性能瓶颈
  4. Prompt 管理:查看实际渲染的 Prompt,便于调试和优化

实现方式:

  • 使用 @observe 装饰器自动创建 Trace
  • 通过 langfuse_context.update_current_trace() 添加业务元数据

实际效果:

  • 问题定位效率:从数小时降至数分钟(通过 Session ID 直接定位)
  • 成本优化:通过 Token 分析,优化 Prompt 和模型选型,成本降低 40%
  • 性能优化:通过耗时分析,识别瓶颈,论文生成时间从 45 分钟降至 12 分钟"

如何统计 LLM 的 Token 消耗?

采用 Langfuse + 自研 Token 计算的方式,实现精准的 Token 统计。

Langfuse 自动统计:

  • 每次 LLM 调用,Langfuse 会自动记录 Input Tokens、Output Tokens、Total Tokens 和 Cost
  • 支持按 Session、Tag、Model 等维度统计

自研 Token 计算:

  • 为了在调用 LLM 前预估 Token,我们实现了 calculate_token_count() 函数
  • 支持 GPT、Qwen、DeepSeek 等多种 Tokenizer
  • 用于动态截断对话历史,控制 Token 在限制内

实际应用:

  1. 模型对比:通过 Langfuse 对比 DeepSeek、Qwen、GPT-4 的 Token 消耗和成本,选择最优模型
  2. Prompt 优化:通过 Token 分析,发现某个 Prompt 过长,优化后 Token 降低 44%,成本节省 45%
  3. 异常监控:通过 Langfuse 筛选 Token > 30,000 的任务

如何定位和解决 AI 系统的性能瓶颈?

通过 Langfuse 的 Span 耗时分析,精准定位性能瓶颈,数据驱动优化。

分析流程:

  1. 查看 Trace:在 Langfuse 中找到慢任务的 Trace
  2. 分析 Span 耗时:查看各 Span 的耗时占比
  3. 定位瓶颈:找到耗时最长的 Span
  4. 优化并验证:修复后,在 Langfuse 中对比优化前后的耗时

案例 1:检索过慢

  • 问题:检索耗时 42.1s,占总耗时的 93%
  • 根因:未设置 size 参数,默认返回所有结果(5 万条)
  • 修复:添加 size=10 限制
  • 效果:检索耗时从 42.1s 降至 1.2s,总耗时从 45.3s 降至 4.4s

案例 2:LLM 调用过慢

  • 问题:LLM 调用耗时 30.5s,Input Tokens = 28,456
  • 根因:Prompt 中包含了整个论文库的摘要
  • 修复:只使用前 10 条的摘要
  • 效果:LLM 耗时从 30.5s 降至 10.2s,Token 降低 72%

案例 3:并行化优化

  • 问题:三个 Agent 串行执行,总耗时 45.3s
  • 优化:改为并行执行
  • 效果:总耗时从 45.3s 降至 18.7s,降低 59%

量化成果:

  • 论文生成时间从 45 分钟降至 12 分钟(降低 73%)
  • 系统吞吐量提升 200%"

如何优化 Prompt,提升 AI 生成质量?

通过 Langfuse + A/B 测试,持续优化 Prompt,提升生成质量。

优化流程:

  1. 查看当前 Prompt:在 Langfuse 中查看实际渲染的 Prompt,发现问题
  2. 设计优化方案:修改 Prompt,添加明确的要求、Few-shot 示例等
  3. A/B 测试:为新旧 Prompt 创建不同的 Session,运行各 100 次任务
  4. 对比效果:在 Langfuse 中对比成功率、Token 消耗、生成质量
  5. 采用优化方案:如果效果提升,采用新 Prompt

案例 1:明确要求

  • 问题:生成的摘要过短(平均 150 字)
  • 优化:在 Prompt 中明确要求字数(300-500 字)
  • 效果:平均字数从 150 字提升至 380 字,质量评分从 7.2 提升至 8.6

案例 2:Few-shot 示例

  • 问题:生成的大纲层级过少(1-2 层)
  • 优化:使用专业领域的真实案例作为 Few-shot 示例
  • 效果:大纲层级从 1-2 层提升至 2-3 层,专业性评分从 6.8 提升至 8.4

案例 3:参数调优

  • 问题:生成内容过于死板
  • 优化:将 temperature 从 0.2 提升至 0.5

量化成果:

  • 通过 A/B 测试迭代优化,内容专业性评分从 7.2 提升至 8.6(提升 19%)
  • 管理 159 个 Prompt 模板,支持 50+ 专业领域的定制化生成"
posted @ 2026-02-02 13:28  寻找梦想的大熊  阅读(13)  评论(0)    收藏  举报