> ## 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.

# DeepSeek Tracing

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

[DeepSeek](https://www.deepseek.com/) provides reasoning and chat models through an API format compatible with OpenAI. Set the OpenAI client's `base_url` to `https://api.deepseek.com` and Phoenix captures each call through [`openinference-instrumentation-openai`](https://github.com/Arize-ai/openinference/tree/main/python/instrumentation/openinference-instrumentation-openai).

> [!NOTE]
>
> This page instruments your application's OpenAI SDK calls to DeepSeek. It does not require a separate DeepSeek-specific OpenInference instrumentor.

## Install

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

## Setup

Add your DeepSeek API key from the [DeepSeek platform](https://platform.deepseek.com/), along with your Phoenix connection details, as environment variables:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
export DEEPSEEK_API_KEY="<your-deepseek-api-key>"
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 DeepSeek

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

client = openai.OpenAI(
    base_url="https://api.deepseek.com",
    api_key=os.environ["DEEPSEEK_API_KEY"],
)

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {
            "role": "user",
            "content": "Explain how tracing helps evaluate an AI agent.",
        },
    ],
)
print(response.choices[0].message.content)
```

## Observe

Now that you have tracing set up, all invocations of the OpenAI client pointed at DeepSeek 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
* **DeepSeek 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 DeepSeek**: Use your DeepSeek API key, not your OpenAI key
* **Model not found**: Confirm the model name is available in your DeepSeek account and replace `deepseek-v4-pro` if needed
* **Base URL**: Ensure you're using `https://api.deepseek.com` as the base URL

## Resources

> **[DeepSeek API Documentation](https://api-docs.deepseek.com/)**
>
> DeepSeek API reference

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