Chat Completions
POST/v1/chat/completions
Основной метод. Запрос и ответ как в OpenAI. Принимаем только поля из списка: на другое поле ответ 400 с его именем в param. Поле со значением null считаем отсутствующим, даже незнакомое.
- modelstringобязательно
- Модель с kind chat, например
openai/gpt-6.1-sol - messagesarrayобязательно
- Непустой массив сообщений. content: строка или части типа text, refusal и image_url (ссылка или data URL изображения, только в сообщении user)
- max_completion_tokensmax_tokensinteger
- Лимит ответа, от 1 до максимума модели, только одно из двух. Больше максимума: 400, максимум назван в message. У моделей с рассуждением в лимит входят и токены рассуждения, при малом лимите content бывает null. Без лимита модель отвечает полностью
- streamboolean
- true: ответ приходит частями, см. «Стриминг»
- stream_optionsobject
- Настройки потока, например include_usage, см. «Стриминг»
- toolsarray
- Функции для function calling, см. «Function calling»
- tool_choicestring | object
- Вызывать ли функцию и какую, см. «Function calling»
- response_formatobject
- text, json_object или json_schema
- ninteger
- Только 1
- service_tierstring
- Только auto или default
- temperatureи другие
- Передаём модели как есть: temperature, top_p, stop, seed, frequency_penalty, presence_penalty, logit_bias, logprobs, top_logprobs, reasoning_effort, verbosity, prediction, parallel_tool_calls, functions, function_call, user, safety_identifier
Изображения принимают модели, у которых в input_modalities списка моделей есть image: GPT, Grok, почти все Claude и Gemini, часть Qwen, Mistral и GLM. Изображение в запросе к другой модели даёт 400. Изображение стоит столько входных токенов, сколько их насчитала модель. На время запроса резервируем 5 000 входных токенов на изображение. Data URL входит в лимит тела запроса 8 МиБ.
Не поддерживаем, ответ 400: аудио и файлы в content, audio, modalities кроме ["text"], web_search_options. store, metadata, prompt_cache_retention и prompt_cache_options принимаем и не передаём: ничего не храним, кэшем управляет шлюз. prompt_cache_key заменяем своим ключом разговора в пределах аккаунта, чтобы ходы одного диалога попадали в кэш.