langfuse

🪢 Open source LLM engineering platform: LLM Observability, metrics, evals, prompt management, playground, datasets. Integrates with OpenTelemetry, Langchain, OpenAI SDK, LiteLLM, and more. 🍊YC W23

9194
847
TypeScript

Langfuse GitHub Banner


Langfuse 使用 Github Discussions 作为支持和功能请求的平台。
我们正在招聘。 加入我们,从事产品工程和技术市场职位。

MIT License Y Combinator W23 Docker Pulls langfuse Python package on PyPi langfuse npm package
在 Discord 上聊天 在 X (Twitter) 上关注 在 LinkedIn 上关注 过去一个月的提交 已关闭的问题 讨论帖数量

README in English 简体中文版自述文件 日本語のREADME README in Korean

Langfuse 是一个 开源 LLM 工程 平台。它帮助团队协作 开发、监控、评估 以及 调试 AI 应用。Langfuse 可在几分钟内 自托管,并且经过 实战考验

Langfuse 概览视频

✨ 核心特性

Langfuse 概览

  • LLM 应用可观察性:为你的应用插入仪表代码,并开始将追踪数据传送到 Langfuse,从而追踪 LLM 调用及应用中其他相关逻辑(如检索、嵌入或代理操作)。检查并调试复杂日志及用户会话。试试互动的 演示 看看效果。

  • 提示管理 帮助你集中管理、版本控制并协作迭代提示。得益于服务器和客户端的高效缓存,你可以在不增加延迟的情况下反复迭代提示。

  • 评估 是 LLM 应用开发流程的关键组成部分,Langfuse 能够满足你的多样需求。它支持 LLM 作为“裁判”、用户反馈收集、手动标注以及通过 API/SDK 实现自定义评估流程。

  • 数据集 为评估你的 LLM 应用提供测试集和基准。它们支持持续改进、部署前测试、结构化实验、灵活评估,并能与 LangChain、LlamaIndex 等框架无缝整合。

  • LLM 试玩平台 是用于测试和迭代提示及模型配置的工具,缩短反馈周期,加速开发。当你在追踪中发现异常结果时,可以直接跳转至试玩平台进行调整。

  • 综合 API:Langfuse 常用于驱动定制化的 LLMOps 工作流程,同时利用 Langfuse 提供的构建模块和 API。我们提供 OpenAPI 规格、Postman 集合以及针对 Python 和 JS/TS 的类型化 SDK。

📦 部署 Langfuse

Langfuse 部署选项

Langfuse Cloud

由 Langfuse 团队管理的部署,提供慷慨的免费额度(爱好者计划),无需信用卡。

自托管 Langfuse

在你自己的基础设施上运行 Langfuse:

  • 本地(docker compose):使用 Docker Compose 在你的机器上于 5 分钟内运行 Langfuse。

    # 获取最新的 Langfuse 仓库副本
    git clone https://github.com/langfuse/langfuse.git
    cd langfuse
    
    # 运行 Langfuse 的 docker compose
    docker compose up
    
  • Kubernetes(Helm):使用 Helm 在 Kubernetes 集群上部署 Langfuse。这是推荐的生产环境部署方式。

  • 虚拟机:使用 Docker Compose 在单台虚拟机上部署 Langfuse。

  • 【计划中】:针对各云平台的部署指南,欢迎在以下讨论中投票和评论:AWSGoogle CloudAzure

请参阅 自托管文档 了解更多关于架构和配置选项的信息。

🔌 集成

Langfuse 集成

主要集成:

集成 支持语言/平台 描述
SDK Python, JS/TS 使用 SDK 进行手动仪表化,实现全面灵活性。
OpenAI Python, JS/TS 通过直接替换 OpenAI SDK 实现自动仪表化。
Langchain Python, JS/TS 通过传入回调处理器至 Langchain 应用实现自动仪表化。
LlamaIndex Python 通过 LlamaIndex 回调系统实现自动仪表化。
Haystack Python 通过 Haystack 内容追踪系统实现自动仪表化。
LiteLLM Python, JS/TS (仅代理) 允许使用任何 LLM 替代 GPT。支持 Azure、OpenAI、Cohere、Anthropic、Ollama、VLLM、Sagemaker、HuggingFace、Replicate(100+ LLMs)。
Vercel AI SDK JS/TS 基于 TypeScript 的工具包,帮助开发者使用 React、Next.js、Vue、Svelte 和 Node.js 构建 AI 驱动的应用。
API 直接调用公共 API。提供 OpenAPI 规格。

与 Langfuse 集成的软件包:

名称 类型 描述
Instructor 用于获取结构化 LLM 输出(JSON、Pydantic)的库。
DSPy 一个系统性优化语言模型提示和权重的框架。
Mirascope 构建 LLM 应用的 Python 工具包。
Ollama 模型(本地) 在你的机器上轻松运行开源 LLM。
Amazon Bedrock 模型 在 AWS 上运行基础模型和微调模型。
AutoGen 代理框架 用于构建分布式代理的开源 LLM 平台。
Flowise 聊天/代理界面 基于 JS/TS 的无代码构建器,用于定制化 LLM 流程。
Langflow 聊天/代理界面 基于 Python 的 LangChain 用户界面,采用 react-flow 设计,提供便捷的实验与原型构建体验。
Dify 聊天/代理界面 带有无代码构建器的开源 LLM 应用开发平台。
OpenWebUI 聊天/代理界面 自托管的 LLM 聊天网页界面,支持包括自托管和本地模型在内的多种 LLM 运行器。
Promptfoo 工具 开源 LLM 测试平台。
LobeChat 聊天/代理界面 开源聊天机器人平台。
Vapi 平台 开源语音 AI 平台。
Inferable 代理 构建分布式代理的开源 LLM 平台。
Gradio 聊天/代理界面 开源 Python 库,可用于构建类似聊天 UI 的网页界面。
Goose 代理 构建分布式代理的开源 LLM 平台。
smolagents 代理 开源 AI 代理框架。
CrewAI 代理 多代理框架,用于实现代理之间的协作与工具调用。

🚀 快速入门

为你的应用增加仪表代码,并开始将追踪数据上传到 Langfuse,从而记录 LLM 调用及应用中其他相关逻辑(如检索、嵌入或代理操作)。

1️⃣ 创建新项目

  1. 创建 Langfuse 账户自托管
  2. 创建一个新项目
  3. 在项目设置中创建新的 API 凭证

2️⃣ 记录你的第一个 LLM 调用

使用 @observe() 装饰器 可轻松跟踪任何 Python LLM 应用。在本快速入门中,我们还使用了 Langfuse 的 OpenAI 集成 来自动捕获所有模型参数。

[!提示]
不使用 OpenAI?请访问 我们的文档 了解如何记录其他模型和框架。

安装依赖:

pip install langfuse openai

配置环境变量(创建名为 .env 的文件):

LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_HOST="https://cloud.langfuse.com" # 🇪🇺 欧盟区域
# LANGFUSE_HOST="https://us.cloud.langfuse.com" # 🇺🇸 美洲区域

创建示例代码(文件名:main.py):

from langfuse.decorators import observe
from langfuse.openai import openai  # 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()

3️⃣ 在 Langfuse 中查看追踪记录

在 Langfuse 中查看你的语言模型调用及其他应用逻辑。

示例追踪记录

Langfuse 中的公共示例追踪

[!提示]

了解更多 关于 Langfuse 中的追踪,或试试 互动演示

⭐️ 给我们加星

为 Langfuse 加星

💭 支持

查找问题答案:

  • 我们的 文档 是查找答案的最佳起点。内容全面,我们投入大量时间进行维护。你也可以通过 GitHub 提出文档修改建议。
  • Langfuse 常见问题 解答了最常见的问题。
  • 使用 “Ask AI” 立即获取问题答案。

支持渠道:

  • 在 GitHub Discussions 的 公共问答 中提出任何问题。 请尽量提供详细信息(如代码片段、截图、背景信息)以帮助我们理解你的问题。
  • 在 GitHub Discussions 中 提出功能请求
  • 在 GitHub Issues 中 报告 Bug
  • 对于时效性较强的问题,请通过应用内聊天小部件联系我们。

🤝 贡献

欢迎你的贡献!

  • 在 GitHub Discussions 中为 想法投票。
  • 提出并评论 问题
  • 提交 PR —— 详情请参见 CONTRIBUTING.md,了解如何搭建开发环境。

🥇 许可证

ee 文件夹外,本仓库采用 MIT 许可证。详情请参见 LICENSE 以及 文档

⭐️ 星标历史

星标历史图表

❤️ 使用 Langfuse 的开源项目

以下是使用 Langfuse 的顶级开源 Python 项目,按星标数排名(来源):

仓库 星数
  langgenius / dify 54865
  open-webui / open-webui 51531
  lobehub / lobe-chat 49003
  langflow-ai / langflow 39093
  run-llama / llama_index 37368
  chatchat-space / Langchain-Chatchat 32486
  FlowiseAI / Flowise 32448
  mindsdb / mindsdb 26931
  twentyhq / twenty 24195
  PostHog / posthog 22618
  BerriAI / litellm 15151
  mediar-ai / screenpipe 11037
  formbricks / formbricks 9386
  anthropics / courses 8385
  GreyDGL / PentestGPT 7374
  superagent-ai / superagent 5391
  promptfoo / promptfoo 4976
  onlook-dev / onlook 4141
  Canner / WrenAI 2526
  pingcap / autoflow 2061
  MLSysOps / MLE-agent 1161
  open-webui / pipelines 1100
  alishobeiri / thread 1074
  topoteretes / cognee 971
  bRAGAI / bRAG-langchain 823
  opslane / opslane 677
  dynamiq-ai / dynamiq 639
  theopenconversationkit / tock 514
  andysingal / llm-course 394
  phospho-app / phospho 384
  sentient-engineering / agent-q 370
  sql-agi / DB-GPT 324
  PostHog / posthog-foss 305
  vespperhq / vespper 304
  block / goose 295
  aorwall / moatless-tools 291
  dmayboroda / minima 221
  RobotecAI / rai 172
  i-am-alice / 3rd-devs 148
  8090-inc / xrx-sample-apps 138
  babelcloud / LLM-RGB 135
  souzatharsis / tamingLLMs 129
  LibreChat-AI / librechat.ai 128
  deepset-ai / haystack-core-integrations 126

🔒 安全与隐私

我们非常重视数据安全和隐私。更多信息请参阅我们的 安全与隐私 页面。

遥测

默认情况下,Langfuse 会自动将自托管实例的基础使用统计数据上传至集中服务器(PostHog)。

这有助于我们:

  1. 了解 Langfuse 的使用情况,并改进最关键的功能。
  2. 跟踪整体使用数据,以便内部及外部(例如筹款)报告。

所有数据均不会与第三方共享,也不包含任何敏感信息。我们对这一过程保持高度透明,你可以在 此处 查看我们收集的具体数据。

你可以通过设置 TELEMETRY_ENABLED=false 来选择退出。