Langfuse: インストールと設定 (お試し時のメモ)
- ubuntu server 24 を使用
- docker を利用
予備知識
-
以下 6個のコンテナが起動される
- langfuse-web
- langfuse-worker
- redis
- clickhouse
- postgres
- minio
-
ポート番号の競合に注意する必要がある
- 特に Dify と一緒に入れると競合が多い
- PostgreSQL:5432, redis: , langfuse-web:3000
- 特に Dify と一緒に入れると競合が多い
インストール
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 を修正