Справочник API/Эндпоинты и примеры/Responses
Responses
Эндпоинт, совместимый с OpenAI Responses; Codex CLI использует этот формат по умолчанию. Входные данные передаются в поле input, ответ — массив output, а рассуждения и вызовы инструментов — отдельные элементы.
https://api.wokey.ai/v1/responses· Совместим с OpenAI ResponsesНа этой страницеexpand_more
Примерlink
Укажите base URL https://api.wokey.ai/v1. Настройка Codex CLI описана на странице Codex CLI в разделе «Клиенты».
curl https://api.wokey.ai/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"instructions": "You are a helpful assistant.",
"input": [
{ "role": "user", "content": "Hello" }
],
"reasoning": { "effort": "medium" },
"store": false
}'Заголовкиlink
| Заголовок | Значение | Описание |
|---|---|---|
AuthorizationОбязательно | Bearer YOUR_API_KEY | Ваш API-ключ Wokey. Подходит и x-api-key: YOUR_API_KEY. |
Content-TypeОбязательно | application/json | Тело запроса — JSON. |
X-End-User-Id | string | Необязательно. ID вашего конечного пользователя, 1–128 видимых символов ASCII. С ним ограничения за повторные нарушения действуют только на этого пользователя. |
Параметры запросаlink
Ниже — параметры, которые шлюз читает или которые меняют его поведение. Остальные передаются в той мере, в какой их поддерживает апстрим выбранной модели.
| Параметр | Тип | Описание |
|---|---|---|
modelОбязательно | string | Непустой ID модели, в точности совпадающий с ID из списка моделей. |
inputОбязательно | string | array | Входные данные: строка текста или массив сообщений и элементов. Поле messages этот эндпоинт не принимает — запрос с ним вернёт 400. |
instructions | string | Системные инструкции. Для GPT, если их нет, шлюз подставляет "You are a helpful assistant.". |
reasoning | object | Например {"effort": "high", "summary": "auto"}. У GPT effort по умолчанию medium. На Claude через этот эндпоинт не влияет. |
stream | boolean | При true ответ приходит потоком событий SSE. |
tools | array | Функции-инструменты и встроенные инструменты вроде web_search. Поддерживаются и tool_choice, parallel_tool_calls. |
text | object | Формат вывода, например JSON Schema для структурированного вывода в text.format. |
max_output_tokens | integer | Модели GPT его не поддерживают и игнорируют. Для Claude передаётся как max_tokens, по умолчанию 4096. Grok, DeepSeek, MiniMax и похожие модели получают его как есть. |
store | boolean | Для GPT всегда считается false: Wokey не хранит диалоги у апстрима. |
previous_response_id | string | Не поддерживается. Диалоги у апстрима не хранятся, поэтому каждый запрос должен содержать всю историю в input — Codex CLI так и делает по умолчанию. |
include | array | Например ["reasoning.encrypted_content"], чтобы получить зашифрованные рассуждения. Верните эти элементы reasoning во input следующего хода, чтобы продолжить рассуждения и попасть в кэш. |
prompt_cache_key | string | Ключ кэша, до 64 символов. Постоянное значение в рамках сессии помогает попаданиям в кэш. |
provider | object | Расширение Wokey для выбора или исключения поставщиков. Используется только для маршрутизации и не пересылается апстриму. |
Как Wokey обрабатывает запросlink
Что шлюз делает до и после пересылки и чем это отличается от прямого вызова официального API.
- Модели GPT пересылаются в формате Responses без преобразования. Основные изменения: store всегда false; user, safety_identifier, max_output_tokens и параметры сэмплирования не пересылаются; элементы input с role system становятся developer.
- В этом формате можно вызывать и Claude, DeepSeek и другие модели не от OpenAI. Claude здесь не поддерживает настройки рассуждений, а его usage содержит только input_tokens, output_tokens и total_tokens; для всех возможностей Claude используйте Messages.
- POST /v1/responses/input_tokens считает входные токены запроса. POST /v1/responses/compact сжимает контекст и поддерживает только модели GPT.
- GET /v1/responses (режим WebSocket) не поддерживается и возвращает 426 websocket_not_supported.
- metadata и provider не пересылаются апстриму.
Если у модели несколько поставщиков, добавьте в тело запроса объект provider, чтобы выбрать или исключить поставщиков. Выбор поставщиков и их порядка →
Ответlink
{
"id": "resp_...",
"object": "response",
"status": "completed",
"model": "gpt-6-sol",
"output": [
{ "type": "reasoning", "id": "rs_...", "summary": [] },
{
"type": "message",
"id": "msg_...",
"role": "assistant",
"content": [{ "type": "output_text", "text": "Hello! How can I help you today?" }]
}
],
"usage": {
"input_tokens": 21,
"input_tokens_details": { "cached_tokens": 0 },
"output_tokens": 42,
"output_tokens_details": { "reasoning_tokens": 32 },
"total_tokens": 63
}
}- Заголовок ответа x-wokey-request-id — ID запроса в Wokey. Указывайте его, когда сообщаете о проблеме.
- Массив output по порядку перечисляет элементы рассуждений, сообщений и вызовов инструментов. output_text в SDK склеивает весь текст.
- GPT: input_tokens включает кэшированные токены, их число — в input_tokens_details.cached_tokens; токены рассуждений — в output_tokens_details.reasoning_tokens.
- Claude: input_tokens не включает кэш, детализация кэша не возвращается.
Потоковая передачаlink
У каждого события есть строки event: и data:; последнее событие — response.completed.
event: response.created
data: {"type":"response.created","response":{"id":"resp_...","status":"in_progress"}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","item_id":"msg_...","output_index":1,"delta":"Hello!"}
event: response.output_text.done
data: {"type":"response.output_text.done","item_id":"msg_...","output_index":1,"text":"Hello! How can I help you today?"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_...","status":"completed","usage":{"input_tokens":21,"output_tokens":42,"total_tokens":63}}}- Для GPT поток событий апстрима передаётся без изменений.
- Для других моделей шлюз формирует события в формате Responses; поток заканчивается response.completed, после чего идёт data: [DONE].
- Ошибка во время потока приходит событием response.failed.
- Пока апстрим не прислал первый байт, шлюз периодически отправляет строки-комментарии SSE, которые клиенты игнорируют.
Формат ошибокlink
{
"error": {
"code": "model_not_found",
"message": "Model ID \"gpt-6-sun\" was not recognized. The correct model ID is \"gpt-6-sol\"; use it and try again. See https://wokey.ai/models for the full list.",
"type": "invalid_request_error"
}
}Ошибки в формате OpenAI: error.code — код для обработки, error.type обычно invalid_request_error. Что означает каждый статус и что делать, см. Коды ошибок и устранение неполадок →