Langfuse とは?
Langfuse は、チームが LLM アプリケーションを共同でデバッグ、分析し、継続的に改善していくことを支援する、オープンソースの LLM エンジニアリングプラットフォームです。ClickHouse エコシステムの一部であり、中核に ClickHouse を採用することで、スケーラブルで高性能なオブザーバビリティバックエンドを実現しています。
ClickHouse の列指向ストレージと高速な分析機能を活用することで、Langfuse は低レイテンシで数十億件のトレースやイベントを処理でき、高スループットの本番ワークロードにも適しています。
なぜ Langfuse なのか?
- オープンソース: カスタムインテグレーション向けの公開 API を備えた、完全なオープンソース
- 本番環境向けに最適化: パフォーマンスへの影響を最小限に抑えるよう設計
- 最高クラスの SDKs: Python と JavaScript 向けのネイティブ SDKs
- フレームワーク対応: OpenAI SDK、LangChain、LlamaIndex などの主要なフレームワークと統合
- マルチモーダル: テキスト、画像、その他のモダリティのトレーシングに対応
- 包括的なプラットフォーム: LLM アプリケーション開発ライフサイクル全体を支えるツール群
デプロイメントオプション
Langfuse は、さまざまなセキュリティ要件やインフラストラクチャの要件に対応できるよう、柔軟なデプロイメントオプションを提供しています。
Langfuse Cloud は、最適なパフォーマンスを実現するため、マネージド ClickHouse クラスターを基盤とする完全マネージド型サービスです。SOC 2 Type II および ISO 27001 の認証を取得し、GDPR に準拠しており、米国 (AWS us-west-2) および EU (AWS eu-west-1) のデータリージョンで利用できます。
セルフホスト の Langfuse は、完全なオープンソース (MIT ライセンス) で、Docker または Kubernetes を使用して自社のインフラストラクチャに無料でデプロイできます。オブザーバビリティデータの保存には、自身で ClickHouse インスタンスを運用することも、ClickHouse Cloud を使用することもでき、データを完全に管理できます。
アーキテクチャ
Langfuse はオープンソースコンポーネントのみで構成されており、ローカル環境、クラウドインフラストラクチャ、またはオンプレミス環境にデプロイできます。
- ClickHouse: 大量のオブザーバビリティデータ (トレース、スパン、generations、scores) を保存します。ダッシュボード向けの高速な集約と分析を実現します。
- Postgres: ユーザーアカウント、プロジェクト設定、プロンプト定義などのトランザクションデータを保存します。
- Redis: イベントキューイングとキャッシュを処理します。
- S3/Blob Storage: 大容量のペイロードと生のイベントデータを保存します。
flowchart TB
User["UI, API, SDKs"]
subgraph vpc["VPC"]
Web["Web Server<br/>(langfuse/langfuse)"]
Worker["Async Worker<br/>(langfuse/worker)"]
Postgres@{ img: "https://langfuse.com/images/logos/postgres_icon.svg", label: "Postgres - OLTP\n(Transactional Data)", pos: "b", w: 60, h: 60, constraint: "on" }
Cache@{ img: "https://langfuse.com/images/logos/redis_icon.png", label: "Redis\n(Cache, Queue)", pos: "b", w: 60, h: 60, constraint: "on" }
ClickHouse@{ img: "https://langfuse.com/images/logos/clickhouse_icon.svg", label: "ClickHouse - OLAP\n(Observability Data)", pos: "b", w: 60, h: 60, constraint: "on" }
S3@{ img: "https://langfuse.com/images/logos/s3_icon.svg", label: "S3 / Blob Storage\n(Raw events, multi-modal attachments)", pos: "b", w: 60, h: 60, constraint: "on" }
end
LLM["LLM API/Gateway<br/>(optional; BYO; can be same VPC or VPC-peered)"]
User --> Web
Web --> S3
Web --> Postgres
Web --> Cache
Web --> ClickHouse
Web -..->|"optional for playground"| LLM
Cache --> Worker
Worker --> ClickHouse
Worker --> Postgres
Worker --> S3
Worker -..->|"optional for evals"| LLM
機能
オブザーバビリティ
オブザーバビリティは、LLMアプリケーションを理解し、デバッグするうえで不可欠です。従来のソフトウェアとは異なり、LLMアプリケーションでは複雑で非決定論的なやり取りが発生するため、監視やデバッグが難しくなります。Langfuseは包括的なトレーシング機能を提供しており、アプリケーション内で実際に何が起きているのかを正確に把握できます。
📹 さらに詳しく知りたい方は、Langfuseのオブザーバビリティとアプリケーションへの統合方法を紹介するエンドツーエンドのウォークスルーを見る。
トレースを使うと、アプリ内のすべてのLLM呼び出しや関連するロジックを追跡できます。
セッションを使うと、複数ステップにまたがる会話やエージェント型ワークフローを追跡できます。
タイムラインビューを確認して、レイテンシの問題をデバッグできます。
独自のuserIdを追加すると、ユーザーごとのコストと使用状況を監視できます。必要に応じて、このビューへのディープリンクを自社システム内に作成することもできます。
LLMエージェントはグラフとして可視化でき、複雑なエージェント型ワークフローの流れを表現できます。
ダッシュボードでは、品質、コスト、レイテンシのメトリクスを確認して、LLMアプリケーションを監視できます。
プロンプト管理
プロンプト管理は、効果的なLLMアプリケーションを構築するうえで不可欠です。Langfuseは、開発ライフサイクル全体を通じて、プロンプトの管理、バージョン管理、最適化を行うためのツールを提供します。
📹 さらに詳しく知りたいですか? Langfuseのプロンプト管理と、アプリケーションへの統合方法を紹介するエンドツーエンドのウォークスルーを見る。
UI、SDKs、またはAPIから新しいプロンプトを作成します。
UI、API、またはSDKsを使って、プロンプトを共同で編集し、バージョン管理できます。
コードを一切変更せずに、ラベルを使ってプロンプトを本番環境や任意の環境にデプロイできます。
プロンプトの異なるバージョン間で、レイテンシ、コスト、評価メトリクスを比較します。
プレイグラウンドでプロンプトをすぐにテストできます。
プロンプトをトレースと関連付けることで、LLMアプリケーション内での動作を把握できます。
プロンプトへの変更を追跡し、時間とともにどのように変化していくかを把握できます。
評価とデータセット
評価は、LLM アプリケーションの品質と信頼性を確保するうえで不可欠です。Langfuse は、開発時のテストから本番環境のパフォーマンス監視まで、用途に応じて使い分けられる柔軟な評価ツールを提供しています。
📹 さらに詳しく知りたい方は、Langfuse Evaluation のエンドツーエンドのウォークスルーを見ることで、LLM アプリケーションの改善にどう活用できるかを学べます。
Langfuse ダッシュボードで評価結果を可視化できます。
ユーザーからフィードバックを収集します。Browser SDK を使ってフロントエンドで、SDK や API を使ってサーバーサイドで取得できます。動画にはサンプルアプリケーションも含まれています。
本番または開発環境のトレースに対して、完全マネージド型の LLM-as-a-judge 評価を実行できます。アプリケーション内の任意のステップに適用して、ステップごとの評価を行えます。
ユーザーインターフェイス上で、データセットに対するプロンプトやモデルの評価を直接行えます。カスタムコードは不要です。
Annotation Queue を使って人手でアノテーションを付け、評価ワークフローのベースラインを整えます。
カスタム評価結果を追加できます。数値、ブール値、カテゴリ値に対応しています。
POST /api/public/scoresPython または JS SDK でスコアを追加します。
langfuse.score(
trace_id="123",
name="my_custom_evaluator",
value=0.5,
)クイックスタート
数分でLangfuseを使い始められます。現在のニーズに最も合った方法を選んでください。