赞
踩
一、定义
LangFuse是一个强大的工具,可以帮助开发者和运维团队更好地理解和优化他们的LLM应用。通过提供实时的、深入的见解和可视化的跟踪功能,LangFuse使得识别和解决应用性能问题变得更加简单和高效。
二、原理
LangFuse的原理主要是基于可观察性和分析技术来监控和优化低延迟消息(LLM)应用。它提供了一套完整的解决方案,通过收集、处理和分析LLM应用在运行过程中产生的各种数据,来生成实时的、深入的、可操作的见解。
具体来说,LangFuse可能采用了多种技术来实现其原理,包括但不限于以下几点:
总的来说,LangFuse的原理是通过综合运用可观察性和分析技术,来提供对LLM应用的全面监控和优化能力。这使得开发者和运维团队能够更加高效地管理和维护他们的应用,从而提升用户体验和业务效益。
三、下载部署
官方网站:Langfuse
项目地址:https://github.com/langfuse
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)
执行输出:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。