Tutorial Arize Phoenix: Observabilitas dan Evaluasi LLM yang Komprehensif
Arize Phoenix adalah platform open-source untuk observabilitas, evaluasi, dan tracing aplikasi LLM. Dengan Phoenix, Anda dapat melacak setiap langkah eksekusi pipeline AI, mengevaluasi kualitas respons model, dan mendeteksi masalah performa secara real-time. Tutorial ini akan memandu Anda dari instalasi hingga penggunaan lanjutan Phoenix untuk membangun aplikasi AI yang andal.
Mengapa Arize Phoenix?
Membangun aplikasi berbasis LLM bukan hanya soal memanggil API model. Tantangan sebenarnya muncul setelah deployment: bagaimana memastikan respons model tetap berkualitas, mengidentifikasi query yang gagal, dan mengoptimalkan biaya token. Phoenix menyediakan tooling lengkap untuk menjawab tantangan ini:
- Tracing: Melacak setiap langkah eksekusi dari input hingga output, termasuk retrieval, reranking, dan generasi
- Evaluation: Menilai kualitas respons menggunakan LLM-as-judge atau metrik custom
- Dataset Management: Mengelola dataset evaluasi untuk regression testing
- Experiment Tracking: Membandingkan performa antar versi prompt atau model
Phoenix terintegrasi dengan OpenTelemetry, sehingga traces yang dihasilkan mengikuti standar industri dan dapat diekspor ke backend observabilitas lainnya.
Instalasi
Instalasi Dasar
pip install arize-phoenix
Instalasi dengan Dependensi Evaluasi
pip install "arize-phoenix[evals]"
Instalasi dengan Instrumentasi OpenAI
pip install arize-phoenix openinference-instrumentation-openai openai
Instalasi Lengkap untuk Tutorial Ini
pip install "arize-phoenix[evals]" \
openinference-instrumentation-openai \
openinference-instrumentation-langchain \
openinference-instrumentation-llamaindex \
openai langchain langchain-openai
Menjalankan Phoenix Server
Phoenix menyediakan UI dashboard yang berjalan sebagai server lokal:
import phoenix as px
session = px.launchapp()
print(f"Phoenix UI: {session.url}")
Server akan berjalan di http://localhost:6006 secara default. Anda juga bisa menjalankannya via command line:
phoenix serve
Basic Usage: Tracing Aplikasi OpenAI
Setup Instrumentasi
Langkah pertama adalah menghubungkan Phoenix dengan client OpenAI agar setiap panggilan API otomatis tercatat:
import phoenix as px
from openinference.instrumentation.openai import OpenAIInstrumentor
from phoenix.otel import register
session = px.launchapp()
tracerprovider = register(projectname="my-llm-app")
OpenAIInstrumentor().instrument(tracerprovider=tracerprovider)
Melakukan Panggilan yang Di-trace
Setelah instrumentasi aktif, setiap panggilan OpenAI akan otomatis di-trace:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Kamu adalah asisten yang membantu."},
{"role": "user", "content": "Jelaskan apa itu machine learning dalam 3 kalimat."}
],
temperature=0.7,
maxtokens=200
)
print(response.choices[0].message.content)
Buka Phoenix UI di browser, dan Anda akan melihat trace lengkap termasuk:
- Input messages
- Model yang digunakan
- Token count (input dan output)
- Latency
- Response content
Menambahkan Metadata ke Trace
Anda bisa menambahkan konteks tambahan menggunakan OpenTelemetry attributes:
from opentelemetry import trace
tracer = trace.gettracer(name)
with tracer.startascurrentspan("customer-support-query") as span:
span.setattribute("user.id", "user-123")
span.setattribute("session.id", "session-456")
span.setattribute("query.category", "billing")
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[