Langfuse logoLLM Observability

Langfuse

Công cụ observability cho LLM, theo dõi traces, chi phí và chất lượng của ứng dụng AI.

Ghi chú review

Nên chạy cùng PostgreSQL riêng. Tích hợp bằng SDK vào ứng dụng AI để gửi traces.

Hướng dẫn deploy

Chạy bằng Docker Compose với PostgreSQL. Tích hợp SDK vào ứng dụng để bắt đầu thu thập traces.

  1. Tạo file docker-compose với Langfuse và PostgreSQL.
  2. Cấu hình biến môi trường: database, secret key và domain.
  3. Chạy Docker Compose và truy cập web UI.
  4. Tạo project và lấy API keys.
  5. Tích hợp Langfuse SDK vào ứng dụng AI để gửi traces.
Backup:Backup database PostgreSQL chứa toàn bộ traces và project settings.

Copy để chạy trên server

Dùng từng block riêng: lưu compose trước, hoặc copy script bash để tạo file và chạy container.

docker-compose.ymlyaml
services:
  langfuse:
    image: langfuse/langfuse:latest
    container_name: langfuse
    environment:
      DATABASE_URL: "postgresql://langfuse:CHANGEME_db_password@postgres:5432/langfuse" # CHANGE THIS
      NEXTAUTH_URL: "http://SERVER_IP:3000"
      NEXTAUTH_SECRET: "change-me-generate-with-openssl-rand-base64-32" # CHANGE THIS
      SALT: "change-me-generate-with-openssl-rand-base64-32" # CHANGE THIS
    ports:
      - "3000:3000"
    depends_on:
      - postgres
    restart: unless-stopped

  postgres:
    image: postgres:16-alpine
    container_name: langfuse_postgres
    environment:
      POSTGRES_USER: langfuse
      POSTGRES_PASSWORD: CHANGEME_db_password # CHANGE THIS
      POSTGRES_DB: langfuse
    volumes:
      - ./postgres:/var/lib/postgresql/data
    restart: unless-stopped
setup.shbash
#!/usr/bin/env bash
set -euo pipefail

sudo mkdir -p /opt/langfuse
sudo chown "$USER":"$USER" /opt/langfuse
cd /opt/langfuse

cat > docker-compose.yml <<'COMPOSE'
services:
  langfuse:
    image: langfuse/langfuse:latest
    container_name: langfuse
    environment:
      DATABASE_URL: "postgresql://langfuse:CHANGEME_db_password@postgres:5432/langfuse" # CHANGE THIS
      NEXTAUTH_URL: "http://SERVER_IP:3000"
      NEXTAUTH_SECRET: "change-me-generate-with-openssl-rand-base64-32" # CHANGE THIS
      SALT: "change-me-generate-with-openssl-rand-base64-32" # CHANGE THIS
    ports:
      - "3000:3000"
    depends_on:
      - postgres
    restart: unless-stopped

  postgres:
    image: postgres:16-alpine
    container_name: langfuse_postgres
    environment:
      POSTGRES_USER: langfuse
      POSTGRES_PASSWORD: CHANGEME_db_password # CHANGE THIS
      POSTGRES_DB: langfuse
    volumes:
      - ./postgres:/var/lib/postgresql/data
    restart: unless-stopped
COMPOSE

docker compose up -d
echo "Langfuse is running on http://SERVER_IP:3000"

Stack

TypeScriptPostgreSQLDocker