# LlamaIndex (/es/docs/guides/llamaindex)

Usa los modelos de cheapaimodel en LlamaIndex a través de la API compatible con OpenAI.



LlamaIndex se conecta a servicios compatibles con OpenAI mediante `OpenAILike`, del paquete `llama-index-llms-openai-like`. Como no puede consultar los detalles de un modelo a partir de un ID que no conoce, tú defines dos de ellos: que es un modelo de chat y su ventana de contexto.

|                     | Parámetro de LlamaIndex | 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`                 | `deepseek-v4-1-flash` o cualquier ID del [catálogo](/es/models)                                       |
| Modelo de chat      | `is_chat_model`         | `True`                                                                                                |
| Ventana de contexto | `context_window`        | La longitud de contexto del modelo en tokens, que aparece en su página del [catálogo](/es/models)     |

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

Los paquetes actuales de LlamaIndex requieren Python 3.10 o posterior.

```bash title="Terminal"
pip install llama-index-llms-openai-like
```

Consulta la longitud de contexto en la página del modelo, por ejemplo [deepseek-v4-1-flash](/es/models/deepseek-v4-1-flash), y ponla en `CONTEXT_WINDOW`:

```python title="main.py"
import os
from llama_index.core.llms import ChatMessage
from llama_index.llms.openai_like import OpenAILike

CONTEXT_WINDOW = ...  # the context length from the model's page, in tokens

llm = OpenAILike(
    model="deepseek-v4-1-flash",
    api_base="https://api.cheapaimodel.ai/v1",
    api_key=os.environ["CHEAPAIMODEL_API_KEY"],
    is_chat_model=True,
    context_window=CONTEXT_WINDOW,
)

response = llm.complete("Explain recursion in one sentence.")
print(response.text)

# Streaming
messages = [ChatMessage(role="user", content="Write a haiku about the sea.")]
for chunk in llm.stream_chat(messages):
    print(chunk.delta, end="", flush=True)
```

Con `is_chat_model=True`, todas las llamadas, incluida `complete`, van a `/v1/chat/completions`.

## Úsalo en todo LlamaIndex [#use-it-across-llamaindex]

Asígnalo en `Settings` para que sea el modelo predeterminado de los índices, los motores de consulta y los motores de chat:

```python title="main.py"
from llama_index.core import Settings

Settings.llm = llm
```

Los índices vectoriales también necesitan un modelo de embeddings, y `Settings.embed_model` usa de forma predeterminada el de OpenAI. cheapaimodel todavía no tiene modelos de embeddings, así que asigna a `Settings.embed_model` un modelo de embeddings de otro proveedor o uno local. No lo apuntes a nuestra Base URL.

## Errores comunes [#common-mistakes]

* **Las solicitudes van a `/v1/completions`.** `is_chat_model` es `False` de forma predeterminada, lo que envía `complete`, e incluso `chat`, al endpoint heredado de completions como un solo prompt. Nuestros modelos solo incluyen `/v1/chat/completions` y `/v1/responses`. Define `is_chat_model=True`.
* **`ValueError: Unknown model 'deepseek-v4-1-flash'. Please provide a valid OpenAI model name`.** Estás usando `OpenAI` de `llama_index.llms.openai`, que solo acepta los nombres de modelo propios de OpenAI. Usa `OpenAILike`.
* **`Could not load OpenAI embedding model` al construir un índice.** `Settings.embed_model` sigue siendo el predeterminado de OpenAI. Asígnale un modelo de embeddings de otro proveedor o uno local.
* **`503` con `model_not_found` en `/v1/embeddings`.** Es la misma causa, pero con `OPENAI_API_KEY` y `OPENAI_API_BASE` definidas con tu clave de cheapaimodel y nuestra Base URL: el modelo de embeddings predeterminado las lee y nos pide un modelo de embeddings. Mejor pasa `api_key` y `api_base` a `OpenAILike` y asigna `Settings.embed_model`.
* **`400` de `kimi-k3`.** `OpenAILike` siempre envía `temperature`, `0.1` de forma predeterminada, y kimi-k3 solo acepta `1` o `0.6`. Pasa `temperature=1.0`. Consulta [Límites de muestreo](/es/docs/concepts/models#sampling-limits).
* **Una consulta hace varias solicitudes.** `context_window` es de 3900 tokens de forma predeterminada, y LlamaIndex divide el texto recuperado para que quepa, así que un motor de consulta envía más solicitudes de las necesarias. Defínelo con la longitud de contexto del modelo.

Para errores de Base URL, como olvidar `/v1`, consulta [Base URL](/es/docs/api/base-url#common-mistakes).
