| description | AI Observability and Evaluation |
|---|
Phoenix is an open-source observability library designed for experimentation, evaluation, and troubleshooting. It allows AI Engineers and Data Scientists to quickly visualize their data, evaluate performance, track down issues, and export data to improve.
Phoenix is built by Arize AI, the company behind the industry-leading AI observability platform, and a set of core contributors.
{% tabs %} {% tab title="pip" %} In your Python, Jupyter, or Colab environment, run the following command to install.
pip install arize-phoenixFor full details on how to run phoenix in various environments such as Databricks, consult our environments guide. {% endtab %}
{% tab title="conda" %}
conda install -c conda-forge arize-phoenix[evals]{% endtab %}
{% tab title="Container" %} Phoenix can also run via a container. The image can be found at:
{% embed url="https://hub.docker.com/r/arizephoenix/phoenix" %} Images for phoenix are published to dockerhub {% endembed %}
Checkout the environments section and deployment guide for details. {% endtab %}
{% tab title="npm" %} The Phoenix server can be run as a #containerand be interacted with using the phoenix-client and OpenTelelemetry. See #packages below. {% endtab %} {% endtabs %}
Phoenix works with OpenTelemetry and OpenInference instrumentation. If you are looking to deploy phoenix as a service rather than a library, see deployment
{% tabs %} {% tab title="Prompt Engineering" %} {% embed url="https://storage.googleapis.com/arize-phoenix-assets/assets/gifs/prompt_playground.mp4" %} Phoenix Prompt Playground {% endembed %}
Phoenix offers tools to streamline your prompt engineering workflow.
- Prompt Management - Create, store, modify, and deploy prompts for interacting with LLMs
- Prompt Playground - Play with prompts, models, invocation parameters and track your progress via tracing and experiments
- Span Replay - Replay the invocation of an LLM. Whether it's an LLM step in an LLM workflow or a router query, you can step into the LLM invocation and see if any modifications to the invocation would have yielded a better outcome.
- Prompts in Code - Phoenix offers client SDKs to keep your prompts in sync across different applications and environments. {% endtab %}
{% tab title="Tracing" %} {% embed url="https://storage.googleapis.com/arize-phoenix-assets/assets/gifs/tracing.mp4" %} Tracing in Phoenix {% endembed %}
Tracing is a helpful tool for understanding how your LLM application works. Phoenix's open-source library offers comprehensive tracing capabilities that are not tied to any specific LLM vendor or framework.
Phoenix accepts traces over the OpenTelemetry protocol (OTLP) and supports first-class instrumentation for a variety of frameworks (LlamaIndex, LangChain, DSPy), SDKs (OpenAI, Bedrock, Mistral, Vertex), and Languages. (Python, Javascript, etc.) {% endtab %}
{% tab title="Evaluation" %} {% embed url="https://storage.googleapis.com/arize-phoenix-assets/assets/gifs/evals.mp4" %} Evals in the Phoenix UI {% endembed %}
Phoenix is built to help you evaluate your application and understand their true performance. To accomplish this, Phoenix includes:
- A standalone library to run LLM-based evaluations on your own datasets. This can be used either with the Phoenix library, or independently over your own data.
- Direct integration of LLM-based and code-based evaluators into the Phoenix dashboard. Phoenix is built to be agnostic, and so these evals can be generated using Phoenix's library, or an external library like Ragas, Deepeval, or Cleanlab.
- Human annotation capabilities to attach human ground truth labels to your data in Phoenix. {% endtab %}
{% tab title="Datasets & Experiments" %} {% embed url="https://storage.googleapis.com/arize-phoenix-assets/assets/gifs/experiments.mp4" %} Experiments in Phoenix {% endembed %}
Phoenix Datasets & Experiments let you test different versions of your application, store relevant traces for evaluation and analysis, and build robust evaluations into your development process.
- Run Experiments to test and compare different iterations of your application
- Collect relevant traces into a Dataset, or directly upload Datasets from code / CSV
- Run Datasets through Prompt Playground, export them in fine-tuning format, or attach them to an Experiment. {% endtab %} {% endtabs %}
Running Phoenix for the first time? Select a quickstart below.
| Tracing | llm-traces-1.md | Screenshot 2023-09-27 at 1.51.45 PM.png |
| Prompt Playground | quickstart-prompts.md | prompt_playground.png |
| Datasets and Experiments | quickstart-datasets.md | experiments_preview.png |
| Evaluation | evals.md | evals.png |
| Inferences | phoenix-inferences.md | Screenshot 2023-09-27 at 1.53.06 PM.png |
The main Phoenix package is arize-phoenix. We offer several packages below for specific use cases.
{% tabs %} {% tab title="Python" %}
| Package | What It's For | Pypi |
|---|---|---|
| arize-phoenix | Running and connecting to the Phoenix client. Used: |
|
| arize-phoenix-otel | Sending OpenTelemetry traces to a Phoenix instance | |
| arize-phoenix-evals | Running evaluations in your environment | |
| openinference-semantic-conventions | Our semantic layer to add LLM telemetry to OpenTelemetry | |
| openinference-instrumentation-xxxx | Automatically instrumenting popular packages. | See integrations-tracing |
| {% endtab %} |
{% tab title="TypeScript" %}
| Package | What It's For | npm |
|---|---|---|
| @arizeai/phoenix-client | Running and connecting to the Phoenix server. |
coming soon |
| @arizeai/openinference-semantic-conventions | Our semantic layer to add LLM telemetry to OpenTelemetry | |
| @aizeai/openinference-instrumentation-xxxx | Automatically instrumenting popular packages. | See integrations-tracing |
| {% endtab %} | ||
| {% endtabs %} |
Check out a comprehensive list of example notebooks for LLM Traces, Evals, RAG Analysis, and more.
Join the Phoenix Slack community to ask questions, share findings, provide feedback, and connect with other developers.