What is Arize Phoenix?
Arize Phoenix is an open-source AI observability platform built for evaluating, troubleshooting, and experimenting with LLM applications. Developed by Arize AI, the company behind enterprise ML observability, Phoenix brings production-grade monitoring capabilities to the open-source community.
Phoenix stands out with its powerful embedding visualization, RAG analysis, and LLM evaluation capabilities. It runs locally with a single command and provides an intuitive notebook-style interface for interactive exploration.
Core Features
OpenTelemetry-Native Tracing
CoreCapture complete execution traces using OpenInference, an open standard built on OpenTelemetry. See every LLM call, retrieval step, and tool invocation with full context.
RAG Analysis & Debugging
SpecializedDeep dive into your retrieval pipeline. Visualize what documents were retrieved, their relevance scores, and how they influenced the final response.
Embedding Visualization
UniqueExplore your embedding space with interactive 3D UMAP projections. Identify clusters, detect drift, and understand how your data is distributed in vector space.
LLM Evaluation Suite
15+ EvalsReady-to-use evaluation templates for hallucination detection, QA correctness, summarization quality, toxicity, and custom metrics using LLM-as-a-Judge.
Experiments & Datasets
IterativeRun structured experiments with versioned datasets. Compare prompts, models, and configurations side-by-side with statistical significance testing.
Quick Start
# Install Phoenix
pip install arize-phoenix
# Launch the UI (opens at http://localhost:6006)
python -m phoenix.server.main serve
# Or launch in a notebook
import phoenix as px
px.launch_app()
import phoenix as px
from phoenix.otel import register
from openinference.instrumentation.openai import OpenAIInstrumentor
from openai import OpenAI
# Launch Phoenix UI
px.launch_app()
# Register tracer with Phoenix
tracer_provider = register(
project_name="my-llm-app",
endpoint="http://localhost:6006/v1/traces"
)
# Instrument OpenAI (auto-captures all calls)
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
# Now all OpenAI calls are traced automatically
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello!"}]
)
# View traces at http://localhost:6006
print(response.choices[0].message.content)
LangChain Integration
import phoenix as px
from phoenix.otel import register
from openinference.instrumentation.langchain import LangChainInstrumentor
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.chains import RetrievalQA
# Launch Phoenix and register
px.launch_app()
tracer_provider = register(project_name="rag-app")
# Auto-instrument LangChain
LangChainInstrumentor().instrument(tracer_provider=tracer_provider)
# Build RAG pipeline (all steps traced)
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_texts(
texts=["Phoenix is an observability tool"],
embedding=embeddings
)
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4"),
retriever=vectorstore.as_retriever()
)
# Query (traces show retrieval + LLM call)
result = qa_chain.invoke("What is Phoenix?")
LLM Evaluation
from phoenix.evals import (
HallucinationEvaluator,
QAEvaluator,
OpenAIModel,
run_evals
)
import pandas as pd
# Initialize evaluator model
eval_model = OpenAIModel(model="gpt-4")
# Create evaluators
hallucination_eval = HallucinationEvaluator(eval_model)
qa_eval = QAEvaluator(eval_model)
# Sample data (could be from traces)
df = pd.DataFrame({
"input": ["What is the capital of France?"],
"output": ["The capital of France is Paris."],
"reference": ["Paris is the capital of France."]
})
# Run evaluations
hallucination_results = run_evals(
dataframe=df,
evaluators=[hallucination_eval],
provide_explanation=True
)
print(f"Hallucination Score: {hallucination_results}")
Built-in Evaluators
| Evaluator | Purpose | Input Required |
|---|---|---|
| HallucinationEvaluator | Detect factual inconsistencies | output, reference |
| QAEvaluator | Assess response correctness | input, output, reference |
| RelevanceEvaluator | Check retrieval relevance | query, document |
| ToxicityEvaluator | Detect harmful content | output |
| SummarizationEvaluator | Assess summary quality | input, output |
| SQLEvaluator | Validate SQL generation | query, generated_sql |
Framework Integrations
Deployment Options
Local
Run locally with a single pip install. Perfect for development and experimentation.
Docker
Self-host with Docker for team access and production workloads.
Arize Cloud
Enterprise-grade managed service with advanced features and support.
Phoenix vs Langfuse
| Feature | Arize Phoenix | Langfuse |
|---|---|---|
| Embedding Visualization | Advanced 3D UMAP | Limited |
| Prompt Management | Basic | Advanced |
| RAG Analysis | Deep insights | Basic |
| Notebook Integration | Native | API only |
| Best For | Data scientists, RAG tuning | Production monitoring |
Resources
Related Topics
Test Your Knowledge
Score 8/10 or higher to pass
You need to be logged in to take this quiz.
Login to Continue