アイキャッチ画像: Langfuse:本番のAIチャットボットを可視化する

Langfuse:本番のAIチャットボットを可視化する

公開日:

読了時間: 2 min

テーマ: テクノロジー

著者: Leandro Valencia

#Langfuse#LLMオブザーバビリティ#AIチャットボット#プロンプト監視#OpenAIのコスト

AIボットは返事をするが、正しいかは見えない。LLMのオブザーバビリティとは何か、オープンソースのLangfuseがコスト・エラー・品質をどう見せるかを解説します。

目次

月曜、クライアントからこう来ます。「ボットが、送料は無料だと客に言った。無料じゃない。」パネルを開くと、会話は残っています。見えないのは、なぜそう答えたかです。

有効だったプロンプトはどれか。検索はどの文書を渡したか。モデルなのか、渡した文脈なのか、金曜に誰かが出した変更なのか。それが分からなければ、直しは当てずっぽうです。

企業のチャットボットやWhatsAppの導線を作っていると、この場面は繰り返します。AIについて書かれたもののほとんどは、ボットの作り方です。本物の顧客と話し始めたあと、何をしているかを見る方法は、ほとんど書かれていません。まだその導線を組んでいるなら、前の記事はプロセスをチャットボットに変える方法です。ここからは、出したあとの話です。

AIボットの静かな三つの失敗

従来のボットは、音を立てて壊れます。落ちる、エラーを返す、誰かが気づく。AIボットは静かに壊れます。必ず何かを答えるからです。本番でいちばん多い失敗は、この三つです。

  1. 正しそうで、間違っている答え。 モデルは価格も規約も営業時間も、自信満々に作り出します。客が文句を言うまで、誰も気づきません。
  2. 原因の見えないコスト増。 上限のない会話履歴や、エージェントの中のループが、APIの請求を倍にします。請求書は月末に届き、もう削るものがありません。
  3. 悪くなったのに、誰も知らないプロンプト。 一つのケースを直そうとしてプロンプトを変えると、別の三つが壊れます。比べられる版がなければ、知らせてくるのはユーザーです。

原因は三つとも同じです。問題はモデルだけではありません。中で何が起きたかが見えないことです。

LLMのオブザーバビリティとは

飛行機のフライトレコーダーを考えてください。事故は止めません。何が起きたかを、一歩ずつ再現できるようにします。LLMのオブザーバビリティは、ボットに対してそれをします。すべての会話の、すべてのステップを残し、あとから見直せるようにします。

やりとりは、それぞれトレースとして残ります。「送料は無料ですか」なら、こうなります。

  • トレース: 顧客のWhatsAppメッセージ(1.8秒 · 0.004米ドル)
    • ナレッジベースの検索:見つかった文書
    • モデルの呼び出し:実際のプロンプトとその版、返信、トークン
    • ユーザーに送った返信

これがあれば、送料無料の一件は数分で片づきます。検索が期限切れのキャンペーンを返し、モデルはそれを今も有効な条件として扱っていた、と分かります。もう当てずっぽうではありません。直す場所が分かります。

マーケティングの出身なら、これは会話のアナリティクスです。誰が何を聞き、いくらかかり、どこまでうまくいったか。

Langfuseが担う範囲

Langfuseは、言語モデルを使うアプリケーションを追跡し、評価し、改善するための、MITライセンスのオープンソースのプラットフォームです。機能のそれぞれが、上の失敗のどれかに答えています。

機能 何をするか どの失敗に答えるか
トレース 会話の各ステップを、コストとレイテンシ付きで記録する 「なぜそう答えたか分からない」
プロンプト管理 プロンプトを版管理し、前の版へ戻せる 「いつから悪くなったか分からない」
評価 別のモデル、ルール、人のレビューで返信に点を付ける 「正しそうだが、間違っている」
実験 出す前に、新しいプロンプトやモデルを実際のケースで試す 「一つ直して、三つ壊した」
ダッシュボード コスト、レイテンシ、品質の推移と、アラート 「請求が倍になった」

つながる先は、OpenAI、Anthropic、Google、LangChain、Vercel AI SDK、CrewAI、n8n、それにOpenTelemetryに対応したスタックです。料金のページには、Canva、Khan Academy、Hugging Faceといったチームが載っています。

2026年1月16日、ClickHouseがLangfuseを買収しました。プロジェクトはオープンソースのまま、セルフホストでき、ライセンスも同じMITです。発表のなかでClickHouseは、2025年末の時点でGitHubのスターが20,000を超えていたと書いています。買収はこのガイドを変えません。クラウドのエンドポイントは同じで、計測のコードも、クラウド向けと自前のサーバー向けで同じです。

いくらかかるか

プラン 価格 含まれる利用量 保持期間
Hobby 無料 月50,000ユニット、ユーザー2人 30日
Core 月29米ドル 月100,000ユニット、ユーザー数の上限なし 90日
Pro 月199米ドル 月100,000ユニット、ユーザー数の上限なし 3年
セルフホスト 無料(払うのはサーバー代) プラットフォーム側の上限なし 自分で決めた期間

価格は公式ページのもので、2026年10月に確認しました。Hobbyに追加ユニットはありません。枠を使い切ると、プランはそこで尽きます。CoreとProでは、最初の100,000ユニットが含まれ、それを超えた分は段階制で、100,000あたり8米ドルから請求されます。ユニットとは、トレースのデータの点です。トレース本体と、各ステップ、各評価です。

試すならHobbyで足ります。リージョンは、プロジェクトを作るときに選びます。クラウドがデータを置くのは、米国、欧州連合、日本のいずれかで、ベースURLはその選択で変わります。

10分で最初のトレース

最短の道は、すでにOpenAIを使っているPythonのボットです。n8nやLangChain、別のツールでも考え方は同じで、手順の詳細は連携のガイドにあります。

  1. アカウントを作る。 cloud.langfuse.comでプロジェクトを作り、公開鍵と秘密鍵の両方をコピーします。
  2. パッケージを入れる。
pip install langfuse openai
  1. 環境変数を置く。 下にあるのは欧州連合のURLです。別のリージョンを選んだなら、https://us.cloud.langfuse.com か https://jp.cloud.langfuse.com を使います。
LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_BASE_URL="https://cloud.langfuse.com"
OPENAI_API_KEY="sk-..."
  1. インポートを替え、会話をまとめる。 Langfuseには、OpenAIのクライアントをそのまま置き換える部品が入っていて、呼び出しを記録します。propagate_attributes はユーザーとセッションに印を付け、UIが一つのチャットのやり取りをまとめられるようにします。すぐに終わるスクリプトでは、flush() が、プロセスが死ぬ前にデータを送り出します。
from langfuse import observe, propagate_attributes, get_client
from langfuse.openai import openai  # antes: import openai

@observe()
def responder(mensaje: str, usuario_id: str, conversacion_id: str):
    with propagate_attributes(user_id=usuario_id, session_id=conversacion_id):
        respuesta = openai.chat.completions.create(
            name="respuesta-bot",
            model="gpt-4o-mini",
            messages=[
                {"role": "system", "content": "Eres el asistente de una tienda online."},
                {"role": "user", "content": mensaje},
            ],
        )
        return respuesta.choices[0].message.content

print(responder("¿El envío es gratis?", "cliente-123", "chat-456"))
get_client().flush()
  1. パネルを開く。 Tracing に、プロンプト、返信、トークン、コスト、時間が付いたトレースが出ます。session_id があれば、そのユーザーの会話を最後まで追えます。

データを自前のサーバーに置きたいとき

Dockerでセルフホストできます。手元ではリポジトリをクローンし、docker-compose.yml のなかで CHANGEME と印の付いた秘密情報を確認してから、コンテナを起動します。

git clone https://github.com/langfuse/langfuse.git
cd langfuse
docker compose up

ドキュメントによれば、ウェブのコンテナは2分から3分ほどで http://localhost:3000 に用意できます。最初から入っている管理者ユーザーはありません。最初に開いた人が、サインアップします。本番のマシンでは、同じガイドがCPU 4コア以上とメモリ16GB以上を勧め、Composeは高可用性ではないと注意しています。始めたばかりの小さな会社なら、無料のクラウドプランのほうが、そのサーバーより安いことがほとんどです。

使う価値が出るとき

Langfuseに価値が出るのは、ボットが本物の顧客と話し始めたときからです。それより前は、ほぼ確実に要りません。

使うなら:

  • ボットが顧客の相手をしている。あるいは価格、注文、サポートを扱っている。
  • 他の会社のためにボットを作り、失敗したときに、何が起きたかを説明する必要がある。
  • AIのAPIに月数ドルより多く払っていて、何に使ったか知りたい。
  • プロンプトをよく変える。あるいは、編集する人が一人ではない。

まだ要らないなら:

  • 自分用の試作か、週末の実験にとどまる。
  • ボットの基盤が閉じていて、外のツールをつなげない。そのときは、基盤自身が出すログを見ます。

ほかの選択肢。 LangSmithとBraintrustは、近いところをカバーします。Langfuseとの実務上の違いは、オープンソースであり、データを自前のサーバーへ持っていけることです。

作るのは仕事の半分

AIボットを出すのは、午後ひとつで終わります。うまくいっているか分かることが、実験と、顧客が信頼できる製品とを分けます。

Langfuseは、モデルを賢くしません。もっと役に立つことをします。何が起きているかが見えるようにして、プロンプトも、文書も、コストも、証拠を前にして直せるようにします。入口のプランは無料です。顧客からの最初の文句のあとでは、何も見えないまま飛ばす言い訳は、もうありません。

Step-by-step guide

  1. プロジェクトを作る

    cloud.langfuse.com でサインインし、プロジェクトを作り、公開鍵と秘密鍵をコピーします。データが置かれるリージョンを選びます。

  2. パッケージを入れる

    ボットの環境で pip install langfuse openai を実行します。LangfuseがOpenAIのクライアントを置き換え、すべての呼び出しを記録します。

  3. 環境変数を設定する

    プロセスが起動する前に、LANGFUSE_PUBLIC_KEY、LANGFUSE_SECRET_KEY、LANGFUSE_BASE_URL、OPENAI_API_KEY を定義します。

  4. モデル呼び出しを包む

    langfuse.openai から openai をインポートし、user_id と session_id を渡して、会話ごとにまとまるようにします。

  5. UIでトレースを開く

    Tracingを開き、呼び出しを見つけて、プロンプト、返信、トークン、コスト、レイテンシを読みます。短いスクリプトでは、終了前に flush を呼びます。

Frequently asked questions

Langfuseとは何ですか?

Langfuseは、言語モデルを使うアプリケーションを追跡し、評価し、改善するための、MITライセンスのオープンソースのプラットフォームです。会話の各ステップを記録し、プロンプトを版管理し、コスト、レイテンシ、品質を表示します。

Langfuseは無料ですか?

Hobbyプランは無料で、カードも求めません。月50,000ユニット、ユーザー2人、保持30日が含まれます。セルフホストもできます。ソフトは無料で、払うのはサーバー代です。

ボットがPythonでなくても使えますか?

はい。このガイドがPython SDKを使うのは、それが最短だからです。LangfuseにはJavaScript SDKもあり、LangChain、Vercel AI SDK、CrewAI、n8n、OpenTelemetryとの連携もあります。

チャットのトランスクリプトと何が違いますか?

トランスクリプトが見せるのは、ユーザーの発言と返信です。トレースには、そのとき有効だったプロンプト、検索が返した文書、答えたモデル、消費したトークン数、かかった時間も残ります。

セルフホストは必須ですか?

いいえ。試すときも、多くの小さな会社でも、無料のクラウドプランで足ります。セルフホストが意味を持つのは、量、データの所在地、クラウドの請求のどれかがサーバーを正当化するときです。

関連記事

興味を持ちそうな関連コンテンツを探し続けましょう

提携

私が毎日使っていて、このコミュニティがより良い条件で使えるツールです。

アフィリエイトリンクです。あなたの支払う価格は変わりません。すべての提携を見る
トレーニングプログラム

アイデアを実際のプロジェクトに変える準備はできましたか?

Transformaは、明確さと方法論でプロジェクトを作成・実行・スケールさせることを学ぶプログラムです。

Transformaプログラムを知る