Полная документация endpoint доступна в API Reference.
Endpoint
Базовые параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | ID модели (например, openai/gpt-4o) |
messages | array | Да* | Массив сообщений диалога |
prompt | string | Да* | Текстовый промпт (альтернатива messages) |
temperature | number | Нет | Креативность ответа (0.0-2.0, по умолчанию 1.0) |
max_tokens | number | Нет | Максимальное количество токенов в ответе |
stream | boolean | Нет | Включить потоковую передачу (SSE) |
* Укажите
messages или prompt. При передаче prompt он автоматически преобразуется в messages с ролью user.Дополнительные параметры
| Параметр | Тип | Описание |
|---|---|---|
max_completion_tokens | number | Альтернатива max_tokens |
top_p | number | Nucleus sampling (0.0-1.0) |
frequency_penalty | number | Штраф за частоту токенов (-2.0 до 2.0) |
presence_penalty | number | Штраф за присутствие токенов (-2.0 до 2.0) |
response_format | object | Формат ответа (structured output) |
tools | array | Определения функций (tool calling) |
tool_choice | string/object | Выбор инструмента: none, auto, required |
reasoning | object | Настройки reasoning (reasoning) |
web_search_options | object | Встроенный веб-поиск |
provider | object | Выбор провайдера (подробнее) |
user | string | ID конечного пользователя |
Структура messages
Каждое сообщение содержит роль и содержимое:| Поле | Тип | Описание |
|---|---|---|
role | string | Роль отправителя (см. ниже) |
content | string | array | null | Текст, массив content parts или null |
Роли сообщений
| Роль | Описание |
|---|---|
system | Системное сообщение, задающее контекст и поведение модели |
developer | Инструкции разработчика (аналог system для некоторых моделей) |
user | Сообщение от пользователя |
assistant | Ответ модели (для продолжения диалога). content может быть null, если есть tool_calls |
tool | Результат вызова инструмента. Требуется поле tool_call_id |
Типы content
Полеcontent может быть строкой или массивом content parts для передачи медиа:
Простой пример
Структура ответа
Описание полей ответа
| Поле | Тип | Описание |
|---|---|---|
id | string | Уникальный идентификатор запроса |
provider | string | Провайдер, обработавший запрос |
choices[0].message.content | string | Текст ответа модели |
choices[0].finish_reason | string | Причина завершения генерации |
usage.prompt_tokens | number | Количество токенов во входных сообщениях |
usage.completion_tokens | number | Количество токенов в ответе |
usage.total_tokens | number | Общее количество токенов |
usage.cost_rub | number | Стоимость запроса в рублях |
usage.cost | number | Стоимость запроса в рублях (алиас cost_rub) |
Значения finish_reason
| Значение | Описание |
|---|---|
stop | Модель завершила генерацию естественным образом |
length | Достигнут лимит max_tokens |
tool_calls | Модель запросила вызов функции |
content_filter | Контент заблокирован модерацией |
Стриминг
Для получения ответа по мере генерации установитеstream: true. Ответ приходит в формате Server-Sent Events (SSE):
Пример диалога
Для ведения диалога передавайте историю сообщений:Советы по использованию
Используйте system message
Используйте system message
System message задаёт контекст и поведение модели. Например:
- «Ты опытный Python-разработчик»
- «Отвечай кратко, в 2-3 предложениях»
- «Всегда приводи примеры кода»
Настройте temperature
Настройте temperature
- Низкая (0.0-0.3) — для точных, детерминированных ответов (код, факты)
- Средняя (0.5-0.7) — баланс между точностью и разнообразием
- Высокая (0.8-1.0) — для креативных задач (тексты, идеи)
Ограничивайте max_tokens
Ограничивайте max_tokens
Установка
max_tokens помогает:- Экономить средства на коротких ответах
- Ускорять время ответа
- Контролировать длину генерации