Responses API

Используйте Responses API в приложениях и инструментах для разработки, построенных на формате элементов ответа OpenAI.

POST https://getrouter.ai/v1/responses

Базовый запрос

curl https://getrouter.ai/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "instructions": "Ответь одним коротким абзацем.",
    "input": "Объясни, как работает обратный прокси."
  }'

Ответ содержит массив output с элементами ответа. SDK могут предоставлять вспомогательное свойство output_text с объединённым текстом.

Python

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://getrouter.ai/v1",
)

response = client.responses.create(
    model="MODEL_ID",
    instructions="Ответь одним коротким абзацем.",
    input="Объясни, как работает обратный прокси.",
)

print(response.output_text)

Node.js / TypeScript

import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://getrouter.ai/v1',
})

const response = await client.responses.create({
  model: 'MODEL_ID',
  instructions: 'Ответь одним коротким абзацем.',
  input: 'Объясни, как работает обратный прокси.',
})

console.log(response.output_text)

Основные поля запроса

ПолеОписание
modelОбязательный идентификатор модели
inputСтрока или массив входных элементов
instructionsОбщие инструкции для ответа
streamПередавать события ответа по мере генерации, если задано true
max_output_tokensМаксимальное количество выходных токенов
toolsОпределения инструментов для совместимых моделей
tool_choiceПравила выбора инструмента
reasoningНастройки рассуждений для совместимых моделей
previous_response_idПродолжить предыдущий ответ
truncationauto или disabled

Продолжение ответа

В сценариях, поддерживающих продолжение ответа, передайте идентификатор предыдущего ответа:

{
  "model": "MODEL_ID",
  "previous_response_id": "RESPONSE_ID",
  "input": "Теперь приведи конкретный пример."
}

Поддержка продолжения с сохранением состояния может зависеть от выбранной модели и вышестоящего сервиса.

Сжатие контекста

GetRouter предоставляет эндпоинт сжатия Responses:

POST https://getrouter.ai/v1/responses/compact

Он принимает model вместе с input, instructions или previous_response_id. Используйте этот эндпоинт, только если клиент реализует механизм сжатия Responses.

curl https://getrouter.ai/v1/responses/compact \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "CONVERSATION_INPUT"
  }'

Потоковые ответы

Задайте для stream значение true, чтобы получать события Responses API. Они отличаются от фрагментов Chat Completions. Подробнее см. в разделе Потоковые ответы.

Особенности совместимости

  • Используйте модель, которая поддерживает эндпоинт Responses.
  • Не рассчитывайте, что модель, работающая с Chat Completions, обязательно поддерживает Responses.
  • Такие инструменты, как Codex, могут зависеть от форматов событий и инструментов Responses, поэтому настраивайте их по отдельному руководству по интеграции.

Что дальше