# Compatibilidad con OpenAI y Ollama

> Cómo un servicio LMSP sigue siendo compatible con los clientes OpenAI y Ollama existentes mediante una fina capa de conversión de datos sobre un único núcleo de ejecución, y dónde termina esa compatibilidad.

Source: https://madeforagent.com/es/lmsp/1.0/compatibility/
Language: es
Specification: LMSP 1.0 (draft)
Updated: 2026-11-08

## 8.1 Endpoints compatibles con OpenAI {#openai}

Un servicio **DEBERÍA** ofrecer una interfaz compatible con OpenAI junto a la interfaz LMSP, y declararla en `interfaces` con `kind` establecido en `openai`. Para cubrir a los clientes existentes, un servicio que lo haga **DEBE** implementar al menos estos endpoints bajo el prefijo `/v1`:

| Endpoint | Notas |
| --- | --- |
| `GET /v1/models` | Lista los modelos del catálogo LMSP. Cada `id` es el id de modelo de LMSP. |
| `POST /v1/chat/completions` | Chat Completions, con y sin streaming. |
| `POST /v1/responses` | La forma de OpenAI Responses. |
| `POST /v1/embeddings` | La interfaz principal de LMSP 1.0 no tiene un endpoint de embeddings. El adaptador sirve este endpoint directamente, para los modelos cuyo `capabilities.embeddings` es `true`. |

Estos endpoints aceptan los mismos tokens de portador que la interfaz LMSP. Un cliente que habla el protocolo OpenAI establece el token LMSP como su clave de API.

Una primera implementación puede empezar con `/v1/models` y `/v1/chat/completions` ([página 12](https://madeforagent.com/es/lmsp/1.0/mvp.md)).

## 8.2 Endpoints compatibles con Ollama {#ollama}

Un servicio **DEBERÍA** ofrecer también estos endpoints, para que funcionen igualmente los clientes escritos para Ollama:

| Endpoint | Notas |
| --- | --- |
| `GET /api/tags` | Lista los modelos del catálogo LMSP. |
| `POST /api/chat` | Chat. |
| `POST /api/generate` | Generación de texto simple. |

Un servicio que los ofrece declara una interfaz con `kind` establecido en `ollama`.

## 8.3 Un único núcleo de ejecución {#core}

La capa de compatibilidad **DEBE** limitarse a convertir datos. **NO DEBE** crear un segundo conjunto de lógica de gestión de modelos. Una solicitud en una interfaz de compatibilidad se asigna a una respuesta LMSP, se ejecuta en el mismo núcleo y adaptador que una solicitud nativa, y usa el mismo catálogo de modelos y la misma autenticación.

```text
OpenAI Chat Completions
          |  asignación de la solicitud
          v
     LMSP Response
          |  adaptación al backend
          v
llama.cpp / Ollama / vLLM / otros entornos de ejecución
```

En los endpoints `/v1` y `/api`, un servicio **DEBERÍA** notificar los errores en el formato que define la API correspondiente, de modo que los clientes sin modificar puedan interpretarlos. La interfaz LMSP usa siempre `application/problem+json`.

## 8.4 Límites {#boundaries}

La compatibilidad tiene límites, y conviene enunciarlos con claridad:

- Un cliente compatible con OpenAI existente normalmente solo necesita cambiar su `base_url`. No obtiene automáticamente el descubrimiento de LMSP.
- Solo los clientes que admiten LMSP pueden descubrir un servicio automáticamente, leer sus capacidades detalladas, reanudar flujos de eventos y gestionar tareas asíncronas.
- Ningún protocolo del lado del servidor puede hacer que funcione un cliente que no se puede configurar y solo acepta direcciones oficiales en la nube.
