Langfuse的使用带样例

以下是通过 Langfuse 实现RAG(检索增强生成)系统全链路监控与分析的完整样例,包含 代码实现、数据记录、看板配置实际应用场景


一、基础配置与初始化

1. 安装与设置
pip install langfuse
from langfuse import Langfuse

# 初始化(从环境变量读取LANGFUSE_KEY/SECRET)
langfuse = Langfuse(
    host="https://cloud.langfuse.com",  # 或自托管地址
    public_key="pk-lf-xxx",
    secret_key="sk-lf-xxx"
)
2. 追踪RAG全流程
def rag_pipeline(query: str):
    # 创建Trace(单次请求的根记录)
    trace = langfuse.trace(
        name="rag-query",
        input={
   
   "question": query},
        metadata={
   
   "env": "production", "user_id": "u123"}
    )
    
    # --- 检索阶段 ---
    retrieval_span = trace.span(name="retrieval")
    contexts = retrieve(query)  # 假设返回Top-3文档
    retrieval_span.end(
        output=contexts,
        metadata={
   
   "model": "bge-large", "top_k": 3}
    )
    
    # --- 生成阶段 ---
    generation_span = trace.span(name="generation")
    prompt = buil
Langfuse 是一个用于管理和分析 LLM(大型语言模型)应用的开源平台,它可以帮助开发者跟踪模型的输入输出、评估性能、优化提示词,并支持 A/B 测试。以下是使用 Langfuse 辅助测试 LLM 应用的基本流程和示代码: ### 1. 安装 Langfuse 客户端库 首先,需要安装 Langfuse 的 Python 客户端库: ```bash pip install langfuse ``` ### 2. 初始化 Langfuse 客户端 在代码中初始化 Langfuse 客户端,并配置服务器地址和 API 密钥: ```python from langfuse import Langfuse # 初始化 Langfuse 客户端 langfuse = Langfuse( server_url="http://localhost:7071", # Langfuse 服务器地址 api_key="your-api-key" # 你的 Langfuse API 密钥 ) ``` ### 3. 记录 LLM 调用 使用 Langfuse 记录 LLM 的输入、输出和元数据,以便后续分析: ```python def call_llm(prompt): # 模拟 LLM 调用(这里用 OpenAI 的 API 作为示) # 实际使用时替换为你的 LLM 调用代码 import openai response = openai.Completion.create( engine="text-davinci-003", prompt=prompt, max_tokens=100 ) output = response.choices[0].text.strip() # 记录 LLM 调用到 Langfuse trace = langfuse.trace( name="LLM_Call", # 调用名称 metadata={ # 自定义元数据 "prompt": prompt, "model": "text-davinci-003" } ) # 记录输入和输出 trace.generation( input=prompt, output=output, model="text-davinci-003" ) # 结束跟踪 trace.end() return output # 示调用 prompt = "解释一下量子计算的基本原理。" response = call_llm(prompt) print("LLM 响应:", response) ``` ### 4. A/B 测试提示词 Langfuse 支持 A/B 测试不同的提示词,以评估哪种提示词效果更好: ```python def ab_test_prompt(prompt_a, prompt_b): # 测试提示词 A trace_a = langfuse.trace(name="Prompt_A_Test") output_a = call_llm(prompt_a) trace_a.generation(input=prompt_a, output=output_a) trace_a.end() # 测试提示词 B trace_b = langfuse.trace(name="Prompt_B_Test") output_b = call_llm(prompt_b) trace_b.generation(input=prompt_b, output=output_b) trace_b.end() return output_a, output_b # 示 A/B 测试 prompt_a = "用简单的语言解释量子计算。" prompt_b = "量子计算是什么?请用通俗易懂的方式说明。" output_a, output_b = ab_test_prompt(prompt_a, prompt_b) print("提示词 A 响应:", output_a) print("提示词 B 响应:", output_b) ``` ### 5. 分析测试结果 在 Langfuse 的 Web 界面中,可以查看所有记录的 LLM 调用,分析输入输出、延迟、成本等指标,并比较不同提示词或模型的效果。 ### 注意事项 - 确保 Langfuse 服务器已启动并运行(默认端口为 7071)。 - 替换示中的 `api_key` 和 `server_url` 为你自己的配置。 - 实际使用时,将 `openai.Completion.create` 替换为你使用的 LLM 的调用代码。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小赖同学啊

感谢上帝的投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值