# Observability for DeepSeek with Opik

> Start here to integrate Opik into your DeepSeek-based genai application for end-to-end LLM observability, unit testing, and optimization.

Deepseek is an Open-Source LLM model that rivals o1 from OpenAI. You can learn more about DeepSeek on [Github](https://github.com/deepseek-ai/DeepSeek-R1) or
on [deepseek.com](https://www.deepseek.com/).

In this guide, we will showcase how to track DeepSeek calls using Opik. As DeepSeek is open-source, there are many way to run and call the model. We will focus on how to integrate Opik with the following hosting options:

1. DeepSeek API
2. Fireworks AI API
3. Together AI API

## Getting started

### Configuring your hosting provider

Before you can start tracking DeepSeek calls, you need to get the API key from your hosting provider.

<Tabs>
  <Tab value="DeepSeek API" title="DeepSeek API">
    In order to use the DeepSeek API, you will need to have an API key. You can register for an account on [DeepSeek.com](https://chat.deepseek.com/sign_up).
    Once you have signed up, you can register for an API key.
  </Tab>

  <Tab value="Fireworks AI API" title="Fireworks AI API">
    You can log into Fireworks AI on [fireworks.ai](https://fireworks.ai/). You can then access your API key on the [API keys](https://fireworks.ai/account/api-keys) page.
  </Tab>

  <Tab value="Together AI API" title="Together AI API">
    You can log into Together AI on [together.ai](https://together.ai/). You can then access your API key on the [API keys](https://api.together.ai/settings/api-keys) page.
  </Tab>
</Tabs>

### Configuring Opik

```bash
pip install --upgrade --quiet opik

opik configure
```

<Tip>
  Opik is fully open-source and can be run locally or through the Opik Cloud platform. You can learn more about hosting
  Opik on your own infrastructure in the [self-hosting guide](/self-host/overview).
</Tip>

## Tracking DeepSeek calls

The easiest way to call DeepSeek with Opik is to use the OpenAI Python SDK and the `track_openai` decorator. This approach is compatible with the DeepSeek API, Fireworks AI API and Together AI API:

<Tabs>
  <Tab value="DeepSeek API" title="DeepSeek API">
    ```python
    from opik.integrations.openai import track_openai
    from openai import OpenAI

    # Create the OpenAI client that points to DeepSeek API
    client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

    # Wrap your OpenAI client to track all calls to Opik
    client = track_openai(client)

    # Call the API
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": "You are a helpful assistant"},
            {"role": "user", "content": "Hello"},
        ],
        stream=False
    )

    print(response.choices[0].message.content)
    ```
  </Tab>

  <Tab value="Fireworks AI API" title="Fireworks AI API">
    ```python
    from opik.integrations.openai import track_openai
    from openai import OpenAI

    # Create the OpenAI client that points to DeepSeek API
    client = OpenAI(api_key="<Fireworks AI API Key>", base_url="https://api.fireworks.ai/inference/v1")

    # Wrap your OpenAI client to track all calls to Opik
    client = track_openai(client)

    # Call the API
    response = client.chat.completions.create(
        model="accounts/fireworks/models/deepseek-v3",
        messages=[
            {"role": "system", "content": "You are a helpful assistant"},
            {"role": "user", "content": "Hello"},
        ],
        stream=False
    )

    print(response.choices[0].message.content)
    ```
  </Tab>

  <Tab value="Together AI API" title="Together AI API">
    ```python
    from opik.integrations.openai import track_openai
    from openai import OpenAI

    # Create the OpenAI client that points to Together AI API
    client = OpenAI(api_key="<Together AI API Key>", base_url="https://api.together.xyz/v1")

    # Wrap your OpenAI client to track all calls to Opik
    client = track_openai(client)

    # Call the API
    response = client.chat.completions.create(
        model="deepseek-ai/DeepSeek-R1",
        messages=[
            {"role": "system", "content": "You are a helpful assistant"},
            {"role": "user", "content": "Hello"},
        ],
        stream=False
    )

    print(response.choices[0].message.content)
    ```
  </Tab>
</Tabs>