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

分析・BIDatadogの代替New Relicの代替NOASSERTION
24,039 スター2,417 フォーク
AIによる要約
ひとことで言うと

AIアプリケーション(大規模言語モデルを使ったアプリ)の動作を追跡・評価・改善するためのオープンソースの開発支援プラットフォームです。

こんな方におすすめ

・企業:AIチャットボットや文書処理などのLLMアプリケーションの品質を監視し、プロンプトの管理やA/Bテストを一元的に行うことで、安定したAIサービスを提供できます。 ・スタートアップ:LLMの呼び出しログやコスト、応答品質を可視化でき、限られたリソースで効率的にAI機能を改善できます。 ・個人事業主・フリーランス:自分のAIアプリの動作状況をダッシュボードで確認でき、プロンプトの調整や評価を手軽に行えます。

有料サービスとの違い

Weights & BiasesやDatadogのLLM監視機能は利用量に応じた課金が発生しますが、Langfuseはセルフホストで無料運用でき、LangChainやOpenAI SDKとの連携も充実しているため、追加コストなく本格的なLLM運用管理が始められます。

LangfuseはオープンソースのLLMエンジニアリングプラットフォームです。チームが協力してAIアプリケーションを開発、監視、評価、そしてデバッグすることを支援します。Langfuseは数分でセルフホスト可能で、本番環境で実証済みです。

Langfuse概要動画

✨ コア機能

  • LLMアプリケーションのオブザーバビリティ: アプリをインストルメント化してLangfuseへのトレース取り込みを開始し、LLM呼び出しやリトリーバル、エンベディング、エージェントアクションなどのアプリ内の関連ロジックを追跡します。複雑なログやユーザーセッションを検査・デバッグできます。インタラクティブなデモで実際の動作をお試しください。

  • プロンプト管理は、プロンプトを一元的に管理、バージョン管理し、チームで協力して反復改善することを支援します。サーバーとクライアント両方の強力なキャッシュにより、アプリケーションにレイテンシを追加することなくプロンプトを改善できます。

  • 評価はLLMアプリケーション開発ワークフローの要であり、Langfuseはあなたのニーズに適応します。LLM-as-a-judge、ユーザーフィードバック収集、手動ラベリング、API/SDKによるカスタム評価パイプラインをサポートしています。

  • データセットにより、LLMアプリケーションを評価するためのテストセットやベンチマークが可能になります。継続的な改善、デプロイ前テスト、構造化された実験、柔軟な評価、LangChainやLlamaIndexなどのフレームワークとのシームレスな統合をサポートしています。

  • LLM Playgroundは、プロンプトとモデル設定のテストと反復のためのツールで、フィードバックループを短縮し開発を加速します。トレースで悪い結果を見つけた場合、Playgroundに直接ジャンプして改善を繰り返すことができます。

  • 包括的なAPI: LangfuseはLangfuseがAPIを通じて提供するビルディングブロックを使用して、独自のLLMOpsワークフローを構築するために頻繁に使用されます。OpenAPI仕様、Postmanコレクション、Python・JS/TS用の型付きSDKが利用可能です。

📦 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
    
  • VM: Docker Composeを使用して、単一の仮想マシンでLangfuseを実行します。

  • Kubernetes (Helm): Helmを使用してKubernetesクラスタでLangfuseを実行します。これが推奨される本番デプロイメント方式です。

  • Terraformテンプレート: AWSAzureGCP

アーキテクチャと設定オプションの詳細はセルフホスティングドキュメントをご覧ください。

🔌 インテグレーション

主要インテグレーション:

インテグレーション 対応環境 説明
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(プロキシのみ) GPTのドロップイン置換として任意のLLMを使用可能。Azure、OpenAI、Cohere、Anthropic、Ollama、VLLM、Sagemaker、HuggingFace、Replicate(100以上のLLM)に対応。
Vercel AI SDK JS/TS React、Next.js、Vue、Svelte、Node.jsでAI搭載アプリケーションを構築するためのTypeScriptツールキット。
Mastra JS/TS AIエージェントおよびマルチエージェントシステムを構築するためのオープンソースフレームワーク。
API パブリックAPIを直接呼び出し可能。OpenAPI仕様あり。

Langfuseと統合されたパッケージ:

名前 種別 説明
Instructor ライブラリ 構造化されたLLM出力(JSON、Pydantic)を取得するためのライブラリ
DSPy ライブラリ 言語モデルのプロンプトと重みを体系的に最適化するフレームワーク
Mirascope ライブラリ LLMアプリケーション構築のためのPythonツールキット
Ollama モデル(ローカル) オープンソースLLMを自分のマシンで簡単に実行
Amazon Bedrock モデル AWS上で基盤モデルとファインチューニングモデルを実行
AutoGen エージェントフレームワーク 分散エージェントを構築するためのオープンソースLLMプラットフォーム
Flowise チャット/エージェント UI カスタマイズされたLLMフローのためのJS/TSノーコードビルダー
Langflow チャット/エージェント UI LangChain用のPythonベースUI。react-flowで設計されており、フローの実験とプロトタイピングを簡単に行えます。
Dify チャット/エージェント UI ノーコードビルダーを備えたオープンソースのLLMアプリ開発プラットフォーム
OpenWebUI チャット/エージェント UI セルフホスト型およびローカルモデルを含む様々なLLMランナーをサポートするセルフホスト型LLMチャットWeb UI
Promptfoo ツール オープンソースのLLMテストプラットフォーム
LobeChat チャット/エージェント UI オープンソースのチャットボットプラットフォーム
Vapi プラットフォーム オープンソースの音声AIプラットフォーム
Inferable エージェント 分散エージェントを構築するためのオープンソースLLMプラットフォーム
Gradio チャット/エージェント UI チャットUIなどのWebインターフェースを構築するためのオープンソースPythonライブラリ
Goose エージェント 分散エージェントを構築するためのオープンソースLLMプラットフォーム
smolagents エージェント オープンソースのAIエージェントフレームワーク
CrewAI エージェント エージェント間の連携とツール使用のためのマルチエージェントフレームワーク

🚀 クイックスタート

アプリをインストルメント化してLangfuseへのトレース取り込みを開始し、LLM呼び出しやリトリーバル、エンベディング、エージェントアクションなどのアプリ内の関連ロジックを追跡します。複雑なログやユーザーセッションを検査・デバッグできます。

1️⃣ 新しいプロジェクトを作成

  1. Langfuseアカウントを作成するか、セルフホストします
  2. 新しいプロジェクトを作成します
  3. プロジェクト設定で新しいAPI認証情報を作成します

2️⃣ 最初のLLM呼び出しを記録

@observe() デコレータを使うと、あらゆるPython LLMアプリケーションのトレースが簡単になります。このクイックスタートでは、LangfuseのOpenAIインテグレーションも使用して、すべてのモデルパラメータを自動的にキャプチャします。

[!TIP] OpenAIを使っていませんか? 他のモデルやフレームワークの記録方法についてはドキュメントをご覧ください。

pip install langfuse openai
LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_BASE_URL="https://cloud.langfuse.com" # 🇪🇺 EUリージョン
# LANGFUSE_BASE_URL="https://us.cloud.langfuse.com" # 🇺🇸 USリージョン
from langfuse 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の公開サンプルトレース

[!TIP]

Langfuseのトレースについて詳しく学ぶか、インタラクティブデモをお試しください。

⭐️ スターをお願いします

GitHubでLangfuseにスターを

💭 サポート

質問への回答を見つけるには:

  • まずドキュメントをご確認ください。包括的な内容で、メンテナンスに多大な時間を投資しています。GitHubを通じてドキュメントの編集提案も可能です。
  • 最もよくある質問はLangfuse FAQでお答えしています。
  • AIに聞く」を使って、質問への即座の回答を得ることができます。

サポートチャネル:

  • GitHub Discussionsの公開Q&Aでどんな質問でもお寄せください。 質問を理解するのに役立つ詳細情報(コードスニペット、スクリーンショット、背景情報など)をできるだけ含めてください。
  • GitHub Discussionsで機能をリクエストできます。
  • GitHub Issuesでバグを報告できます。
  • 緊急の問い合わせについては、アプリ内のチャットウィジェットからお問い合わせください。

🤝 コントリビュート

あなたの貢献を歓迎します!

  • GitHub Discussionsでアイデアに投票してください。
  • Issueを起票・コメントしてください。
  • PRを開いてください - 開発環境のセットアップ方法についてはCONTRIBUTING.mdをご覧ください。

🥇 ライセンス

このリポジトリは ee フォルダを除きMITライセンスです。詳細はLICENSEドキュメントをご覧ください。

依存関係

このコードベースはLinux Alpineイメージ(ソース)をベースにしたDockerコンテナでデプロイしています。Dockerfileはweb/Dockerfileworker/Dockerfileにあります。

⭐️ スター履歴

❤️ Langfuseを使用しているオープンソースプロジェクト

Langfuseを使用しているトップのオープンソースPythonプロジェクト(スター数順)(ソース):

リポジトリ スター数
  langflow-ai / langflow 116251
  open-webui / open-webui 109642
  abi / screenshot-to-code 70877
  lobehub / lobe-chat 65454
  infiniflow / ragflow 64118
  firecrawl / firecrawl 56713
  run-llama / llama_index 44203
  FlowiseAI / Flowise 43547
  QuivrHQ / quivr 38415
  microsoft / ai-agents-for-beginners 38012
  chatchat-space / Langchain-Chatchat 36071
  mindsdb / mindsdb 35669
  danny-avila / LibreChat 33142
  BerriAI / litellm 28726
  onlook-dev / onlook 22447
  NixOS / nixpkgs 21748
  kortix-ai / suna 17976
  anthropics / courses 17057
  mastra-ai / mastra 16484
  langfuse / langfuse 16054
  Canner / WrenAI 11868
  promptfoo / promptfoo 8350
  The-Pocket / PocketFlow 8313
  OpenPipe / ART 7093
  topoteretes / cognee 7011
  awslabs / agent-squad 6785
  BasedHardware / omi 6231
  hatchet-dev / hatchet 6019
  zenml-io / zenml 4873
  refly-ai / refly 4654
  coleam00 / ottomator-agents 4165
  JoshuaC215 / agent-service-toolkit 3557
  colanode / colanode 3517
  VoltAgent / voltagent 3210
  bragai / bRAG-langchain 3010
  pingcap / autoflow 2651
  sourcebot-dev / sourcebot 2570
  open-webui / pipelines 2055
  YFGaia / dify-plus 1734
  TheSpaghettiDetective / obico-server 1687
  MLSysOps / MLE-agent 1387
  TIGER-AI-Lab / TheoremExplainAgent 1385
  trailofbits / buttercup 1223
  wassim249 / fastapi-langgraph-agent-production-ready-template 1200
  alishobeiri / thread 1098
  dmayboroda / minima 1010
  zstar1003 / ragflow-plus 993
  openops-cloud / openops 939
  dynamiq-ai / dynamiq 927
  xataio / agent 857
  plastic-labs / tutor-gpt 845
  trendy-design / llmchat 829
  hotovo / aider-desk 781
  opslane / opslane 719
  wrtnlabs / autoview 688
  andysingal / llm-course 643
  theopenconversationkit / tock 587
  sentient-engineering / agent-q 487
  NicholasGoh / fastapi-mcp-langgraph-template 481
  i-am-alice / 3rd-devs 472
  AIDotNet / koala-ai 470
  phospho-app / text-analytics-legacy 439
  inferablehq / inferable 403
  duoyang666 / ai_novel 397
  strands-agents / samples 385
  FranciscoMoretti / sparka 380
  RobotecAI / rai 373
  ElectricCodeGuy / SupabaseAuthWithSSR 370
  souzatharsis / tamingLLMs 323
  aws-samples / aws-ai-ml-workshop-kr 295
  weizxfree / KnowFlow 285
  zenml-io / zenml-projects 276
  wxai-space / LightAgent 275
  Ozamatash / deep-research-mcp 269
  sql-agi / DB-GPT 241
  guyernest / advanced-rag 238
  bklieger-groq / mathtutor-on-groq 233
  plastic-labs / honcho 224
  OVINC-CN / OpenWebUI 202
  zhutoutoutousan / worldquant-miner 202
  iceener / ai 186
  giselles-ai / giselle 181
  ai-shifu / ai-shifu 181
  aws-samples / sample-serverless-mcp-servers 175
  celerforge / freenote 171
  babelcloud / LLM-RGB 164
  8090-inc / xrx-sample-apps 163
  deepset-ai / haystack-core-integrations 163
  codecentric / c4-genai-suite 152
  XSpoonAi / spoon-core 150
  chatchat-space / LangGraph-Chatchat 144
  langfuse / langfuse-docs 139
  piyushgarg-dev / genai-cohort 135
  i-dot-ai / redbox 132
  bmd1905 / ChatOpsLLM 127
  Fintech-Dreamer / FinSynth 121
  kenshiro-o / nagato-ai 119

🔒 セキュリティとプライバシー

データセキュリティとプライバシーを重視しています。詳細はセキュリティとプライバシーページをご覧ください。

テレメトリ

デフォルトでは、Langfuseはセルフホストインスタンスの基本的な使用統計を中央サーバー(PostHog)に自動的に報告します。

これにより以下が可能になります:

  1. Langfuseの使用状況を把握し、最も関連性の高い機能を改善する。
  2. 社内外(資金調達など)の報告のために全体的な使用状況を追跡する。

テレメトリには、生のトレース、プロンプト、オブザベーション、スコア、データセットの内容は含まれません。収集される正確なフィールド、送信先、実装リファレンスはテレメトリドキュメントに記載しています。

Langfuse OSSでは、TELEMETRY_ENABLED=false を設定することでオプトアウトできます。