Responses API
POST /v1/responses создаёт ответ с текстом или вызовами инструментов. Выберите модель, у которой supported_apis содержит responses.
Входные данные и ответ
Передайте текст в input или массив сообщений и результатов инструментов. instructions задаёт инструкции модели. Доступные типы инструментов, пространства имён и рассуждения определяются карточкой модели. Зашифрованные элементы рассуждений сохраняются для продолжения диалога без раскрытия их содержимого.
Ответ содержит id: resp_…, status, output items и usage. Function/custom calls сохраняют call ID, namespace и аргументы. Responses stream использует именованные response.* events; [DONE] в этом протоколе не добавляется.
import os
import uuid
from openai import OpenAI
client = OpenAI(
api_key=os.environ["RENDERFOX_API_KEY"],
base_url=os.environ.get("RENDERFOX_BASE_URL", "https://api.renderfox.ru/v1"),
max_retries=0,
)
response = client.responses.create(
model="gpt-6.1-terra",
input="Коротко объясни HTTP.",
reasoning={"effort": "none"},
max_output_tokens=128,
extra_headers={"Idempotency-Key": str(uuid.uuid4())},
)
print(response.output_text)Продолжение диалога
store: true явно разрешает хранение input/response на 24 часа для follow-up. Без store результат нельзя получить через GET /v1/responses/{id}. previous_response_id разрешён только владельцу доступного сохранённого ответа.
Новые instructions заменяют прежние инструкции. При продолжении сохраняются предыдущие сообщения, вызовы инструментов и их результаты. DELETE /v1/responses/{id} возвращает 204 и удаляет хранимое содержимое; сведения об оплате сохраняются.
Idempotency и ошибки
Повтор с тем же Idempotency-Key и телом возвращает сохранённый результат. Codex может передавать идентификатор хода вместо этого заголовка. При повторе сохраняйте исходные идентификаторы и тело.
Проверка допустимых полей происходит до резерва. Для устойчивого повтора сохраняйте исходные тело и идентификатор запроса. Ошибки и состояние оплаченного запроса доступны через /v1/requests/{request_id}.
Codex
Подключите Codex к RenderFox через Responses API. Создайте API-ключ и выберите в библиотеке моделей модель с поддержкой Responses и вызовов инструментов. Конфигурация ниже использует GPT-6.1 Terra и последовательное выполнение инструментов.
Конфигурация использует wire_api="responses", base_url с /v1 и env_key="RENDERFOX_API_KEY". Ключ хранится в переменной окружения. Другие варианты подключения доступны в интеграциях.
Конфигурация Codex CLI
Сохраните ключ в переменной RENDERFOX_API_KEY. Добавьте настройки в config.toml вашего профиля Codex. Для отдельного профиля можно задать каталог через CODEX_HOME. Перед изменением существующей конфигурации сохраните её копию.
model_provider = "renderfox"
model = "gpt-6.1-terra"
model_reasoning_effort = "none"
web_search = "disabled"
[features]
code_mode_host = true
incremental_tools = false
multi_agent = false
apps = false
remote_plugin = false
hooks = false
shell_snapshot = false
[model_providers.renderfox]
name = "RenderFox"
base_url = "https://api.renderfox.ru/v1"
env_key = "RENDERFOX_API_KEY"
wire_api = "responses"
requires_openai_auth = false
supports_websockets = false
request_max_retries = 0
stream_max_retries = 0Codex отправляет инструкции и схемы инструментов: они входят во входные токены и резерв FC даже для короткой задачи. Начните с маленького проекта и ограниченного бюджета ключа.
Последовательность событий
Поток начинается с response.created. Для каждого элемента приходят response.output_item.added, дельты текста или аргументов и response.output_item.done. response.completed содержит завершённый output и usage. Не исполняйте инструмент до получения его полного имени, call_id и аргументов. Верните function_call_output с тем же call_id в следующий запрос; новый turn имеет новый Idempotency-Key.
response.incomplete и response.failed — конечные состояния. Обрыв HTTP-потока не означает, что запрос не был принят. Сначала проверьте сохранённый request_id и повторите прежний запрос с тем же идентификатором, если требуется восстановить доставку.
Диагностика клиента
401 означает проблему ключа или срока действия. При 402 проверьте FC и лимиты ключа. 422 содержит имя неподдерживаемого параметра: сверьте модель и протокол с карточкой. При 429 учитывайте Retry-After; не создавайте новый ход для повторения прежнего запроса. Эта инструкция описывает настройку Codex CLI.
Vision в Responses
У модели с vision_by_protocol.responses передайте input_image в пользовательском content рядом с input_text. image_url содержит data URL; вместо него можно использовать собственный file_id. Используйте один источник на блок. Инструкции, изображения и последующие tool outputs сохраняют порядок. Изображение входит в общий input usage и резерв; при stateful follow-up история снова является частью оплачиваемого контекста запроса.
{
"model":"gpt-6.1-terra",
"input":[{"role":"user","content":[
{"type":"input_text","text":"Опиши изображение."},
{"type":"input_image","file_id":"file_OWN_UPLOADED_IMAGE"}
]}],
"max_output_tokens":64
}