Перейти к содержанию
Справочник APIResponses (OpenAI)

Responses (OpenAI)

Запросы, сохранение диалога и ответы Responses для выбранного семейства.

Протокол модели

POST /v1/responses — основной интерфейс Codex для этого подключения. Поддерживаются текстовые запросы и история, instructions, клиентские функции, обычные и потоковые ответы. Режимов ключа нет; серверный промпт настраивается отдельно.

Поддерживаемый контракт

ВходПоддержка
inputСтрока или массив message items с input_text; также function_call и function_call_output для продолжения client-tool цикла
Генерацияmax_output_tokens, stream; применение temperature и top_p зависит от модели и thinking
Client toolsФункции type: "function", tool_choice и совместимый parallel tool loop; функцию выполняет клиент
Ответoutput_text и function_call; streaming завершается response.completed, а обрезка по лимиту получает status: "incomplete"
bash
curl https://api.guardrelay.ai/v1/responses \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "instructions": "Отвечай кратко",
    "input": "Проверка связи: ответь OK",
    "max_output_tokens": 64
  }'

Границы endpoint'а

  • PDF / input_file, input_image, native citations и server-side Web/MCP tools не входят в контракт Responses. Для PDF и изображений используйте Messages.
  • top_k, явный cache_control, native thinking/reasoning blocks и structured text.format не входят в поддержанный контракт.
  • claude-fable-5 и claude-fable-5-1 доступны здесь, включая поток и клиентские функции. Ограничения типов данных этого endpoint сохраняются.
  • Явно запрещённые типы или семантика получают локальный 400 до списания. Compatibility-only поля вроде previous_response_id, include, truncation или prompt_cache_key могут быть приняты без эффекта — полагаться на них нельзя.

Kimi, Composer и Grok на этом endpoint'е

Здесь работают все три семейства: Kimi, Composer и Grok. Поверхность одна и та же, короче у них только список принимаемых полей.

Kimi на этой поверхности

Kimi здесь обслуживается: ключ и адрес обычные, в поле model точный id Kimi, текст или история кладутся в input. Готовая настройка Codex на этой поверхности собрана на странице Codex. Если вашему клиенту привычнее OpenAI Chat Completions, тот же ключ работает и там.

bash
curl -X POST https://api.guardrelay.ai/v1/responses \
  -H "Authorization: Bearer gd-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "k3",
    "input": "Привет!",
    "max_output_tokens": 128
  }'

Проверка Grok

bash
curl https://api.guardrelay.ai/v1/responses \
  -H "Authorization: Bearer gd-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cursor-grok-4.6-low",
    "instructions": "Отвечай кратко",
    "input": "Проверка связи: ответь OK",
    "max_output_tokens": 64
  }'

Проверка Composer

bash
curl https://api.guardrelay.ai/v1/responses \
  -H "Authorization: Bearer gd-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "composer-2.5",
    "instructions": "Отвечай кратко",
    "input": "Проверка связи: ответь OK",
    "max_output_tokens": 64
  }'
ЧтоКак у Composer и Grok
Поля запросаmodel, input, instructions, max_output_tokens, stream, tools
inputстрока либо массив элементов type: "message" с ролями user, assistant, system, developer
Блоки содержимогоinput_text и output_text с ключами type и text; cache_control принимается и игнорируется; у Grok дополнительно input_image с инлайн base64
function_call, function_call_outputчасть цикла клиентских инструментов, обслуживаются
web_search_call, file_search_call, computer_call и другие провайдерские элементыотклоняются с 400 cursor_client_tools_unavailable
reasoning, temperature, top_p, store, include, truncation, metadata, previous_response_id, prompt_cache_key, thinkingпринимаются и молча отбрасываются
parallel_tool_calls: true, service_tier auto/default, tool_choice: "auto"принимаются только в значении по умолчанию
text, любое другое значение полей вышене принимаются, 400 cursor_parameter_unavailable
Ответstatus: "completed", текст в output_text и в output[0].content[0].text, кэш в usage.input_tokens_details.cached_tokens
Ответ с вызовом инструментав output добавляется элемент type: "function_call" с call_id, name и arguments; на него отвечают элементом function_call_output в следующем запросе

Responses семейства Codex

Для семи GPT-моделей работают оба alias: POST https://api.guardrelay.ai/v1/responses и прежний POST https://api.guardrelay.ai/codex/v1/responses. Они используют один Responses lifecycle, одно owner-scoped хранилище и одинаковый billing.

bash
curl https://api.guardrelay.ai/codex/v1/responses \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-astra",
    "instructions": "Отвечай кратко",
    "input": "Проверка связи: ответь OK",
    "reasoning": {"effort": "medium"},
    "store": false
  }'

Responses поддерживает JSON по HTTP, SSE с stream: true и native WebSocket на wss://api.guardrelay.ai/v1/responses либо wss://api.guardrelay.ai/codex/v1/responses. Поддержаны instructions, reasoning effort, parallel client tools, изображения у совместимых моделей и фактический usage; неизвестные поля отклоняются до reserve/egress.

Проверенные границы Codex

  • store: true Responses, получение/удаление, input-items и cancel используют один owner-scoped lifecycle через оба namespace alias.
  • Conversations CRUD и их items используют одно хранилище и одинаковые правила owner/key/payer через /v1 и /codex/v1.
  • Chat Completions и Messages передают историю, которую прислал клиент. Guard не создаёт серверное continuation между форматами.
  • Официальный maximum output всех семи моделей — 128 000 токенов. Responses-поле max_output_tokens Guard принимает и сохраняет как advisory. Принудительное обрезание на 128K не обещается; списание определяется фактическими токенами и денежными правилами ключа.
  • Для всех семи моделей Codex поле temperature недоступно через текущее подключение. Не передавайте его вообще: и явное значение, и temperature: null возвращают 400 invalid_request до reserve/egress. GPT-6 Sol и GPT-6 Luna по-прежнему поддерживают reasoning.effort: none, когда temperature отсутствует. Поддерживаемые effort остальных моделей и контракт top_p этим уточнением не меняются.
  • service_tier: "fast" Guard отправляет в source как priority; ответ сохраняет фактически возвращённый tier. Source может вернуть default, поэтому наличие Fast и ускорение ответа не гарантируются.
  • Batches, управляемые сервером агенты, Projects/Tasks, server browser/MCP и расширенный hosted-resource API не входят в этот выпуск.

GLM Responses

Используйте POST /v1/responses или POST /glm/v1/responses. input может быть строкой или непустым массивом исходных элементов ввода.

bash
curl https://api.guardrelay.ai/glm/v1/responses \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model":"glm-5.3","input":"Reply with OK","max_output_tokens":4096,"store":false}'
json
{
  "id": "resp_…",
  "model": "glm-5.3",
  "status": "completed",
  "output": [
    {"type": "reasoning", "content": []},
    {"type": "message", "content": [{"type": "output_text", "text": "OK"}]}
  ],
  "usage": {
    "input_tokens": 31,
    "input_tokens_details": {"cached_tokens": 0},
    "output_tokens": 12,
    "output_tokens_details": {"reasoning_tokens": 5}
  }
}

store и previous_response_id

Guard добавляет store: true, если поле пропущено. Чтобы не сохранять ответ для продолжения, передайте явный store: false.

json
{
  "model": "glm-5.3",
  "previous_response_id": "resp_из_первого_ответа",
  "input": "Continue from the previous answer",
  "max_output_tokens": 4096
}
РезультатСмысл
404 response_not_foundID не сохранён, неизвестен или принадлежит другому ключу.
409 response_account_unavailableЗакреплённая сессия временно недоступна; состояние не переносится автоматически.

Incomplete — нормальный финал

При исчерпании бюджета Responses возвращает status: "incomplete" и incomplete_details.reason: "max_output_tokens"; в SSE терминальным событием служит response.incomplete. Уже выполненная часть имеет точные счётчики и оплачивается.

Gemini Responses

Используйте POST /v1/responses с точным model Gemini. input может быть строкой или массивом элементов ввода; без явного max_output_tokens шлюз берёт 4096 токенов.

bash
curl https://api.guardrelay.ai/v1/responses \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model":"gemini-4-argon","input":"Reply with OK","max_output_tokens":4096}'

Muse Responses

Используйте POST /v1/responses с точным model Muse. input может быть строкой или массивом элементов ввода.

bash
curl https://api.guardrelay.ai/v1/responses \
  -H "Authorization: Bearer $GUARD_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model":"muse-wonder-1.0","input":"Reply with OK","max_output_tokens":4096}'

Продолжение Gemini в Responses

previous_response_id продолжает ответ Gemini, сохранённый Guard для владельца ключа: любой его ключ продолжает диалог, ответ хранится 30 дней; без поля store ответ сохраняется, после ответа с store: false продолжать нечего. Неизвестный или устаревший id получает 404 gemini_history_not_found: тогда передайте всю историю в input. Поле conversation Gemini не принимает: запрос с ним получает ошибку gemini_history_required.

Продолжение Muse в Responses

previous_response_id продолжает ответ Muse, созданный тем же ключом с store: true; без поля store ответ сохраняется. После ответа с store: false продолжать нечего: передайте историю в input. Неизвестный id получает 404 response_not_found. Для подсчёта токенов история нужна в input, а не в previous_response_id.

Разделы

На этой странице