Langfuse って何?とりあえずトレースだけやってみたメモ
環境情報:
OS:macOS Sequoia 15.6.1
Python:3.13.5
langfuse?
LLMやエージェントのプロンプト、レスポンス、ツール実行、レイテンシ、コスト
といった実行ログをLangfuseに送ってあとから見返したり、比較したり、評価したりできるようにするツール、という理解です
※↑ってここで書いてますが、執筆時点ではわかっていませんでしたw
langfuseの環境
クラウド(私、こっちでやりました
サインアップ後、Langfuseの管理画面に入れます
docker
git clone https://github.com/langfuse/langfuse.git
cd langfuse
docker compose up
で、dockerコンテナが起動したら
↑で、アクセスできます、楽ちん!
langfuseを使ってみる
Organizations(組織)を作成

今回は「batton-pj」というOrganizations(組織)を作成します
Projectを作成

Organizationsを作成したら画面右上に「New project」から作成します
今回は「test-general」とします
APIキーを作成しよう!
これ、最初なんだ?って思いました
LLMのAPIキー?え、違うの?
あ、私の実行ログをlangfuseに送るのか!
「LLM/エージェントの実行トレース(プロンプト・レスポンス・ツール・レイテンシ・コスト)を langfuseに送信する」ってことね
※ここでちょっとだけ理解w
LLMやエージェントの実行を観測・記録・評価するためのプラットフォームなんだな〜って


Projectを作り終えるとProject Settings画面に遷移します
ここからCreate new API keysから作成します
※作成完了後、Secret KeyとPublic Keyと.envの内容をコピってメモしておきましょう!
何ができるの?・・・とりあえず、トレースしてみよ
STEP1. Langfuseプロジェクト&APIキー準備
準備済み
STEP2. ローカル環境にSDKを入れる
お好きなディレクトリに移動
python3 -m venv .venv # 仮想環境設定
source ./.venv/bin/activate # 仮想環境構築
pip install langfuse openai python-dotenv # 必要なモジュールをインストール
STEP3. .envを作成
touch .env
vi .env
LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_BASE_URL="https://us.cloud.langfuse.com"
LOCAL_LLM_API_KEY="sk-..."
STEP4. コード作成
※今回はOpenAI互換のAPIのローカルLLMをトレースしてみおうと思います
OpenAIのAPI発行についてはChatGPTに相談するとすぐでしたw
コマンド:
touch app.py
vi app.py
コード:
# app.py
import os
from dotenv import load_dotenv
from langfuse.openai import OpenAI
load_dotenv()
client = OpenAI(
api_key=os.environ["LOCAL_LLM_API_KEY"],
)
def main():
resp = client.chat.completions.create(
model="gpt-4o-mini", # 好きなモデル
messages=[
{"role": "user", "content": "Langfuse経由でのテストです。自己紹介して。"},
],
name="openai-langfuse-test",
metadata={"env": "local", "feature": "batton-pj"},
)
print(resp.choices[0].message.content)
if __name__ == "__main__":
# .env読めてるかチェック
print("LANGFUSE_PUBLIC_KEY =", os.environ.get("LANGFUSE_PUBLIC_KEY"))
main()
STEP6. 実行!(この瞬間が一番好き!、エラー何なるか!(9割)
ターミナルで以下を実行
python3 app.py
実行結果:
LANGFUSE_PUBLIC_KEY = pk-...
こんにちは!私はAIアシスタントで、さまざまな質問に答えたり、情報を提供したりするために設計されています。多くのトピックについて知識がありますので、何か聞きたいことがあればお気軽にどうぞ!あなたのサポートができることを楽しみにしています。
お!動いたw
一発でうまくいくのってちょっと、逆に疑いがw
STEP7. langfuseでトレースできてるか?
できてた(Good


なるほど!
※id系が映ってしまわないように気を使うとスクショがそっか?ってなる位しょぼいデータしかないのは察してくださいw
とりあえずトレースして、見て、比較していこうと思います!
またタイミングがあればA/Bテストとかもできるそうなのでやってみたいと思います!
Discussion