Langfuse-开源AI观测分析平台,结合dify工作流
Langfuse-开源AI观测分析平台结合dify工作流引言为什么需要AI观测分析平台在AI应用开发中尤其是基于大语言模型LLM构建的智能工作流开发者常常面临“黑箱”问题模型输出了什么为什么会这样输出调用成本是多少如何调试异常Langfuse 是一款开源的可观测性平台专门为LLM应用设计。它提供追踪、日志、监控和调试功能帮助开发者理解AI模型的运行行为。而 Dify 则是一个低代码AI工作流平台允许用户通过拖拽方式构建复杂的AI应用。将两者结合可以显著提升AI应用的透明度和可维护性。本文将循序渐进地讲解Langfuse的核心概念并通过代码示例展示如何与Dify工作流集成。## 基础概念Langfuse的核心组件Langfuse 的核心思想是“追踪Tracing”它记录LLM调用的完整生命周期。主要概念包括-Trace追踪代表一次完整的请求链路例如一次用户对话或一个工作流执行。-Span跨度Trace中的子任务比如一次LLM调用、一个数据库查询或一个函数执行。-Observation观测Span内部的具体数据如输入输出、延迟、Token用量、成本等。-Session会话多个Trace的集合用于分析用户交互模式。Langfuse 支持通过SDKPython/JavaScript手动埋点或通过OpenTelemetry协议自动收集数据。## 环境搭建安装与初始化首先我们需要安装Langfuse的Python客户端。推荐使用虚拟环境隔离项目依赖。bashpip install langfuse然后获取Langfuse的项目密钥Project Key和秘密密钥Secret Key。在Langfuse控制台创建一个新项目后会生成这些凭据。初始化客户端python# 1_init_langfuse.pyfrom langfuse import Langfuse# 初始化Langfuse客户端langfuse Langfuse( secret_keyyour-secret-key, # 替换为实际密钥 public_keyyour-public-key, hosthttps://cloud.langfuse.com # 或自托管地址)# 测试连接print(Langfuse 初始化成功)## 中级用法手动追踪LLM调用现在我们模拟一个简单的LLM调用并记录追踪信息。假设我们使用OpenAI的GPT模型。python# 2_track_llm_call.pyimport openaifrom langfuse.decorators import observe, langfuse_context# 设置OpenAI API密钥openai.api_key your-openai-api-keyobserve() # 自动追踪函数执行def ask_gpt(prompt: str) - str: 调用GPT模型并返回响应 response openai.ChatCompletion.create( modelgpt-3.5-turbo, messages[ {role: user, content: prompt} ] ) # 记录关键指标 langfuse_context.update_current_observation( inputprompt, outputresponse.choices[0].message.content, usage{prompt_tokens: response.usage.prompt_tokens, completion_tokens: response.usage.completion_tokens} ) return response.choices[0].message.content# 执行追踪result ask_gpt(用一句话解释什么是Langfuse)print(f模型回答{result})代码解析-observe()装饰器会自动创建一个Span记录函数的执行时间、输入输出。-langfuse_context.update_current_observation()手动补充Token用量和成本数据。- 运行后前往Langfuse控制台即可看到完整的追踪记录。## 高级应用与Dify工作流集成Dify工作流通常包含多个节点如LLM调用、知识库检索、条件判断等。我们可以通过Langfuse的API将整个工作流的执行过程记录为一个Trace。假设我们有一个Dify工作流用于回答用户关于产品文档的问题。工作流包含以下步骤1. 接收用户问题2. 调用知识库检索相关文档片段3. 将片段作为上下文调用LLM生成答案我们可以在每个步骤中手动创建Span并关联到同一个Trace。python# 3_integrate_with_dify.pyfrom langfuse import Langfuseimport uuidlangfuse Langfuse(secret_key..., public_key..., host...)def dify_workflow(user_question: str) - str: 模拟Dify工作流并记录追踪 # 创建一个新的Trace代表整个工作流 trace langfuse.trace( namedify_workflow, idstr(uuid.uuid4()), metadata{user_question: user_question} ) # 步骤1知识库检索模拟 with trace.span(nameknowledge_search) as span1: # 模拟检索耗时 import time time.sleep(0.5) # 假设检索到相关片段 context Langfuse是一个开源的可观测性平台... span1.update(inputuser_question, outputcontext) span1.end() # 步骤2LLM调用模拟 with trace.span(namellm_call) as span2: # 模拟调用GPT prompt f根据上下文回答{context}\n问题{user_question} response Langfuse可以帮助你追踪AI模型的调用... span2.update(inputprompt, outputresponse, levelDEFAULT, metadata{model: gpt-3.5-turbo}) span2.end() # 步骤3后处理模拟 with trace.span(namepost_process) as span3: final_answer f答案{response} span3.update(inputresponse, outputfinal_answer) span3.end() # 结束Trace trace.update(outputfinal_answer) return final_answer# 测试工作流result dify_workflow(Langfuse有什么功能)print(result)关键点- 使用trace.span()创建子任务自动管理开始/结束时间。-trace.update()可以设置整个追踪的最终输出。- 所有Span都会关联到同一个Trace ID便于在Langfuse平台上查看完整工作流。## 进阶技巧自动批量上报在实际生产环境中频繁网络请求可能影响性能。Langfuse支持批量上报将多个观测数据打包后一次性发送。python# 4_batch_report.pyfrom langfuse import Langfuselangfuse Langfuse( secret_key..., public_key..., host..., # 启用批量模式 flush_at20, # 积累20条观测后自动发送 flush_interval10 # 或每10秒检查一次)# 连续记录多个追踪for i in range(30): trace langfuse.trace(namefbatch_trace_{i}) trace.update(outputfresult_{i}) trace.end()# 强制刷新缓存langfuse.flush()print(批量上报完成)配置说明-flush_at缓存中观测数达到此值时触发上报。-flush_interval定时检查缓存避免长时间不触发。- 合理配置可减少API调用次数提升系统吞吐量。## 总结Langfuse 作为开源AI观测分析平台为LLM应用提供了强大的可观测性能力。通过本文的渐进式学习你已掌握1.基础概念Trace、Span、Observation的核心定义。2.环境搭建如何初始化Langfuse客户端。3.手动追踪使用装饰器或上下文管理器记录LLM调用。4.工作流集成将Dify工作流的每个步骤映射为Span形成完整追踪链。5.性能优化批量上报减少网络开销。将Langfuse与Dify结合你不仅能看到工作流的执行结果还能深入分析每个节点的性能、成本和异常从而优化AI应用的准确性和效率。建议在实际项目中持续集成Langfuse让AI从“黑箱”变为“透明”。

相关新闻

光传输网络AI故障根因分析(华为/中兴/诺基亚实测对比):传统告警压缩率提升至1:127的关键突破

光传输网络AI故障根因分析(华为/中兴/诺基亚实测对比):传统告警压缩率提升至1:127的关键突破

更多请点击: https://intelliparadigm.com 第一章:光传输网络AI故障根因分析(华为/中兴/诺基亚实测对比):传统告警压缩率提升至1:127的关键突破 光传输网络(OTN)在超大规模骨干网中面临海量告警…

2026/7/31 15:15:01 阅读更多 →
3个技巧解决无损音频存储难题:FLAC实战指南

3个技巧解决无损音频存储难题:FLAC实战指南

3个技巧解决无损音频存储难题:FLAC实战指南 【免费下载链接】flac Free Lossless Audio Codec 项目地址: https://gitcode.com/gh_mirrors/fl/flac 你是否曾为音乐收藏占用大量硬盘空间而烦恼?或者担心音频转码会损失音质?这正是许多音…

2026/7/31 15:15:01 阅读更多 →
C# WinForms FlowLayoutPanel 控件深度解析:从原理到高级应用实战

C# WinForms FlowLayoutPanel 控件深度解析:从原理到高级应用实战

1. 项目概述:为什么你需要深入了解FlowLayoutPanel? 如果你在C# WinForms开发中,曾经为了一堆按钮、文本框或者自定义控件的动态排列而头疼,手动计算位置、处理滚动条、响应窗口大小变化,那么 FlowLayoutPanel 这个控…

2026/7/31 15:15:01 阅读更多 →

最新新闻

终极go2rtc流媒体服务器:从零开始的完整安装配置指南

终极go2rtc流媒体服务器:从零开始的完整安装配置指南

终极go2rtc流媒体服务器:从零开始的完整安装配置指南 【免费下载链接】go2rtc Ultimate camera streaming application 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc go2rtc是一款功能强大的开源流媒体服务器,专为摄像头和视频流处理…

2026/7/31 17:43:01 阅读更多 →
Scrcpy-iOS终极指南:如何在iPhone上远程控制Android设备

Scrcpy-iOS终极指南:如何在iPhone上远程控制Android设备

Scrcpy-iOS终极指南:如何在iPhone上远程控制Android设备 【免费下载链接】scrcpy-ios Scrcpy-iOS.app is a remote control tool for Android Phones based on [https://github.com/Genymobile/scrcpy]. 项目地址: https://gitcode.com/gh_mirrors/sc/scrcpy-ios …

2026/7/31 17:43:01 阅读更多 →
MySQL让自增的ID重新变得连续

MySQL让自增的ID重新变得连续

MySQL让自增的ID重新变得连续 MYSQL在创建一个带有自增主键ID的表时,通常在删除一条中间某一条或者多条数据时,导致中间自增主键不连续了。使用下面的SQL脚本可以重置主键。 作为自己的笔记,方便以后自己查找 -- 1. 初始化用户变量 SET new_i…

2026/7/31 17:43:01 阅读更多 →
OpenClaw便携式2026,笔记本与U盘双模式使用

OpenClaw便携式2026,笔记本与U盘双模式使用

笔记本模式:随身携带的完整系统以前出差或者去客户现场,最怕的就是电脑出问题——要么系统卡顿,要么软件不兼容,有时候甚至得背着沉重的笔记本满城跑。后来接触到OpenClaw便携式2026,才发现原来“便携”可以做到这种程…

2026/7/31 17:43:01 阅读更多 →
解密高效Java字节码分析:CFR反编译工具专业指南

解密高效Java字节码分析:CFR反编译工具专业指南

解密高效Java字节码分析:CFR反编译工具专业指南 【免费下载链接】cfr This is the public repository for the CFR Java decompiler 项目地址: https://gitcode.com/gh_mirrors/cf/cfr 在Java开发与逆向工程领域,面对编译后的class文件&#xff0…

2026/7/31 17:43:01 阅读更多 →
海面溢油 漏油事件目标检测数据集 深度学习框架YOLO模型如何训练石油泄漏检测数据集

海面溢油 漏油事件目标检测数据集 深度学习框架YOLO模型如何训练石油泄漏检测数据集

海面溢油 漏油事件目标检测数据集 深度学习框架YOLO模型如何训练石油泄漏检测数据集 海面溢油 漏油事件目标检测数据集数据集信息汇总表项目参数详情数据集名称海面溢油(漏油事件)数据集任务类型目标检测 Object Detection图片总量311张数据集版本1版目…

2026/7/31 17:42:01 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻