Транспорт и развёртывание

2.1 Развёртывание по умолчанию

По умолчанию сервис ДОЛЖЕН слушать loopback-адреса 127.0.0.1 и ::1. Стандартный порт — 17832, поэтому базовый адрес по умолчанию — http://127.0.0.1:17832.

Параметр Значение
Адреса прослушивания 127.0.0.1 и ::1
Транспорт HTTP/1.1 или HTTP/2, несущий JSON
Потоковая передача События, отправляемые сервером, Content-Type: text/event-stream
Префикс основного интерфейса /lmsp/v1
Префикс интерфейса, совместимого с OpenAI /v1
Описание сервиса GET /.well-known/lmsp.json
Машиночитаемый контракт GET /lmsp/v1/openapi.json
Необязательный локальный канал Unix-сокет или именованный канал Windows

Запросы и ответы используют JSON в UTF-8 (Content-Type: application/json), кроме потоков (text/event-stream) и ошибок (application/problem+json). Метки времени — целые числа: секунды с начала эпохи Unix. Идентификаторы — непрозрачные строки; РЕКОМЕНДУЕТСЯ использовать префикс типа, например resp_ или task_.

Контракт интерфейса — документ OpenAPI 3.2. OpenAPI 3.2 умеет описывать события, отправляемые сервером, JSON Lines и JSON Sequences, поэтому потоковые эндпоинты описаны в том же документе, что и остальные. Контракт этой версии опубликован по адресу /lmsp/1.0/openapi.json.

Сервис МОЖЕТ также принимать соединения через Unix-сокет или именованный канал Windows с той же семантикой HTTP. В версии 1.0 способ объявления таких эндпоинтов оставлен расширениям.

2.2 Постоянная работа

Сервис СЛЕДУЕТ запускать средствами операционной системы: launchd в macOS, systemd в Linux и диспетчер служб в Windows.

Процесс сервиса и процессы моделей СЛЕДУЕТ разделять. Сбой модели СЛЕДУЕТ изолировать так, чтобы он затрагивал только задачи, использующие эту модель. НЕ СЛЕДУЕТ допускать, чтобы из-за него становились недоступны обнаружение сервиса, каталог моделей или запросы о прежних задачах.