Модели и 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 из каталога |
messages | 1–128 сообщений с role и строковым content |
role | system, developer, user, assistant; поддержка зависит от модели |
stream | false по умолчанию; true включает SSE |
max_tokens | 1–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 перечислены выше.