> ## Documentation Index
> Fetch the complete documentation index at: https://arizeai-433a7140.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fireworks AI Tracing

> Phoenix provides auto-instrumentation for Fireworks AI through the OpenAI Python library, since Fireworks AI exposes an OpenAI-compatible API endpoint.

[Fireworks AI](https://fireworks.ai/) provides fast model inference through an OpenAI-compatible API. Set the OpenAI client's `base_url` to Fireworks and Phoenix captures each completion through [`openinference-instrumentation-openai`](https://github.com/Arize-ai/openinference/tree/main/python/instrumentation/openinference-instrumentation-openai).

> [!NOTE]
>
> This page uses Fireworks' OpenAI-compatible API. There is no separate Fireworks-specific OpenInference instrumentor required.

## Install

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
pip install arize-phoenix-otel openinference-instrumentation-openai openai
```

## Setup

Add your Fireworks AI API key and the model you want to call, along with your Phoenix connection details, as environment variables:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
export FIREWORKS_API_KEY="<your-fireworks-api-key>"
export FIREWORKS_MODEL="<your-fireworks-model-id>"
export PHOENIX_COLLECTOR_ENDPOINT="<your-phoenix-collector-endpoint>"  # use http://localhost:6006 for local Phoenix
export PHOENIX_API_KEY="<your-phoenix-api-key>"  # required for Phoenix Cloud or authenticated Phoenix
```

Connect your application to Phoenix with the `register` function:

from phoenix.otel import register

&#x20; \# configure the Phoenix tracer
&#x20; tracer\_provider = register(
&#x20; project\_name="my-llm-app", # Default is 'default'
&#x20; auto\_instrument=True # Auto-instrument your app based on installed OI dependencies
&#x20; )

## Run Fireworks AI

```python theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
import os
import openai

client = openai.OpenAI(
    base_url="https://api.fireworks.ai/inference/v1",
    api_key=os.environ["FIREWORKS_API_KEY"],
)

response = client.chat.completions.create(
    model=os.environ["FIREWORKS_MODEL"],
    messages=[
        {
            "role": "user",
            "content": "Name two signals an LLM trace should capture.",
        },
    ],
)
print(response.choices[0].message.content)
```

## Observe

Now that you have tracing set up, all invocations of the OpenAI client pointed at Fireworks AI will be streamed to your running Phoenix for observability and evaluation. Each request appears as a `ChatCompletion` LLM span with the prompt, response, model name, token usage, and latency.

## Common Issues

* **No traces in Phoenix**: Confirm `PHOENIX_COLLECTOR_ENDPOINT` (and `PHOENIX_API_KEY` if your Phoenix requires one) is set in the same shell that runs your app
* **Fireworks AI spans missing**: Call `register()` before you create the OpenAI client, and make sure `openinference-instrumentation-openai` is installed so `auto_instrument=True` picks it up
* **`401` from Fireworks**: Use your Fireworks API key, not your OpenAI key
* **Model not found**: Confirm `FIREWORKS_MODEL` matches a model identifier from the Fireworks model catalog
* **Base URL**: Ensure you're using `https://api.fireworks.ai/inference/v1` as the base URL

## Resources

> **[Fireworks OpenAI Compatibility](https://docs.fireworks.ai/tools-sdks/openai-compatibility)**
>
> Fireworks OpenAI-compatible API docs

> **[OpenInference OpenAI Instrumentation](https://github.com/Arize-ai/openinference/tree/main/python/instrumentation/openinference-instrumentation-openai)**
>
> OpenAI instrumentation package
