LangFuse: Platform Open-Source untuk Observability Aplikasi LLM
Seiring semakin banyaknya perusahaan yang mengadopsi Large Language Model (LLM) dalam aplikasi produksi, kebutuhan akan observability menjadi sangat krusial. Bagaimana Anda mengetahui berapa biaya setiap request? Bagaimana Anda melacak performa prompt yang berbeda? Bagaimana Anda mengevaluasi kualitas output LLM secara sistematis?
LangFuse hadir sebagai solusi open-source untuk menjawab semua pertanyaan tersebut. LangFuse menyediakan platform observability lengkap untuk tracing, monitoring, evaluasi, dan prompt management aplikasi LLM Anda.Apa Itu LangFuse?
LangFuse adalah platform open-source LLM engineering yang membantu tim development untuk:
- Tracing: Melacak setiap langkah eksekusi aplikasi LLM, dari input hingga output
- Monitoring: Memantau latency, cost, dan error rate secara real-time
- Evaluasi: Memberikan skor pada output LLM baik secara manual maupun otomatis
- Prompt Management: Mengelola versi prompt secara terpusat
- Analytics: Dashboard untuk menganalisis penggunaan dan performa
LangFuse mendukung berbagai LLM provider (OpenAI, Anthropic, Azure, dll.) dan terintegrasi dengan framework populer seperti LangChain, LlamaIndex, dan Haystack.
Opsi Deployment
1. LangFuse Cloud (Managed)
Cara paling mudah untuk memulai adalah menggunakan LangFuse Cloud di cloud.langfuse.com.
# Tidak perlu instalasi - cukup sign up dan dapatkan API keys
LANGFUSEPUBLICKEY=pk-lf-...
LANGFUSESECRETKEY=sk-lf-...
LANGFUSEHOST=https://cloud.langfuse.com
2. Self-Hosted dengan Docker
Untuk kontrol penuh atas data, Anda bisa deploy LangFuse sendiri:
# docker-compose.yml
version: '3.8'
services:
langfuse:
image: langfuse/langfuse:2
ports:
- "3000:3000"
environment:
- DATABASEURL=postgresql://postgres:postgres@db:5432/langfuse
- NEXTAUTHSECRET=mysecret
- SALT=mysalt
- NEXTAUTHURL=http://localhost:3000
dependson:
- db
db:
image: postgres:15
environment:
- POSTGRES
USER=postgres
POSTGRESPASSWORD=postgres
POSTGRESDB=langfuse
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
# Jalankan LangFuse
docker-compose up -d
Akses di http://localhost:3000
Buat akun admin pertama melalui UI
Instalasi SDK Python
pip install langfuse
Konfigurasi Environment
import os
os.environ["LANGFUSEPUBLICKEY"] = "pk-lf-..."
os.environ["LANGFUSESECRETKEY"] = "sk-lf-..."
os.environ["LANGFUSEHOST"] = "https://cloud.langfuse.com" # atau URL self-hosted
Inisialisasi Client
from langfuse import Langfuse
langfuse = Langfuse(
publickey="pk-lf-...",
secretkey="sk-lf-...",
host="https://cloud.langfuse.com"
)
Verifikasi koneksi
langfuse.authcheck()
print("LangFuse terhubung!")
Tracing: Melacak Eksekusi Aplikasi LLM
Tracing adalah fitur inti LangFuse. Setiap interaksi dengan aplikasi LLM Anda direkam sebagai trace yang terdiri dari beberapa komponen:
Konsep Dasar Tracing
- Trace: Unit teratas yang merepresentasikan satu eksekusi end-to-end
- Span: Sub-unit yang merepresentasikan satu langkah dalam trace (misal: retrieval, preprocessing)
- Generation: Span khusus untuk panggilan ke LLM, otomatis mencatat token usage dan cost
Membuat Trace Sederhana
from langfuse import Langfuse
langfuse = Langfuse()
Membuat trace baru
trace = langfuse.trace(
name="customer-support-chat",
userid="user-123",
metadata={"session": "abc-456"},
tags=["production", "customer-support"]
)
Menambahkan span untuk langkah preprocessing
span = trace.span(