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 на модела. Поддръжката също съгласува асинхронните редове на терминала с хронологията на заявките и възстановява липсващо обратно извикване на завършване след срив на работния файл. Вижте Обратни повиквания за проверка на подписа, повторни опити и указания за идемпотентност.