Langfuse: インストールと設定 (お試し時のメモ)

  • ubuntu server 24 を使用
  • docker を利用

予備知識

  • 以下 6個のコンテナが起動される

    • langfuse-web
    • langfuse-worker
    • redis
    • clickhouse
    • postgres
    • minio
  • ポート番号の競合に注意する必要がある

    • 特に Dify と一緒に入れると競合が多い
      • PostgreSQL:5432, redis: , langfuse-web:3000

インストール

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

まずは、そのまま実験 Windows 側からブラウザで接続できるが、ユーザ作成後 http://localhost:3000/ に転送される 再度 IP アドレスで接続に行けば、アクセスは可能。

API キーを生成

from langfuse import Langfuse

langfuse = Langfuse(
  secret_key="sk-lf-dd086deb-cd7a-4b64-a171-ddd7df3c090f",
  public_key="pk-lf-b83c6c89-693b-4088-ad04-31b5d1da1aea",
  host="http://192.168.3.152:3000"
)

Langchain

from langfuse import Langfuse
from langfuse.langchain import CallbackHandler

langfuse = Langfuse(
    public_key="pk-lf-b83c6c89-693b-4088-ad04-31b5d1da1aea",
    secret_key="sk-lf-dd086deb-cd7a-4b64-a171-ddd7df3c090f",
    host="http://192.168.3.152:3000"
)

langfuse_handler = CallbackHandler()

# <Your Langchain code here>
 
# Add handler to run/invoke/call/chat
chain.invoke({"input": "<user_input>"}, config={"callbacks": [langfuse_handler]})

curl http://192.168.3.152:3000/api/public/ingestion
–request POST
–header ‘Content-Type: application/json’
–data ‘{ “batch”: [ { “id”: “abcdef-1234-5678-90ab”, “timestamp”: “2022-01-01T00:00:00.000Z”, “type”: “trace-create”, “body”: { “id”: “abcdef-1234-5678-90ab”, “timestamp”: “2022-01-01T00:00:00.000Z”, “environment”: “production”, “name”: “My Trace”, “userId”: “1234-5678-90ab-cdef”, “input”: “My input”, “output”: “My output”, “sessionId”: “1234-5678-90ab-cdef”, “release”: “1.0.0”, “version”: “1.0.0”, “metadata”: “My metadata”, “tags”: [ “tag1”, “tag2” ], “public”: true } } ] }’

cp .env.prod.example .env

.env や docker-compose.yml を修正