Перейти к содержимому

POST /v1/responses

OpenAI Responses-совместимый эндпоинт для текста, инструментов, веб-поиска поставщика и Codex CLI.

Запрос

curl https://api.model-gate.com/v1/responses \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "input": [
      {
        "role": "user",
        "content": [{"type": "input_text", "text": "Summarize the release."}]
      }
    ],
    "stream": false
  }'

Ответ

{
  "id": "resp_example",
  "object": "response",
  "status": "completed",
  "model": "gpt-5.4",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [{"type": "output_text", "text": "The release adds synchronized documentation and model aliases."}]
    }
  ],
  "usage": {
    "input_tokens": 18,
    "output_tokens": 14,
    "total_tokens": 32
  }
}

Веб-поиск на стороне поставщика

Добавьте:

{
  "tools": [{"type": "web_search"}],
  "tool_choice": "required",
  "include": ["web_search_call.action.sources"]
}

Отдельного поддержанного контракта /v1/web-search нет. Используйте инструмент Responses API.

Асинхронный режим

"async": true поддерживается только с "stream": false.

Инструмент Responses image_generation, когда его действительно поддерживает настроенный поставщик, — не выделенный Images API. Его выходные элементы не создают /v1/images/operations, закрытые ресурсы скачивания Images или гарантию идемпотентности/отправки Images. Отдельно подтвердите контракт инструмента и учёта конкретного поставщика; для сохраняемой генерации/редактирования используйте операции Images.

Session ID

Передавайте стабильный JSON session_id или заголовок X-Session-ID в каждом обращении этого диалога. Приоритет: session_id → X-Session-ID → распознанная сессия в metadata.user_id → prompt_cache_key → начальное содержимое диалога. Уровень идентификации не зависит от типа поставщика. Один и тот же ID не гарантирует попадание в кеш и не отключает допустимое резервное переключение. Автоматическое поведение, область действия, ограничения и отличия от идемпотентности и хранения контекста описаны в разделе идентификатор диалога и привязка маршрута.

Выбранный идентификатор сохраняется для потока и асинхронной отправки, когда эндпоинт её поддерживает. После тайм-аута не отправляйте новый платный POST только для проверки сессии: сначала проверьте существующий запрос.

При продолжении через previous_response_id повторяйте явный ID диалога. Идентификатор сохранённого ответа и Session ID решают разные задачи; не заменяйте один другим.

Уже заданная распознанная сессия в метаданных используется без ошибки несовпадения; обычный metadata.user_id сохраняется и не считается диалогом. Более приоритетные явные поля побеждают. Форматы и ограничения передачи поставщику приведены в указанном справочнике идентификации.

Распознанная metadata-сессия имеет приоритет перед подсказкой кеширования. Автоматическая идентичность не учитывает известные маркеры cache_control и эквивалентные одиночные текстовые обёртки, не меняя запрос к модели. Отдельно настроенный совместимый транспорт сессионного заголовка не занимает обычный metadata.user_id; эту возможность настраивает оператор, а не клиент.