当前位置: 首页 > article >正文

LangFuse:开源LLM工程平台的革新实践

文章目录

  • 一 架构设计与技术栈
  • 二 增强型监控能力
  • 三 提示词工程支持(新增)
  • 四 性能优化实践
  • 五 LangFuse部署(docker)和代码集成
    • 5.1 LangFuse平台部署
    • 5.2 LangFuse代码集成和检测体验

一 架构设计与技术栈

LangFuse采用模块化架构设计,核心组件包括:

  1. 追踪数据采集层:支持Python/Node.js等多语言SDK,可无缝接入主流框架(LlamaIndex、LangChain)
  2. 分析引擎:基于PostgreSQL实现毫秒级trace查询,支持RBAC权限管理体系
  3. 可视化界面:内置动态仪表盘,支持自定义数据聚合维度(时间窗口/成本类型/异常类型)

二 增强型监控能力

  1. 实时告警系统:支持设置阈值触发告警(如响应时间>5s、错误率>2%);提供API异常类型聚类分析,自动识别高频错误模式
  2. 深度日志分析:原生集成OpenTelemetry协议,兼容Prometheus/Grafana监控栈;支持日志与trace的上下文关联检索,实现端到端问题溯源

三 提示词工程支持(新增)

  1. 版本控制体系:提供prompt变更历史对比视图,支持语义差异分析;可关联测试数据集,验证不同prompt版本的效果差异
  2. AB测试框架:支持并行运行多个prompt模板,自动生成准确性/响应速度对比报告;内置统计学显著性检验,避免随机性导致的误判

四 性能优化实践

  1. 数据压缩策略
    • 采用列式存储压缩trace日志,存储成本降低72%
    • 支持按时间分区自动归档历史数据
  2. 缓存机制
    • 高频查询结果缓存(TTL可配置),降低数据库负载
    • 向量检索结果缓存复用,减少重复计算

五 LangFuse部署(docker)和代码集成

5.1 LangFuse平台部署

  1. 硬件需要至少需要4GB的运行空间,最好是x86平台的机器。需要安装好docker工具,配置好国内源镜像。
  2. 访问https://github.com/langfuse/langfuse,可以选择下载整个项目或单个docker-compose.yml
  3. 然后将其上传到服务器目录,如/opt/1panel/apps/langfuse,在终端执行如下命令:
    cd /opt/1panel/apps/langfuse
    
    docker-compose up -d
    
  4. 访问ip:3000,创建账号并登录,创建新的项目,和API Keys。
    在这里插入图片描述
  5. 点击创建API key,执行结果如下:
    在这里插入图片描述
  6. 使用pip安装langfuse工具包,选择对应的语言或开发框架,复制链接信息
    在这里插入图片描述

5.2 LangFuse代码集成和检测体验

import os
from langchain_openai import ChatOpenAI
from langfuse.callback import CallbackHandler
from langchain.chains import LLMChain  # 导入链模块
from langchain_core.prompts import ChatPromptTemplate  # 导入提示模板# 配置 API 易环境
os.environ["OPENAI_API_KEY"] = "hk-xxx"  # 从API易后台获取
os.environ["OPENAI_API_BASE"] = "https://api.openai-hk.com/v1"  # API易基础URL# 配置Langfuse
langfuse_handler = CallbackHandler(public_key="pk-lf-xxx",secret_key="sk-lf-xx",host="http://xxx:3000"
)# 创建一个大语言模型
model = ChatOpenAI(model="gpt-3.5-turbo")# 定义提示模板
prompt = ChatPromptTemplate.from_messages([("system", "{system_message}"),("user", "{user_input}")
])# 创建链
chain = LLMChain(llm=model, prompt=prompt)# 定义传递给模型的消息内容
system_message = "把下面的语句翻译为英文。"
user_input = "无人扶我青云志,我只踏雪至山巅"# 调用链并打印结果
response = chain.invoke({"system_message": system_message, "user_input": user_input},config={"callbacks": [langfuse_handler]}
)print(response.get("text"))  # 输出模型生成的内容
  • 执行结果:
No one supports my ambition to reach the sky; I will tread through the snow to the mountaintop on my own.
  • 可视化面板记录效果:
    在这里插入图片描述

  • 执行过程数据追踪
    在这里插入图片描述

相关文章:

LangFuse:开源LLM工程平台的革新实践

文章目录 一 架构设计与技术栈二 增强型监控能力三 提示词工程支持(新增)四 性能优化实践五 LangFuse部署(docker)和代码集成5.1 LangFuse平台部署5.2 LangFuse代码集成和检测体验 一 架构设计与技术栈 LangFuse采用模块化架构设…...

新视角!经济学顶刊QJE用文本分析探究新技术扩散

美国圣路易斯联邦储备银行Aakash Kalyani、美国斯坦福大学与国家经济研究局Nicholas Bloom、英国伦敦商学院Marcela Carvalho和其合作者们共同研究的“The Diffusion of New Technologies(新技术的扩散)”在顶刊The Quarterly Journal of Economics中发表…...

微信小程序返回上一页监听

本文实现的是微信小程序在返回上一页时获取通知并自定义业务。 最简单的实现: 使用 wx.enableAlertBeforeUnload() 优点:快速接入 缺点:手势不能识别、无法自定义弹窗内容(仅询问) 方法二: page-conta…...

5月31日day41打卡

简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率 卷积操作常见流程如下: 1. 输入 → 卷积层 → Batch…...

“粽”览全局:分布式系统架构与实践深度解析(端午特别版)

第一部分:引言——技术世界的“端午”第二部分:分布式系统概述——粽子节点初探第三部分:核心技术详解——技术“粽子”大解构 粽叶篇:通信协议糯米篇:一致性算法馅料篇:任务调度与计算包扎篇:系…...

STM32G4 电机外设篇(一) GPIO+UART

目录 一、STM32G4 电机外设篇(一) GPIOUART1 GPIO1.1 STM32CUBEMX 配置以及Keil代码1.2 代码和实验现象 2 UART2.1 STM32CUBEMX 配置以及Keil代码2.2 代码和实验现象 附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 电机外设篇&#xff0…...

代理IP在云计算中的应用:技术演进与场景实践

一、技术融合的必然性:代理IP与云计算的协同效应 在数字化转型的浪潮中,云计算已成为企业IT架构的核心底座,而代理IP技术则作为网络访问的关键基础设施,两者在技术演进路径上呈现出深度融合的趋势。云计算的弹性资源池与代理IP的…...

Lua 的速度为什么比 Python 快

Lua 的执行速度通常比 Python 快,主要原因在于其解释器设计轻量、虚拟机效率高、内存管理策略更为精简,以及语言本身对动态特性的控制较严。其中,Lua 使用了 register-based 的虚拟机架构,而 Python(CPython&#xff0…...

【iOS】方法交换

方法交换 method-swizzling是什么相关API方法交换的风险method-swizzling使用过程中的一次性问题在当前类中进行方法交换类方法的方法交换 方法交换的应用 method-swizzling是什么 method-swizzling的含义是方法交换,他的主要作用是在运行的时候将一个方法的实现替…...

跑步相关术语解释

老婆一直问我PB是啥意思,写个文章解释下。 1. 成绩类 PB (Personal Best):个人最好成绩,指在特定距离(如10K、全马)中的最快完赛时间 。PW (Personal Worst)&#xff1…...

数据结构:线性表的基本操作与链式表达

个人主页 文章专栏 成名之作——赛博算命之梅花易数的Java实现 陆续回三中,忘回漏回滴滴~感谢各位大佬的支持 一.线性表的定义和基本操作 1.1定义 线性表是具有相同数据类型的n个数据元素的有序数列,n为表长 第一个元素叫表头元素,除了他…...

C++:设计模式--工厂模式

更多内容:XiaoJ的知识星球 目录 1.简单工厂模式1.1 简单工厂1.2 实现步骤1.3 实现代码1.4 优缺点 2.工厂模式2.1 工厂模式2.2 实现步骤2.3 实现代码2.4 优缺点 3.抽象工厂模式3.1 抽象工厂模式3.2 实现步骤3.3 实现代码3.4 优缺点 1.简单工厂模式 . 1.1 简单工厂 …...

【前端优化】使用speed-measure-webpack-plugin分析前端运行、打包耗时,优化项目

记录下 项目安装speed-measure-webpack-plugin 打包分析: 修改vue.config.js文件 speed-measure-webpack-plugin进行构建速度分析,需要包裹整个 configureWebpack 配置 const originalConfig {publicPath: /,assetsDir: assets,parallel: true,devS…...

国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF

Excel 是常见的数据处理与呈现工具,但直接共享 Excel 文件可能面临格式错乱、兼容性不足或数据泄露的风险。为了保证文档在不同平台和终端上的稳定展示,开发者常常需要将 Excel 文件转换为 PDF 格式。 本文将详细介绍如何使用 C#和.NET Excel 库——Spi…...

B3623 枚举排列(递归实现排列型枚举)

B3623 枚举排列(递归实现排列型枚举) - 洛谷 题目描述 今有 n 名学生,要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行,两个正整数 n,k。 输出格式 若干行,每行 k 个正整数…...

vue-08(使用slot进行灵活的组件渲染)

使用slot进行灵活的组件渲染 作用域slot是 Vue.js 中的一种强大机制,它允许父组件自定义子组件内容的呈现。与仅向下传递数据的常规 props 不同,作用域 slot 为父级提供了一个模板,然后子级可以填充数据。这提供了高度的灵活性和可重用性&am…...

Fine Pruned Tiled Light Lists(精细删减的分块光照列表)

概括 在这篇文章, 我将介绍一种Tiled Light 变体,主要针对AMD Graphics Core Next(GCN)架构进行优化,我们的方法应用于游戏 古墓丽影:崛起 中,特别是我们在通过光列表生成和阴影贴图渲染之间交错进行异步计…...

2025-5-29-C++ 学习 字符串(3)

字符串 2025-5-29-C 学习 字符串(3)P3741 小果的键盘题目背景题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例 #2输入 #2输出 #2 输入输出样例 #3输入 #3输出 #3 输入输出样例 #4输入 #4输出 #4 输入输出样例 #5输入 #5输出 #5 说明…...

openresty+lua+redis把非正常访问的域名加入黑名单

一、验证lua geoIp2是否缺少依赖 1、执行命令 /usr/local/openresty/bin/opm get anjia0532/lua-resty-maxminddb 执行安装命令报错,缺少Digest/MD5依赖 2、Digest/MD5依赖 yum -y install perl-Digest-MD5 GeoIP2 lua库依赖动态库安装,lua库依赖libmaxminddb实…...

使用Mathematica绘制随机多项式的根

使用ListPlot和NSolve直接绘制: (*返回系数为r和s之间整数的n次随机多项式*) eq[n_, r_, s_] : RandomInteger[{r, s}, {n}] . Array[Power[x, # - 1] &, n] (*返回给定随机多项式的根所对应的笛卡尔坐标*) sol[n_, r_, s_] : {Re[#], Im[#]} & / (x /.…...

IEEE PRMVAI 2025 WS 26:计算机视觉前沿 Workshop 来袭!

宝子们,搞计算机视觉和深度学习的看过来啦!🎉 2025 年 IEEE 第三届模式识别、机器视觉和人工智能国际会议里,Workshop 26 简直是科研宝藏地! 这次 Workshop 聚焦 “Deep learning - based low - level models for comp…...

360浏览器设置主题

设置默认主题: 1.右上角有个皮肤按钮 进来后,右边有个回复默认皮肤按钮。 换成彩色皮肤后,找按钮不太好找了。...

最卸载器——Geek Uninstaller 使用指南

Geek Uninstaller 是一款轻量级的第三方卸载工具,专为 Windows 系统设计,提供比系统默认卸载器更彻底的应用清除能力。它体积小、绿色免安装,使用起来简单直观,但功能却不含糊。 一、为什么要用 Geek Uninstaller? Wi…...

leetcode216.组合总和III:回溯算法中多条件约束下的状态管理

一、题目深度解析与组合约束条件 题目描述 找出所有相加之和为n的k个数的组合,且满足以下条件: 每个数只能使用一次(范围为1到9)所有数字均为唯一的正整数组合中的数字按升序排列 例如,当k3,n9时&#…...

应急响应靶机-web3-知攻善防实验室

题目: 1.攻击者的两个IP地址 2.攻击者隐藏用户名称 3.三个攻击者留下的flag 密码:yj123456 解题: 1.攻击者的两个IP地址 一个可能是远程,D盾,404.php,192.168.75.129 找到远程连接相关的英文,1149代表远程连接成功…...

【基于SpringBoot的图书购买系统】Redis中的数据以分页的形式展示:从配置到前后端交互的完整实现

引言 在当今互联网应用开发中,高性能和高并发已经成为系统设计的核心考量因素。Redis作为一款高性能的内存数据库,以其快速的读写速度、丰富的数据结构和灵活的扩展性,成为解决系统缓存、高并发访问等场景的首选技术之一。在图书管理系统中&…...

Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程

Jupyter MCP 服务器是基于模型上下文协议(Model Context Protocol, MCP)的 Jupyter 环境扩展组件,它能够实现大型语言模型与实时编码会话的无缝集成。该服务器通过标准化的协议接口,使 AI 模型能够安全地访问和操作 Jupyter 的核心…...

PMO价值重构:从项目管理“交付机器”到“战略推手”

在数字化转型浪潮中,项目管理办公室(PMO)正经历着前所未有的角色蜕变。传统上,PMO往往被视为项目管理的“交付机器”,专注于项目的按时交付和资源分配。然而,随着企业对战略执行的重视,PMO正逐渐…...

如何成为一名优秀的产品经理

一、 夯实核心基础 深入理解智能驾驶技术栈: 感知: 摄像头、雷达(毫米波、激光雷达)、超声波传感器的工作原理、优缺点、融合策略。了解目标检测、跟踪、SLAM等基础算法概念。 定位: GNSS、IMU、高精地图、轮速计等定…...

[SLAM自救笔记0]:开端

📍背景介绍 本人本硕双非,目前研究方向为4D毫米波雷达SLAM与多传感器融合。主攻技术栈是RIO(Radar-Inertial Odometry)与LIO(LiDAR-Inertial Odometry)。 🎯定位方向说明 虽然研究方向偏RIO&…...