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

Responses API

Responses API — это современный API для работы с языковыми моделями, пришедший на смену чат-моделям (Chat Completions API). Responses API предоставляет расширенные возможности: управление состоянием диалога и потоковую передачу ответа.

Важно

Responses API находится на стадии готовности Preview.

Для работы с API используется базовый URL:

http
https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1

Авторизация выполняется API-ключом сервисного аккаунта с ролью gpt.inferencer.

Список поддерживаемых моделей и их возможности приведены в разделе Доступные модели.

ПараметрChat CompletionsResponses API
Эндпоинт/v1/chat/completions/v1/responses
Входные данныеmessages — массив сообщенийinput — строка или массив элементов
Системный промптСообщение с role: "system" в массиве messagesОтдельный параметр instructions
Структура ответаchoices[].message.contentoutput[] — массив типизированных элементов
Управление контекстомРучная передача всей истории messagesprevious_response_id или ручная передача input
Потоковая передачаstream + stream_optionsstream
Лимит токеновmax_completion_tokensmax_output_tokens

Оба API поддерживают изображения, потоковую передачу и совместимы с OpenAI SDK.

http
POST https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responses

В отличие от чат-моделей, где диалог передается в параметре messages, Responses API принимает в качестве параметра input строку или массив элементов (items). Системный промпт задается отдельно в параметре instructions.

ПараметрТипОписание
modelstringИдентификатор деплоймента с моделью Responses API
inputstringarray
instructionsstring(опционально) Системный промпт — инструкции для модели, задающие контекст и поведение
streamboolean(опционально) Включить потоковую передачу ответа в формате SSE. По умолчанию false
temperaturenumber(опционально) Управляет случайностью ответа: чем выше значение, тем более вариативный ответ. По умолчанию 0.55
max_output_tokensinteger(опционально) Максимальное количество токенов в ответе модели
previous_response_idstring(опционально) Идентификатор предыдущего ответа. Используется для многошаговых диалогов без необходимости передавать всю историю сообщений. Недоступно для стадии готовности Preview
storeboolean(опционально) Сохранять ответ на стороне сервиса для использования в последующих запросах через previous_response_id. По умолчанию true. Для стадии готовности Preview необходимо указывать "store": false
bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responses \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
"model": "qwen3-32b",
"instructions": "Ты — полезный ассистент.",
"input": "Объясни, как работает механизм attention в нейронных сетях.",
"store": false
}' | jq .
Совет

В Windows PowerShell используйте curl.exe вместо curl и передавайте JSON-тело через файл. Подробнее см. в руководстве Быстрый старт.

bash
{
"id": "resp_c37a7ecbae094877b28654dbbfa14b81",
"object": "response",
"created_at": 1758740886,
"model": "qwen3-32b",
"output": [
{
"id": "msg_c37a7ecbae094877b28654dbbfa14b81",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Механизм attention позволяет нейронной сети сосредоточиться на наиболее важных частях входных данных...",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 72,
"output_tokens": 45,
"total_tokens": 117
}
}

В этом примере:

  • output — массив элементов ответа. Каждый элемент имеет поле type, определяющее его назначение. Элемент с type: "message" содержит сгенерированный текст в поле content.
  • usage — статистика использования токенов:
    • input_tokens — количество входящих токенов запроса (токенов промпта);
    • output_tokens — количество исходящих токенов, сгенерированных моделью (токенов ответа).

Входящие и исходящие токены тарифицируются отдельно.

При включенном stream: true модель возвращает ответ частями по мере генерации в формате Server-Sent Events (SSE).

bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responses \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
"model": "qwen3-32b",
"stream": true,
"store": false,
"input": "Привет!"
}'
bash
event: response.created
data: {"id":"resp_e999cff5eb274f70988477c978c7d9f7","object":"response","created_at":1775157501,"model":"qwen3-32b","status":"in_progress","output":[]}
event: response.output_item.added
data: {"type":"message","status":"in_progress","role":"assistant","content":[]}
event: response.output_text.delta
data: {"delta":"Пр"}
event: response.output_text.delta
data: {"delta":"ив"}
event: response.output_text.delta
data: {"delta":"ет!"}
event: response.output_text.done
data: {"text":"Привет!"}
event: response.output_item.done
data: {"type":"message","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Привет!","annotations":[]}]}
event: response.completed
data: {"id":"resp_e999cff5eb274f70988477c978c7d9f7","object":"response","created_at":1775157501,"model":"qwen3-32b","status":"completed","output":[{"type":"message","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Привет!","annotations":[]}]}],"usage":{"input_tokens":12,"output_tokens":21,"total_tokens":33}}

Каждое событие (event) содержит тип и данные (data). Основные типы событий:

  • response.created — ответ создан, генерация начата;
  • response.output_text.delta — инкрементальный фрагмент текста;
  • response.output_text.done — генерация текста завершена;
  • response.completed — ответ полностью сформирован. В данных события содержится итоговая структура ответа и статистика usage.

Responses API поддерживает два способа ведения диалога: через previous_response_id и через ручную передачу истории сообщений.

При использовании previous_response_id сервис хранит контекст предыдущего ответа. Для этого способа нет необходимости повторно отправлять всю историю диалога. Достаточно передать идентификатор предыдущего ответа и новый запрос пользователя.

Важно

В стадии готовности Preview этот способ недоступен. Ведите диалог с моделью через ручную передачу истории сообщений.

bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responses \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
"model": "qwen3-32b",
"input": "А сколько будет в километрах?",
"previous_response_id": "resp_c37a7ecbae094877b28654dbbfa14b81"
}' | jq .

Параметр instructions не сохраняется между запросами при использовании previous_response_id. Если системный промпт нужен в каждом шаге диалога, передавайте instructions в каждом запросе.

Вы можете передавать историю диалога в параметре input как массив элементов. Этот подход дает полный контроль над контекстом: можно удалять или изменять отдельные сообщения.

bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responses \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
"model": "qwen3-32b",
"store": false,
"input": [
{
"role": "user", "content": "Сколько миль от Москвы до Санкт-Петербурга?"
},
{
"role": "assistant", "content": "Около 400 миль."
},
{
"role": "user", "content": "А сколько будет в километрах?"
}
]
}' | jq .

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

bash
curl https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responses \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <API-ключ сервисного аккаунта sa-inferencer>" \
-d '{
"model": "kimi-k2-instruct",
"store": false,
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "Что на картинке?" },
{ "type": "input_image", "image_url": "https://mws.ru/uploads/grant_promo_banner_3fdd0964ae_730f25981e.png" }
]
}
]
}' | jq .
bash
{
"id": "resp_be7b6c068b5c871d",
"object": "response",
"created_at": 1777483458,
"model": "kimi-k2-instruct",
"output": [
{
"id": "msg_be7b6c068b5c871d",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "На картинке изображена 3D-иллюстрация, представляющая облачную платформу MWS Cloud Platform.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 1282,
"output_tokens": 298,
"total_tokens": 1580
}
}