news 2026/4/23 9:47:24

人工智能基础知识笔记三十一:Langfuse

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
人工智能基础知识笔记三十一:Langfuse

1、简介

Langfuse是一个专为大语言模型(LLM)应用开发设计的开源可观测性平台。它就像是 LLM 应用的"黑匣子"或"监控仪表盘",帮助开发者追踪、分析和优化基于 AI 的应用。

它的核心功能如下:

1. 追踪与监控

  • 自动记录:自动追踪每次 LLM 调用、函数执行和用户交互

  • 可视化工作流:以树形结构展示复杂的 AI 应用执行过程

  • 性能指标:监控延迟、成本和 token 使用情况

2. 提示工程管理

  • 版本控制:像 Git 一样管理不同的 prompt 版本

  • A/B 测试:比较不同 prompt 版本的效果

  • 协作:团队共享和优化提示词

3. 评估与分析

  • 自动评估:使用 AI 评估 AI 回答的质量

  • 人工反馈:收集用户评分和反馈

  • 数据分析:识别模式、异常和优化机会

4. 数据集管理

  • 创建和管理测试数据集

  • 批量运行和评估

  • 持续改进模型性能

2、如何安装

langfuse的安装非常简单,只需要执行以下几条命令就可以了:

# Get a copy of the latest Langfuse repository git clone https://github.com/langfuse/langfuse.git cd langfuse # Run the langfuse docker compose docker compose up

更多信息可以参考:https://github.com/langfuse/langfuse?tab=readme-ov-file

安装完之后,默认的端口是3000, 可以通过http://localhost:3000/api/public/health确认服务是否正常启动了。

3、构建环境遇到的一个问题

开始环境使用的python的版本是3.14.0, 在确认安装了 langfuse之后,凡是import langfuse的任何package,例如:

from langfuse.openai import OpenAI

都会报错如下:

“ConfigError: unable to infer type for attribute "description'”

经过查询得知主要是由于pydantic的兼容问题导致的,按照各种方法尝试修复,例如:指定pydantic的版本为2.9.2, 都无果。

最终的解决方案

安装一个Python1.22.7版本,然后安装所有的依赖,使用这个版本的python就可以了。

4、如何运行一个Ollama的应用实例

本例子是尝试使用Ollama的qwen3:8b模型来运行一个query,查看是否可以在Langfuse上进行Track这个query的具体信息。

第一步,langfuse的配置信息,具体可以参考如下页面显示,生成LANGFUSE_PUBLIC_KEY 和 LANGFUSE_SECRET_KEY。

然后在程序的.env文件,添加langfuse的配置信息,可以从页面上直接复制:

或者直接在代码里赋值:

os.environ["LANGFUSE_PUBLIC_KEY"] = "" os.environ["LANGFUSE_SECRET_KEY"] = "" os.environ["LANGFUSE_BASE_URL"] = "https://cloud.langfuse.com"

第二步,安装依赖:

%pip install langfuse openai %pip install pydantic %pip install dotenv

第三步,加载配置项

import os from dotenv import load_dotenv load_dotenv() LANGFUSE_PUBLIC_KEY = os.getenv("LANGFUSE_PUBLIC_KEY") LANGFUSE_SECRET_KEY = os.getenv("LANGFUSE_SECRET_KEY") LANGFUSE_HOST = os.getenv("LANGFUSE_HOST", "http://localhost:3000") # 打印验证是否能够正确读出来配置的内容 print(LANGFUSE_PUBLIC_KEY) print(LANGFUSE_SECRET_KEY) print(LANGFUSE_HOST)

第四步,编写代码使用Ollama执行Query,这里使用langfuse的示例代码,【https://langfuse.com/integrations/model-providers/ollama】

# Drop-in replacement to get full logging by changing only the import from langfuse.openai import OpenAI # Configure the OpenAI client to use http://localhost:11434/v1 as base url client = OpenAI( base_url = 'http://localhost:11434/v1', api_key='ollama', # required, but unused ) response = client.chat.completions.create( model="qwen3:8b", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Who was the first person to step on the moon?"}, {"role": "assistant", "content": "Neil Armstrong was the first person to step on the moon on July 20, 1969, during the Apollo 11 mission."}, {"role": "user", "content": "What were his first words when he stepped on the moon?"} ] ) print(response.choices[0].message.content)

第五步,登录langfuse的界面查看Query的详细信息:

5、参考

https://github.com/langfuse/langfuse?tab=readme-ov-file

https://langfuse.com/integrations/model-providers/ollama

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:45:10

docker部署Portracker 实现局域网实时端口监控

1、Portracker简介 Portracker 是一款 MIT 协议开源、自托管的实时端口监控与服务发现工具,由 Mostafa Wahied 开发,采用 Node.jsReact 技术栈,内置 SQLite 数据库,以单一进程运行,无需外部依赖,可自动扫描…

作者头像 李华
网站建设 2026/4/22 18:32:30

基于SpringBoot的学生志愿者管理系统的设计与实现毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于SpringBoot框架的学生志愿者管理系统。该系统旨在为高校学生志愿者提供高效、便捷的管理服务,同时满足学校对学生志愿者…

作者头像 李华
网站建设 2026/4/19 17:51:39

【毕业设计】基于MobileNet v2模型的口罩实时检测系统实现

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/4 13:07:29

深度学习计算机毕设之基于MobileNet v2模型的口罩实时检测系统实现

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/20 23:21:54

Leetcode1438绝对值不超过限制的最长连续子数组

题目分析 如果一个子数组达标,也就是它内部的最大值减去最小值小于等于给定限制limit, 则其内部任意小范围一定也达标,因为范围变小,最大值只可能变小或者不变,而最小值只可能变大或者不变。 如果一个子数组不达标,则再扩大范围一定会更加不达标,因为范围变大,最大值…

作者头像 李华
网站建设 2026/4/20 9:09:29

MySQL 分库分表全攻略:策略、演进路径与避坑指南

文章目录 一、常见的分库分表策略包括:1)水平分表(Row-based Sharding)2)垂直分表(Column-based Split)3)水平分库(Database Sharding)4)垂直分库…

作者头像 李华