B2BB2B LLM

Асинхронные запросы

Поставьте в очередь поддерживаемые запросы на вывод и получите их завершенный результат через Partner API.

Асинхронные запросы

Асинхронный режим Model Gate сохраняет задание вывода в устойчивой очереди MariaDB и немедленно возвращает идентификатор запроса. Независимый sub2proxy работники запрашивают поставленные в очередь задания с арендой, а прерванные аренды могут быть восстановлены после перезапуска процесса. Завершенный результат считывается из Partner API или доставляется обратному вызову, настроенному в профиле.

Асинхронный режим поддерживается для:

  • POST /v1/chat/completions
  • POST /v1/messages
  • POST /v1/responses
  • POST /v1/images/generations

Асинхронные запросы не могут использовать stream: true.

Запрос в очередь

Добавьте расширение Model Gate "async": true на действительный запрос.

Запрос

curl https://api.model-gate.com/v1/responses \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "input": "Write a short release summary.",
    "async": true,
    "stream": false
  }'

Ответ — 202

{
  "request_id": "01KZ...",
  "status": "queued",
  "result_url": "https://p-api.model-gate.com/api/v1/requests/01KZ..."
}

The async поле удаляется перед отправкой запроса вверх по течению. Псевдоним модели преобразуется в каноническую модель перед постановкой задания в очередь. Рабочий повторно проверяет ключ и выполняет его через то же ядро ​​запроса/учета Model Gate, что и синхронный вывод. Строки очереди не содержат секретного ключа API. Собственные асинхронные цены не изменились и не используют ценовой коэффициент пакетного запроса.

Прежде чем работник затребует предмет, он проверяет текущий баланс счета и текущее использование сбрасываемых ключей/групповых расходов в MariaDB. Если баланс учетной записи не является положительным или настроенный лимит расходов ключа/группы уже исчерпан, элемент остается queued и не потребляет попытку выполнения. При более позднем пополнении счета, сбросе использования или увеличении лимита предмет автоматически становится доступным. Model Gate не резервирует расчетную стоимость запроса: работа, которая уже прошла допуск, может быть завершена и рассчитана полная фактическая стоимость, даже если одновременная работа делает окончательный баланс отрицательным или немного превышает лимит расходов. Новые исполнения затем блокируются до тех пор, пока учетная запись снова не станет подходящей.

Семантика восстановления

Устойчивая очередь обеспечивает хотя бы один раз восстановление, а не ровно-однократное выполнение. Если рабочий процесс останавливается после того, как вышестоящий поставщик принял запрос, но до того, как Model Gate надолго сохранит асинхронный результат, срок аренды в конечном итоге истечет, и другой рабочий процесс может повторить попытку с тем же идентификатором запроса Model Gate. Расчет защищен от двойного дебетования, но приложения, которые вызывают внешние побочные эффекты с помощью инструментов модели, должны сделать эти побочные эффекты идемпотентными.

Получить результат

Используйте ключ Partner API, принадлежащий той же учетной записи Model Gate.

Запрос

curl https://p-api.model-gate.com/api/v1/requests/01KZ... \
  -H "Authorization: Bearer mg_partner_..."

Ответ — обработка

{
  "data": {
    "request_id": "01KZ...",
    "status": "processing",
    "created_at": "2026-08-05 10:00:00",
    "started_at": "2026-08-05 10:00:01",
    "completed_at": null,
    "expires_at": "2026-08-06 10:00:00"
  }
}

Ответ — завершен

{
  "data": {
    "request_id": "01KZ...",
    "status": "completed",
    "response_status": 200,
    "response_headers": {
      "content-type": ["application/json"]
    },
    "response": {
      "id": "resp_...",
      "object": "response",
      "status": "completed"
    },
    "created_at": "2026-08-05 10:00:00",
    "started_at": "2026-08-05 10:00:01",
    "completed_at": "2026-08-05 10:00:03",
    "expires_at": "2026-08-06 10:00:00"
  }
}

Конечная точка результата возвращает полное сохраненное вышестоящее тело до тех пор, пока expires_at. Возвращается внешний, просроченный или неизвестный идентификатор запроса. 404.

Ошибки

{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_async_stream_combination",
    "message": "Async requests cannot be streamed."
  }
}

Возврат неподдерживаемых конечных точек async_not_supported.

Обратные вызовы

Завершенные асинхронные результаты надолго ставятся в очередь для доставки по URL-адресу обратного вызова, настроенному в профиле. Доставка обратного вызова имеет собственную очередь рабочих/повторных попыток и поэтому не ожидает другого запроса API модели. Обслуживание также согласовывает асинхронные строки терминала с историей запросов и восстанавливает отсутствующий обратный вызов завершения после сбоя рабочего процесса. Видеть Обратные вызовы для проверки подписи, повторных попыток и руководства по идемпотентности.