Responses API
Responses API — это современный API для работы с языковыми моделями, пришедший на смену чат-моделям (Chat Completions API). Responses API предоставляет расширенные возможности: управление состоянием диалога и потоковую передачу ответа.
Для работы с API используется базовый URL:
https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1Авторизация выполняется API-ключом сервисного аккаунта с ролью gpt.inferencer.
Список поддерживаемых моделей и их возможности приведены в разделе Доступные модели.
Сравнение с Chat Completions API
Заголовок раздела «Сравнение с Chat Completions API»| Параметр | Chat Completions | Responses API |
|---|---|---|
| Эндпоинт | /v1/chat/completions | /v1/responses |
| Входные данные | messages — массив сообщений | input — строка или массив элементов |
| Системный промпт | Сообщение с role: "system" в массиве messages | Отдельный параметр instructions |
| Структура ответа | choices[].message.content | output[] — массив типизированных элементов |
| Управление контекстом | Ручная передача всей истории messages | previous_response_id или ручная передача input |
| Потоковая передача | stream + stream_options | stream |
| Лимит токенов | max_completion_tokens | max_output_tokens |
Оба API поддерживают изображения, потоковую передачу и совместимы с OpenAI SDK.
Эндпоинт
Заголовок раздела «Эндпоинт»POST https://gpt.mwsapis.ru/projects/<имя проекта>/openai/v1/responsesВ отличие от чат-моделей, где диалог передается в параметре messages, Responses API принимает в качестве параметра input строку или массив элементов (items). Системный промпт задается отдельно в параметре instructions.
Параметры запроса
Заголовок раздела «Параметры запроса»| Параметр | Тип | Описание |
|---|---|---|
model | string | Идентификатор деплоймента с моделью Responses API |
input | string | array |
instructions | string | (опционально) Системный промпт — инструкции для модели, задающие контекст и поведение |
stream | boolean | (опционально) Включить потоковую передачу ответа в формате SSE. По умолчанию false |
temperature | number | (опционально) Управляет случайностью ответа: чем выше значение, тем более вариативный ответ. По умолчанию 0.55 |
max_output_tokens | integer | (опционально) Максимальное количество токенов в ответе модели |
previous_response_id | string | (опционально) Идентификатор предыдущего ответа. Используется для многошаговых диалогов без необходимости передавать всю историю сообщений. Недоступно для стадии готовности Preview |
store | boolean | (опционально) Сохранять ответ на стороне сервиса для использования в последующих запросах через previous_response_id. По умолчанию true. Для стадии готовности Preview необходимо указывать "store": false |
Базовый запрос
Заголовок раздела «Базовый запрос»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 .Запрос со streaming
Заголовок раздела «Запрос со streaming»При включенном stream: true модель возвращает ответ частями по мере генерации в формате Server-Sent Events (SSE).
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": "Привет!" }'Многошаговый диалог
Заголовок раздела «Многошаговый диалог»Responses API поддерживает два способа ведения диалога: через previous_response_id и через ручную передачу истории сообщений.
С помощью previous_response_id
Заголовок раздела «С помощью previous_response_id»При использовании previous_response_id сервис хранит контекст предыдущего ответа. Для этого способа нет необходимости повторно отправлять всю историю диалога. Достаточно передать идентификатор предыдущего ответа и новый запрос пользователя.
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 как массив элементов. Этот подход дает полный контроль над контекстом: можно удалять или изменять отдельные сообщения.
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 .Запрос с изображением
Заголовок раздела «Запрос с изображением»Модели с поддержкой изображений могут обрабатывать изображения, переданные в сообщении пользователя. Признак поддержки отображается в таблице доступных моделей.
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 .