Responses
POST/v1/responses
Responses API без состояния на сервере: ничего не храним. Историю присылайте целиком в каждом запросе, вместе с элементами output прошлых ответов. Так работает Codex. Принимаем только поля из списка: на другое поле ответ 400 с его именем в param. Поле со значением null пропускаем.
- modelstringобязательно
- Модель с kind chat, например
openai/gpt-6.1-sol - inputstring | arrayобязательно
- Строка или массив элементов: message (type можно не указывать), function_call, function_call_output, custom_tool_call, custom_tool_call_output, reasoning. Части content: текст и изображения input_image
- instructionsstring
- Системная инструкция
- max_output_tokensinteger
- Лимит ответа, от 1 до максимума модели. Без него модель отвечает полностью
- streamboolean
- true: ответ событиями SSE, см. «Стриминг»
- toolsarray
- Инструменты типа function и custom, см. «Function calling»
- tool_choicestring | object
- Вызывать ли инструмент и какой, см. «Function calling»
- includearray
- ["reasoning.encrypted_content"]: рассуждения приходят зашифрованными в элементе reasoning. Верните его в input следующего хода, и модель продолжит рассуждать без хранения на сервере. Элементы reasoning без encrypted_content отбрасываем
- reasoningи другие
- Передаём модели как есть: reasoning, text, temperature, top_p, top_logprobs, truncation, max_tool_calls, parallel_tool_calls, stream_options, service_tier (auto или default), metadata, user, safety_identifier
Изображения передаются частями input_image со ссылкой или data URL в image_url, в сообщениях user и в выводе инструментов. Остальное как в Chat Completions: изображение в запросе к модели, которая их не понимает, даёт 400. file_id не принимаем: файлы не храним.
Текст ответа лежит в output: элемент message, часть output_text. SDK собирает его в output_text.
Не поддерживаем, ответ 400: previous_response_id, conversation, background: true, элементы item_reference, встроенные инструменты (file_search, code_interpreter, image_generation, mcp и другие), файлы и аудио во входе. web_search убираем из tools без ошибки: модель отвечает без поиска. store всегда отправляем как false. prompt_cache_key заменяем своим ключом разговора, как в Chat Completions.