Responses
MarkdownНовый формат OpenAI: один вход, типизированный выход, инструменты и рассуждения. Его использует Codex CLI.
Полное руководство
https://api.ailoot.ai/v1/responsescurl https://api.ailoot.ai/v1/responses \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"instructions": "Отвечай кратко.",
"input": "Чем отличается TCP от UDP?"
}' from openai import OpenAI
import os
client = OpenAI(max_retries=0, base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"])
resp = client.responses.create(
model="gpt-6.1-sol",
instructions="Отвечай кратко.",
input="Чем отличается TCP от UDP?",
)
print(resp.output_text)import OpenAI from "openai";
const client = new OpenAI({ maxRetries: 0, baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY });
const resp = await client.responses.create({
model: "gpt-6.1-sol",
instructions: "Отвечай кратко.",
input: "Чем отличается TCP от UDP?",
});
console.log(resp.output_text);{
"id": "resp_67f1…",
"object": "response",
"status": "completed",
"model": "gpt-6.1-sol",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{ "type": "output_text", "text": "TCP гарантирует доставку и порядок, UDP — нет, зато быстрее…" }
]
}
],
"usage": { "input_tokens": 24, "output_tokens": 61, "total_tokens": 85 }
}Авторизация
- Authorizationheaderобязательный
Ключ в виде
Bearer sk-…. Также подойдут заголовкиx-api-keyилиx-goog-api-key.
Тело запроса
- modelstringобязательный
ID модели с форматом Responses. Таких в каталоге 53: GPT, Claude, DeepSeek, Qwen, Kimi, GLM, MiniMax, Grok. Модели Gemini в этом формате недоступны.
- inputstring | arrayобязательный
Текст запроса или массив сообщений и частей (текст, картинки).
- instructionsstringнеобязательный
Системная инструкция.
- streambooleanнеобязательный
Поток событий SSE; последнее событие —
response.completed. Платный текст приходит одним блоком после расчёта стоимости. - max_output_tokensintegerнеобязательный
Максимум токенов ответа, включая рассуждения. Если не указан, Ailoot подставляет 4096 (или меньше, если у модели лимит ответа меньше). Для длинных ответов задайте лимит явно. Запросы с
previous_response_idи со встроенными инструментамиweb_searchилиcode_interpreterдля новых текстовых запросов учитывают отдельные оценки сохранённого контекста и работы инструментов; они не переходят автоматически к стоимости всего входного окна. Прежние принятые резервы сохраняют исходные условия. Для картинок, видео и звука на выходе резервируется полная стоимость результата. Если рассчитанный резерв не помещается в доступный баланс или лимит ключа, для поддерживаемой модели и метода Ailoot может уменьшитьmax_tokens(max_output_tokensв Responses) до оплачиваемого объёма, но не ниже 256 токенов или большего минимума данного метода, и сообщает об этом в заголовкеX-Ailoot-Max-Tokens-Capped. Возможность уменьшения проверяется для точной текстовой модели и метода. Она применяется к поддерживаемым текстовым маршрутам Gemini в родном формате Gemini и в формате Anthropic Messages;deepseek-ai/deepseek-v4.1-flash,meta/llama-3.2-11b-vision-instruct,meta/muse-glimmer-30b,nvidia/ising-calibration-1.5-31b,nvidia/nemotron-3-nano-omni-30b-a3b-reasoning,nvidia/nemotron-3-super-120b-a12b,nvidia/nemotron-3-ultra-550b-a55b,nvidia/nemotron-3.5-content-safety,nvidia/nemotron-3.5-lightning-30b-a3b,nvidia/riva-translate-4b-instruct-v1.1,nvidia/riva-translate-4b-instruct-v2,poolside/laguna-xs-2.1,z-ai/glm-5.3-flash— в форматах Chat Completions и Messages (там, где модель их поддерживает). Выход для резерва нового текстового запроса оценивается по типичной длине ответа и принятым условиям. Запрошенный лимит задаётся черезmax_tokens(max_output_tokensв Responses). Запрошенный лимит не равен автоматически числу токенов, по которому рассчитан резерв, и не гарантирует фактическую длину ответа у модели без надёжного ограничения. Исходное значение 4096 применяется только к соответствующим маршрутам; конкретное правило зависит от модели и метода. - reasoningobjectнеобязательный
{"effort": "low" | "medium" | "high"}для рассуждающих моделей. - toolsarrayнеобязательный
Функции, которые модель может вызвать.
- textobjectнеобязательный
Формат ответа, например
{"format": {"type": "json_schema", ...}}. - temperaturenumberнеобязательный
Случайность ответа, если модель её поддерживает.
Ответ
- outputarray
Элементы ответа: сообщения (
message), рассуждения, вызовы функций. В SDK удобно братьoutput_text. - statusstring
completed,incomplete(упёрся в лимит) илиfailed. - usageobject
input_tokens,output_tokens,total_tokens.