# LiteLLM (/es/docs/guides/litellm)

Llama a los modelos de cheapaimodel desde el SDK de Python de LiteLLM, o sírvelos a través de LiteLLM Proxy.



LiteLLM se conecta a servicios compatibles con OpenAI mediante su prefijo de modelo `openai/`. Úsalo directamente desde Python, o agrega los modelos de cheapaimodel a la configuración de un LiteLLM Proxy.

|               | Parámetro de LiteLLM | Valor                                                                                                 |
| ------------- | -------------------- | ----------------------------------------------------------------------------------------------------- |
| Base URL      | `api_base`           | `https://api.cheapaimodel.ai/v1`                                                                      |
| Clave de API  | `api_key`            | La clave que creaste en la página [Claves de API](https://console.cheapaimodel.ai/keys) de la consola |
| ID del modelo | `model`              | `openai/deepseek-v4-1-flash`: `openai/` más cualquier ID del [catálogo](/es/models)                   |

## Configuración [#set-it-up]

<Tabs items="[&#x22;Python SDK&#x22;, &#x22;Proxy&#x22;]">
  <Tab value="Python SDK">
    ```bash title="Terminal"
    pip install litellm
    ```

    ```python title="app.py"
    import os
    import litellm

    response = litellm.completion(
        model="openai/deepseek-v4-1-flash",
        api_base="https://api.cheapaimodel.ai/v1",
        api_key=os.environ["CHEAPAIMODEL_API_KEY"],
        messages=[{"role": "user", "content": "Explain recursion in one sentence."}],
    )
    print(response.choices[0].message.content)

    # Streaming
    stream = litellm.completion(
        model="openai/deepseek-v4-1-flash",
        api_base="https://api.cheapaimodel.ai/v1",
        api_key=os.environ["CHEAPAIMODEL_API_KEY"],
        messages=[{"role": "user", "content": "Write a haiku about rivers."}],
        stream=True,
    )
    for chunk in stream:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
    ```

    LiteLLM quita el prefijo `openai/` antes de enviar, así que la solicitud llega a `/v1/chat/completions` con `"model": "deepseek-v4-1-flash"`.
  </Tab>

  <Tab value="Proxy">
    ```bash title="Terminal"
    pip install 'litellm[proxy]'
    ```

    ```yaml title="config.yaml"
    model_list:
      - model_name: deepseek-v4-1-flash
        litellm_params:
          model: openai/deepseek-v4-1-flash
          api_base: https://api.cheapaimodel.ai/v1
          api_key: os.environ/CHEAPAIMODEL_API_KEY

    general_settings:
      master_key: os.environ/LITELLM_MASTER_KEY
    ```

    Agrega una entrada por modelo. `model_name` es el nombre que tus clientes envían al proxy. Las versiones actuales de LiteLLM no inician el proxy sin una master key: los clientes se autentican con ella, y el proxy llama a cheapaimodel con tu clave de cheapaimodel.

    ```bash title="Terminal"
    export CHEAPAIMODEL_API_KEY="sk-..."
    export LITELLM_MASTER_KEY="sk-$(openssl rand -hex 32)"
    litellm --config config.yaml
    ```

    ```bash title="Terminal"
    curl http://localhost:4000/v1/chat/completions \
      -H "Authorization: Bearer $LITELLM_MASTER_KEY" \
      -H "Content-Type: application/json" \
      -d '{"model": "deepseek-v4-1-flash", "messages": [{"role": "user", "content": "Hello"}]}'
    ```
  </Tab>
</Tabs>

## Errores comunes [#common-mistakes]

* **`LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=deepseek-v4-1-flash`.** Falta el prefijo `openai/`. LiteLLM usa el prefijo para elegir el proveedor y falla antes de enviar nada. Escribe `openai/deepseek-v4-1-flash`.
* **`litellm.NotFoundError` o `Invalid URL (POST /v1/chat/completions/chat/completions)`.** A `api_base` le falta `/v1`, o incluye la ruta del endpoint. Defínelo exactamente como `https://api.cheapaimodel.ai/v1`.
* **Embeddings apuntados a cheapaimodel.** cheapaimodel todavía no tiene modelos de embeddings, así que `litellm.embedding()` o una entrada de embeddings en `model_list` no tiene nada que llamar aquí. Mantén los embeddings con otro proveedor.
* **LiteLLM no muestra ningún costo para estas llamadas.** Su lista de precios integrada no incluye los modelos de cheapaimodel: el proxy registra un costo de 0, y `litellm.completion_cost()` lanza `This model isn't mapped yet`. Tu gasto real está en la página [Registros](https://console.cheapaimodel.ai/logs) de la consola. Para darle seguimiento en el proxy, define `input_cost_per_token` y `output_cost_per_token` en el `model_info` de la entrada: los precios por millón de tokens de la [página del modelo](/es/models/deepseek-v4-1-flash), divididos entre 1,000,000.
