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

Responses API

Эндпоинт нового поколения от OpenAI с сохранением состояния: встроенная поддержка инструментов, веб-поиска, поиска по файлам и многошаговых задач — постепенно заменяет Chat Completions.

Создание Response​

POST /v1/responses
RequestREQUEST
POSThttps://test.kailin.com.cn/v1/responses
ResponseRESPONSE
Fill in the request and hit Send — the response shows up here

Запрос​

curl https://test.kailin.com.cn/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-token" \
-d '{
"model": "gpt-4o-mini",
"input": "Describe the Responses API in one sentence"
}'

Тело запроса​

ПараметрТипОбязательноОписание
modelstringДаНазвание модели
inputstring / arrayДаВходной текст или массив сообщений / частей контента
streambooleanНетПотоковый вывод (более разнообразные типы событий)
instructionsstringНетИнструкции системного уровня
previous_response_idstringНетПередайте ID предыдущего Response для непрерывности многоходового диалога без повторной отправки истории
toolsarrayНетИнструменты: function, web_search_preview и др.
temperature / top_pnumberНетПараметры сэмплирования
max_output_tokensnumberНетМаксимум выходных токенов
metadataobjectНетПроизвольные пары «ключ–значение» (до 16)
storebooleanНетСохранять ли результат для обращения по previous_response_id

Пример с массивом input (в том числе с изображением):

{
"model": "gpt-4o-mini",
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "Describe this image" },
{ "type": "input_image", "image_url": "https://example.com/cat.jpg" }
]
}
]
}

Ответ​

{
"id": "resp_abc123",
"object": "response",
"created_at": 1730000000,
"status": "completed",
"model": "gpt-4o-mini",
"output": [
{
"type": "message",
"id": "msg_abc123",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "The Responses API is OpenAI's next-generation stateful endpoint…",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 12,
"output_tokens": 30,
"total_tokens": 42
}
}

Чтобы извлечь текст, переберите элементы output с type: "message" и прочитайте content[].text; в SDK также есть сокращение resp.output_text.

Получение Response​

GET /v1/responses/{response_id}
curl https://test.kailin.com.cn/v1/responses/resp_abc123 \
-H "Authorization: Bearer sk-your-token"

Возвращает полный объект Response. Ответы, созданные с store: false, получить нельзя.

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

POST /v1/responses/compact

Сжимает длинный диалог в краткое резюме — полезно для долго живущих агентов, чтобы снизить расход токенов в последующих запросах:

curl https://test.kailin.com.cn/v1/responses/compact \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-token" \
-d '{
"model": "gpt-4o-mini",
"input": [ ...long message array... ]
}'
ПараметрТипОбязательноОписание
modelstringДаМодель, используемая для сжатия
inputarrayДаМассив сообщений для сжатия
instructionsstringНетСобственные инструкции для составления резюме

Возвращает объект со сжатым резюме, который можно поместить в input следующего запроса.

Примечание

Доступ по WebSocket (wss://.../v1/responses с событиями response.create) зависит от поддержки WS-проксирования на шлюзе — основной путь клиентской интеграции остаётся REST + SSE и здесь не рассматривается.