LangFuse部署与实践

一、定义

        LangFuse是一个强大的工具,可以帮助开发者和运维团队更好地理解和优化他们的LLM应用。通过提供实时的、深入的见解和可视化的跟踪功能,LangFuse使得识别和解决应用性能问题变得更加简单和高效。

二、原理

        LangFuse的原理主要是基于可观察性和分析技术来监控和优化低延迟消息(LLM)应用。它提供了一套完整的解决方案,通过收集、处理和分析LLM应用在运行过程中产生的各种数据,来生成实时的、深入的、可操作的见解。

具体来说,LangFuse可能采用了多种技术来实现其原理,包括但不限于以下几点:

  1. 数据收集:LangFuse首先会从LLM应用中收集各种关键指标和事件数据,如访问记录、响应时长、Token用量、计费等。这些数据可以反映应用的运行状态和性能表现。
  2. 数据处理:收集到的数据会经过一系列的处理过程,包括清洗、聚合、转换等,以便进行后续的分析和可视化。
  3. 实时分析:LangFuse会对处理后的数据进行实时分析,通过运用各种算法和模型,来识别出可能影响应用性能的问题和瓶颈。
  4. 可视化展示:分析结果会以直观的可视化形式展示出来,如图表、曲线、仪表盘等,这样开发者和运维团队就可以轻松地查看和理解应用的运行状态和性能表现。
  5. 告警与通知:当LangFuse检测到潜在的问题或异常时,它可以触发告警并通知相关人员,以便及时采取措施进行解决。

        总的来说,LangFuse的原理是通过综合运用可观察性和分析技术,来提供对LLM应用的全面监控和优化能力。这使得开发者和运维团队能够更加高效地管理和维护他们的应用,从而提升用户体验和业务效益。

三、下载部署

官方网站:Langfuse

项目地址:​​​​​​https://github.com/langfuse

  1. 通过官方云服务使用:1)注册: cloud.langfuse.com  2)创建 API Key

        2、本地部署

前提:

安装git:Git for Windows

安装docker:Docker Desktop: The #1 Containerization Tool for Developers | Docker

# Clone repository
git clone https://github.com/langfuse/langfuse.git
cd langfuse

# Run server and db
docker compose up -d

注册localhost:3000,登录并创建project和API Keys

# 在自己部署的系统中生成上述两个 KEY
# 并在环境变量中指定服务地址

LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_PUBLIC_KEY="pk-lf-.."
LANGFUSE_HOST="http://localhost:3000"

        3、编写OpenAI客户端

from datetime import datetime
from langfuse.openai import openai
from langfuse import Langfuse
import os
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

trace = Langfuse().trace(
    name="myTest",
    user_id="pumpkin",
    release="v0.0.1"
)

completion = openai.chat.completions.create(
    name="hello-world",
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": "你是谁?"}
    ],
    temperature=0,
    trace_id=trace.id,
)

print(completion.choices[0].message.content)

        4.使用Langchain

from langfuse import Langfuse
import os
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
from langchain.prompts import (
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
)
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
from langchain_core.runnables import RunnablePassthrough
from langfuse.callback import CallbackHandler
_ = load_dotenv(find_dotenv())
handler = CallbackHandler(
    trace_name="TestDemo",
    user_id="pumpkin",
)
model = ChatOpenAI(model="gpt-3.5-turbo-0613")

prompt = ChatPromptTemplate.from_messages([
    HumanMessagePromptTemplate.from_template("Say goodbye to {input}!")
])
# 定义输出解析器
parser = StrOutputParser()

chain = (
    {"input": RunnablePassthrough()}
    | prompt
    | model
    | parser
)

result = chain.invoke(input="AGIClass", config={"callbacks": [handler]})
print(result)

执行输出:

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值