Спецификация OpenAPI
API LLMSTORE полностью описан спецификацией OpenAPI. Интерактивный справочник всех эндпоинтов, сгенерированный из неё, — в разделе Эндпоинты этой документации. Саму спецификацию (openapi.yaml) можно использовать с инструментами вроде Swagger UI, Postman или любым OpenAPI-совместимым генератором клиентских библиотек.Запросы
Формат запроса completions
Ниже — схема запроса в виде TypeScript-типа. Это тело вашегоPOST-запроса к эндпоинту /v1/chat/completions (пример см. в быстром старте).
Полный список параметров — на странице Параметры.
Структурированные ответы
Параметрresponse_format позволяет принудить модель к структурированному JSON-ответу. LLMSTORE поддерживает два режима:
{ type: 'json_object' }: базовый JSON-режим — модель вернёт валидный JSON{ type: 'json_schema', json_schema: { ... } }: строгий режим схемы — модель вернёт JSON, точно соответствующий вашей схеме
supported_parameters в ответе эндпоинта GET /v1/models.
Плагины
Плагины LLMSTORE расширяют возможности моделей: веб-поиск, обработка PDF, починка ответов, сжатие контекста. Плагины включаются массивомplugins в запросе:
web (поиск в интернете в реальном времени), file-parser (обработка PDF), response-healing (автоматическая починка JSON) и context-compression (сжатие промпта методом middle-out). Подробности конфигурации — на странице Плагины.
Роутинг моделейЕсли параметр
model не указан, используется модель по умолчанию.
В остальных случаях выбирайте значение model из поддерживаемых
моделей или через API и включайте префикс
организации. LLMSTORE выберет самый дешёвый и лучший доступный инстанс у провайдеров для обслуживания запроса, а при 5xx или рейт-лимите —
выполнит фолбэк на другого провайдера.СтримингПоддерживаются Server-Sent Events
(SSE)
— стриминг доступен для всех моделей. Просто передайте
stream: true в теле запроса. В SSE-потоке изредка встречаются
служебные строки-комментарии — их следует игнорировать (см. ниже).Нестандартные параметрыЕсли выбранная модель не поддерживает параметр запроса (например
logit_bias
у моделей не-OpenAI или top_k у OpenAI), параметр игнорируется.
Остальные передаются в API нижележащей модели.Префилл ассистента
LLMSTORE позволяет просить модель продолжить частичный ответ. Это полезно, чтобы направить модель на определённый стиль ответа. Для этого просто добавьте сообщение сrole: "assistant" в конец массива messages.
Ответы
Формат CompletionsResponse
LLMSTORE нормализует схему для всех моделей и провайдеров в соответствии с OpenAI Chat API. Это значит, чтоchoices — всегда массив, даже если модель вернула одну генерацию. Каждый choice содержит свойство delta при стриминге и message в остальных случаях. Благодаря этому один и тот же код работает для всех моделей.
Схема ответа в виде TypeScript-типа:
TypeScript
Причина завершения (finish reason)
LLMSTORE нормализуетfinish_reason каждой модели к одному из значений: tool_calls, stop, length, content_filter, error.
У некоторых моделей и провайдеров могут быть дополнительные причины завершения. Сырая строка finish_reason от модели доступна в свойстве native_finish_reason.
Запрос стоимости и статистики
Числа токенов в ответе completions API вычисляются нативным токенизатором модели. Списание кредитов и цены моделей основаны на этих нативных числах. Возвращённыйid можно также использовать для запроса статистики генерации (включая числа токенов и стоимость) после завершения запроса — через эндпоинт /v1/generation. Это полезно для аудита исторического использования или когда статистика нужна асинхронно.
usage тела ответа при не-стриминге.