langfuse能系统性维护、测试、监控一个 LLM 应用,主要有如下能力:
- 各种指标监控与统计:访问记录、响应时长、Token 用量、计费等等
- 调试 Prompt
- 测试/验证系统的相关评估指标
- 数据集管理(便于回归测试)
- Prompt 版本管理(便于升级/回滚)
LangFuse是开源的,支持 LangChain 集成或原生 OpenAI API 集成
官方网站:https://langfuse.com/
项目地址:https://github.com/langfuse
文档地址:https://langfuse.com/docs
API文档:https://api.reference.langfuse.com/
Python SDK: https://python.reference.langfuse.com/
LangFuse中用到的几个基本概念
1. Trace 一般表示用户与系统的一次交互,其中记录输入、输出,也包括自定义的 metadata 比如用户名、session id 等;
2. 一个 trace 内部可以包含多个子过程,这里叫 observarions
3. Observation 可以是多个类型
a.Event 是最基本的单元,用于记录一个 trace 中的每个事件
b.Span 表一个 trace 中的一个"耗时"的过程
c. Generation 是用于记录与 AI 模型交互的 span,例如:调用 embedding 模型、调用 LLM
4.Observation 可以嵌套使用

要用LangFuse的云服务,首先要在LangFuse官网上注册,注册完后将页面拉倒最后,点免费的SignUp,

进入后点击Go to project
就到我们的监控页面了,如下

1. 通过装饰器记录访问大模型的信息
1.1案例 observbe
from langfuse.decorators import observe, langfuse_context
from langfuse.openai import openai # OpenAI integration
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
@observe()
def run():
return openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "user", "content": "对我说Hello, World!"}
],
).choices[0].message.content
print(run())
langfuse_context.flush()
@observe()代表要监视的方法,执行后,会在Traceszhong 有一条Trace,如下

1.2 observe() 装饰器的参数
def observe(
self,
*,
name: Optional[str] = None, # Trace 或 Span 的名称,默认为函数名
as_type: Optional[Literal[‘generation’]] = None, # 将记录定义为 Observation (LLM 调用)
capture_input: bool = True, # 记录输入
capture_output: bool = True, # 记录输出
transform_to_string: Optional[Callable[[Iterable], str]] = None # 将输出转为 string
) -> Callable[[~F], ~F]
1.3 增加observe中的名称
from langfuse.decorators import observe, langfuse_context
from langfuse.openai import openai
@observe(name="HelloWorld")
def run(


8075

被折叠的 条评论
为什么被折叠?



