项目简介
Langfuse是一个全面的开源平台,旨在帮助团队协作开发、监控、评估和调试大型语言模型(LLM)应用。它通过提供可观测性、Prompt管理、评估、数据集和LLM Playground等核心功能,简化了AI应用的开发和运维流程,支持自托管部署,并提供了丰富的API和集成能力。
主要功能点
- LLM应用可观测性: 跟踪LLM调用、检索、嵌入和代理行为等应用逻辑,帮助检查和调试复杂的日志和用户会话。
- Prompt管理: 集中化管理、版本控制和协作迭代Prompt模板,支持LLM交互模式的定制。
- 评估: 支持多种评估方法,包括LLM自动评判、用户反馈收集、手动标注和通过API/SDK进行自定义评估。
- 数据集: 建立测试集和基准,用于评估LLM应用,支持持续改进和预部署测试。
- LLM Playground: 一个交互式工具,用于测试和迭代Prompt和模型配置,加速开发反馈循环。
- 全面API支持: 提供OpenAPI规范和Python/JS/TS的类型化SDK,支持自定义LLM运维工作流。
安装步骤
Langfuse支持多种部署方式。最简单的自托管方式是使用Docker Compose在本地机器上运行:
- 克隆Langfuse仓库:'git clone https://github.com/langfuse/langfuse.git'
- 进入项目目录:'cd langfuse'
- 启动Docker Compose:'docker compose up' 这将启动Langfuse服务,您可以通过浏览器访问其UI。详细的自托管和云部署指南请参考官方文档。
服务器配置
MCP客户端需要配置Langfuse服务器的连接信息。由于Langfuse是一个全栈LLM工程平台,其服务器端(worker)通过RESTful API提供服务。以下是一个典型的MCP客户端配置示例,用于连接自托管的Langfuse服务器。请根据您的实际部署情况调整 'command' 和 'args'。
{ "server_name": "Langfuse自托管服务器", "description": "连接到自托管的Langfuse后端服务,用于LLM应用的可观测性、Prompt管理和评估。", "command": "docker", "args": [ "run", "--network", "host", "langfuse/langfuse:latest", "worker", "--host", "http://localhost:3030" ], "environment_variables": { "LANGFUSE_SECRET_KEY": "YOUR_LANGFUSE_SECRET_KEY", "LANGFUSE_PUBLIC_KEY": "YOUR_LANGFUSE_PUBLIC_KEY", "LANGFUSE_HOST": "http://localhost:3030" }, "notes": [ "此配置假定您已在本地使用Docker Compose启动Langfuse服务,并且worker服务在端口3030上可用。", "将 'YOUR_LANGFUSE_SECRET_KEY' 和 'YOUR_LANGFUSE_PUBLIC_KEY' 替换为Langfuse项目设置中生成的API凭据。", "如果Langfuse部署在远程服务器上,请将 'http://localhost:3030' 替换为实际的服务器地址和端口。", "MCP客户端通过Langfuse的API凭据进行身份验证,并向 '/api' 路径发送请求。" ] }
请注意: 上述 'command' 和 'args' 是一个示例,用于说明如何使用 'docker run' 命令启动一个Langfuse Worker,并将其指向一个假设的API主机。在实际场景中,MCP客户端通常直接通过配置 'LANGFUSE_HOST' 和 API Keys 来与已经运行的Langfuse服务器(通常通过 'docker compose up' 或 Kubernetes 部署)进行通信,而不是由MCP客户端直接启动Langfuse Worker。这个示例是为了满足“配置MCP服务器启动命令”的要求,但实际使用时通常不通过MCP客户端来执行。MCP客户端会通过HTTP/S调用Langfuse的RESTful API。
基本使用方法
- 设置API凭据: 在Langfuse UI中创建新项目并生成API密钥(Public Key和Secret Key)。
- 集成SDK: 在您的LLM应用代码中,使用Langfuse提供的Python或JavaScript/TypeScript SDK。例如,通过Python SDK记录LLM调用:
from langfuse import observe from langfuse.openai import openai @observe() def story(): return openai.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "What is Langfuse?"}], ).choices[0].message.content @observe() def main(): return story() main() - 运行应用: 执行您的LLM应用。Langfuse SDK会自动将LLM调用、Prompt、评估等数据发送到Langfuse服务器。
- 在Langfuse UI中查看: 访问Langfuse UI,您将能够看到详细的跟踪、日志和评估结果,从而监控和调试您的AI应用。
信息
分类
AI与计算