Skip to main content
Все поля протокола Chat Completions передаются модели как есть, а учитывает ли их модель, решает она сама. Перед использованием возможности проверьте модель в GET /v1/models.

Изображения на входе

Модели с image в input_modalities читают картинки, переданные в messages. Передайте content массивом частей:

Структурированный ответ (JSON)

Поле response_format передаётся модели без изменений. Модели, которые его поддерживают, вернут JSON по схеме:
Если модель не поддерживает response_format, API может вернуть 400 unsupported_parameter, а модель — проигнорировать поле. В таком случае опишите нужный формат в промпте.

Вызов инструментов: полный цикл

1

Опишите инструменты

Передайте их в tools. Если модель решит вызвать функцию, в ответе будет finish_reason: "tool_calls".
2

Выполните функцию у себя

Возьмите имя и аргументы из message.tool_calls.
3

Верните результат

Добавьте в историю ответ модели и сообщение с role: "tool" и тем же tool_call_id, затем отправьте запрос снова.

Кэширование промпта

Некоторые модели кэшируют повторяющийся промпт. Сколько токенов взято из кэша, видно в usage.prompt_tokens_details.cached_tokens. Если в каталоге для модели указан cached_input_per_mtok, такие токены оплачиваются по этой цене; если не указан — по обычной цене входа. Чтобы кэш срабатывал чаще, держите неизменную часть (системный промпт, инструкции, документы) в начале сообщений, а изменяющуюся — в конце.