# Совместимость с OpenAI и Ollama

> Как сервис LMSP остаётся совместимым с существующими клиентами OpenAI и Ollama благодаря тонкому слою преобразования данных над единым ядром выполнения и где эта совместимость заканчивается.

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

## 8.1 Эндпоинты, совместимые с OpenAI {#openai}

Сервису **СЛЕДУЕТ** предлагать интерфейс, совместимый с OpenAI, рядом с интерфейсом LMSP и объявлять его в `interfaces` с `kind`, равным `openai`. Чтобы охватить существующие клиенты, сервис, который это делает, **ДОЛЖЕН** реализовать как минимум следующие эндпоинты с префиксом `/v1`:

| Эндпоинт | Примечания |
| --- | --- |
| `GET /v1/models` | Перечисляет модели каталога LMSP. Каждый `id` — идентификатор модели LMSP. |
| `POST /v1/chat/completions` | Chat Completions, с потоковой передачей и без неё. |
| `POST /v1/responses` | Форма OpenAI Responses. |
| `POST /v1/embeddings` | В основном интерфейсе LMSP 1.0 нет эндпоинта эмбеддингов. Адаптер обслуживает этот эндпоинт напрямую для моделей, у которых `capabilities.embeddings` равно `true`. |

Эти эндпоинты принимают те же Bearer-токены, что и интерфейс LMSP. Клиент, говорящий на протоколе OpenAI, указывает токен LMSP как свой API-ключ.

Первая реализация может начать с `/v1/models` и `/v1/chat/completions` ([страница 12](https://madeforagent.com/ru/lmsp/1.0/mvp.md)).

## 8.2 Эндпоинты, совместимые с Ollama {#ollama}

Сервису **СЛЕДУЕТ** также предоставлять эти эндпоинты, чтобы работали и клиенты, написанные для Ollama:

| Эндпоинт | Примечания |
| --- | --- |
| `GET /api/tags` | Перечисляет модели каталога LMSP. |
| `POST /api/chat` | Чат. |
| `POST /api/generate` | Простая генерация текста. |

Сервис, который их предоставляет, объявляет интерфейс с `kind`, равным `ollama`.

## 8.3 Единое ядро выполнения {#core}

Слой совместимости **ДОЛЖЕН** только преобразовывать данные. Он **НЕ ДОЛЖЕН** создавать второй набор логики управления моделями. Запрос на интерфейсе совместимости отображается на ответ LMSP, выполняется на том же ядре и адаптере, что и нативный запрос, и использует тот же каталог моделей и ту же аутентификацию.

```text
OpenAI Chat Completions
          |  отображение запроса
          v
     LMSP Response
          |  адаптация к бэкенду
          v
llama.cpp / Ollama / vLLM / другие среды выполнения
```

На эндпоинтах `/v1` и `/api` сервису **СЛЕДУЕТ** сообщать об ошибках в формате, который определяет соответствующий API, чтобы немодифицированные клиенты могли их разобрать. Интерфейс LMSP всегда использует `application/problem+json`.

## 8.4 Границы {#boundaries}

У совместимости есть пределы, и о них стоит сказать прямо:

- Существующему клиенту, совместимому с OpenAI, обычно нужно лишь изменить `base_url`. Обнаружение LMSP он автоматически не получает.
- Только клиенты с поддержкой LMSP могут автоматически обнаруживать сервис, читать его подробные возможности, возобновлять потоки событий и управлять асинхронными задачами.
- Никакой серверный протокол не заставит работать клиент, который нельзя настроить и который принимает только официальные облачные адреса.
