Нейросети через API: как проходит запрос
MarkdownКак это работает
Что происходит с запросом между вашей программой и моделью.
Полное руководство
Вы отправляете запрос в Ailoot API так же, как отправили бы его напрямую в OpenAI, Anthropic или Google. Ailoot проверяет ключ и баланс, передаёт запрос модели, возвращает ответ в том же формате и списывает деньги по фактическому расходу.
Один ключ — три формата
Формат определяется путём запроса, а не моделью. Одну и ту же модель Claude можно вызвать через OpenAI Chat, OpenAI Responses или Anthropic Messages — ответ придёт в формате того пути, который вы вызвали.
| Формат | Путь | Кто им пользуется |
|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, большинство чатов и редакторов, n8n, LangChain |
| OpenAI Responses | /v1/responses | Codex CLI, OpenAI Agents SDK, новые версии SDK |
| Anthropic Messages | /v1/messages | Claude Code, Anthropic SDK, Zed, Cline |
| Gemini | /v1beta/models/{model}:generateContent | Gemini CLI, Google GenAI SDK |
Деньги: резерв и одно списание
- Перед отправкой нового текстового запроса Ailoot резервирует оценку входа и типичного ответа с учётом лимита (
max_tokens) и условий точной модели. Если резерв не помещается в свободный баланс или лимит ключа, уменьшить отправляемый лимит можно только у модели и метода, которые действительно его соблюдают, и не ниже 256 токенов и установленного минимума ответа. Для картинок, видео и звука на выходе сохраняется полный резерв стоимости результата. - После ответа — одно списание по фактическому расходу. Неиспользованный резерв возвращается на баланс сразу.
- Если ответ вышел дороже резерва, разница берётся из свободного баланса. Баланс никогда не уходит в минус.
- Если денег не хватает даже на минимальный резерв, запрос не отправляется: вы получите понятную ошибку 402, ничего не списывается.
- Ошибка, после которой нет результата, не оплачивается.
Подробности и пример расчёта — на странице Резерв и списание.
Ошибки с Request ID
Каждый ответ получает идентификатор запроса: в заголовке X-Request-ID и в тексте ошибки. Ошибки приходят в JSON того формата, который вы вызвали, поэтому SDK их правильно распознают. Если что-то пошло не так, пришлите Request ID в поддержку — так мы найдём запрос за минуту.
{
"code": "API_KEY_REQUIRED",
"error": {
"code": "invalid_api_key",
"message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
"param": null,
"reason": "invalid_api_key",
"request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
"type": "invalid_request_error"
},
"message": "No API key was sent with the request. Nothing was charged. …"
}Поток и таймауты
Потоковые ответы (stream: true) идут как Server-Sent Events. Платный текстовый ответ Ailoot отдаёт после расчёта стоимости. Поэтому с stream: true формат остаётся потоковым (SSE), но текст приходит одним блоком, когда модель закончит, а не по словам. Если ответ готовится дольше примерно 15 секунд, в потоках Chat Completions, Responses и Messages сначала идут служебные строки : ping (примерно раз в 10 секунд), затем строка : ailoot-charged-usd … с суммой списания и сами данные. SDK такие строки пропускают.
В формате Gemini служебных строк нет: ответ :streamGenerateContent приходит целиком после расчёта. Рассуждающим моделям ставьте таймаут клиента с запасом: несколько минут — нормально.
Заголовки ответа
X-Request-ID приходит в каждом ответе. Остальные заголовки Ailoot добавляет к оплаченным текстовым ответам:
| Заголовок | Что в нём |
|---|---|
X-Request-ID | Идентификатор запроса — его просит поддержка |
X-Ailoot-Charged-USD | Сколько списано за этот запрос, в долларах |
X-Ailoot-Output-Tokens | Сколько токенов ответа оплачено |
X-Ailoot-Max-Tokens-Capped | Лимит ответа, до которого его уменьшили, потому что баланса не хватило на полный резерв |
X-Ailoot-Notice-Code, X-Ailoot-Notice | Пояснение, если ответ остановился на лимите длины |
Если поток уже начался служебными строками, эти сведения приходят строкой-комментарием перед данными, а не заголовком.
Кэш промптов
Если модель поддерживает кэширование, повторно отправленный длинный префикс (системная инструкция, документы) может стоить дешевле. Цены чтения и записи кэша показаны в карточке модели в каталоге. Попадание в кэш решает разработчик модели, Ailoot его не гарантирует.
Подробнее
Вопросы о работе нейросетей через API
Как приложение получает ответ нейросети через API?
Вы отправляете запрос в Ailoot API так же, как отправили бы его напрямую в OpenAI, Anthropic или Google. Ailoot проверяет ключ и баланс, передаёт запрос модели, возвращает ответ в том же формате и списывает деньги по фактическому расходу.