Минимально жизнеспособный объём
- Информативная
- Черновик 1.0
- Обновлено
- Открыть как Markdown
12.1 Первая версия
Первой версии не обязательно реализовывать все мультимодальные возможности, загрузку моделей или голос в реальном времени. Она образует работоспособный замкнутый цикл, как только предоставляет:
- Обнаружение сервиса через
/.well-known/lmsp.json. - Необязательное объявление
_lmsp._tcp.local.в локальной сети. GET /lmsp/v1/models.POST /lmsp/v1/responses, как синхронно, так и в виде потока SSE.- Асинхронные задачи: создание, опрос и отмена, с хранением в SQLite.
- Возобновление оборванных потоков с помощью
Last-Event-IDилиafter. - Bearer-токены, локальное сопряжение, а также защиту
OriginиHost. - Эндпоинты
/v1/modelsи/v1/chat/completions, совместимые с OpenAI. - Файл контракта OpenAPI 3.2 и межъязыковые тесты соответствия.
- Как минимум один настоящий бэкенд и проверку того, что задачи корректно восстанавливаются после перезапуска сервиса.
Суть замысла: LMSP даёт полный набор возможностей, интерфейс OpenAI даёт готовую совместимость, mDNS и описание сервиса дают автоматическое обнаружение, а модель задач на SQLite даёт локальное хранение.
12.2 Что может подождать
Всё, что не упомянуто в списке выше, может появиться в следующих выпусках. Сюда относятся необязательные эндпоинты (сохранённые ответы, а также загрузка и выгрузка моделей), эндпоинты OpenAI /v1/responses и /v1/embeddings, API, совместимый с Ollama, и все типы содержимого, кроме текста.
Этот объём — путь к работоспособному первому выпуску, а не профиль соответствия. Сервис, заявляющий о поддержке LMSP 1.0, по-прежнему реализует все обязательные эндпоинты со страницы 4 и обязательное поведение, описанное на остальных страницах.