API и интеграции

Модели и Chat Completions

Каталог

GET /v1/models требует ключ с правом models. Возвращает объект list с массивом data: id, object, created, owned_by. Отключённые модели исключаются. Используйте точный id, а не маркетинговое название семейства.

Подключены семейства GPT/OpenAI, Gemini/Google и Claude/Anthropic, а также другие текстовые модели текущего каталога. Grok пока не поддерживается. Доступность конкретной модели может меняться.

Создать ответ

POST /v1/chat/completions, заголовок Authorization: Bearer <API_KEY>.

ПолеЗначение
modelОбязательный ID из каталога
messages1–128 сообщений с role и строковым content
rolesystem, developer, user, assistant; поддержка зависит от модели
streamfalse по умолчанию; true включает SSE
max_tokens1–16384; по умолчанию 1024, для отдельных моделей действует меньший предел
max_completion_tokensАльтернатива max_tokens; не задавайте оба
temperatureНеобязательное число 0–2, если поддерживается моделью
top_pНеобязательное число 0–1, если поддерживается моделью
stopСтрока до 500 символов или до четырёх таких строк
nТолько 1
stream_options.include_usageВключить информацию о токенах в поток

Суммарный текст сообщений ограничен 200 000 байт UTF-8. Проверка контекста консервативная: длинный запрос может потребовать уменьшения входа или лимита ответа. Дополнительные поля отклоняются с 422. На этом этапе не поддерживаются tools/function calling, изображения, аудио, embeddings, Responses API и мультимодальные массивы content. История диалога передаётся целиком клиентом; прокси не создаёт беседы в интерфейсе чата.

Обычный ответ содержит id, object: chat.completion, created, model, choices[0].message.content, finish_reason и usage. Расход записывается в статистику с сервисом api.

Потоковый ответ

stream = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Объясни идею кратко"}],
    max_tokens=256,
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="")

Каждое SSE-сообщение начинается с data:. JSON имеет тип chat.completion.chunk; текст находится в choices[].delta.content. Пакет статистики может иметь пустой choices. Поток завершается data: [DONE].

Если провайдер отказывает до открытия потока, возвращается HTTP-ошибка. После открытия — SSE-объект error. Клиент должен обрабатывать обе ситуации и закрывать поток при отмене.

При обрыве до получения финальной статистики стоимость оценивается по переданному тексту и полученным фрагментам; обычно используется статистика провайдера.

Формат совместимого поднабора сверялся с официальной справкой Chat Completions. Эта ссылка описывает OpenAI; фактические ограничения O·LESA перечислены выше.