B2BB2B LLM

Solicitări asincrone

Puneți în coadă solicitările de inferență acceptate și preluați rezultatul lor finalizat prin Partner API.

Solicitări asincrone

Modul asincron Model Gate stochează un job de inferență în coada durabilă MariaDB și returnează imediat un ID de solicitare. Independent sub2proxy lucrătorii revendică locuri de muncă aflate în coadă cu contracte de închiriere, iar contractele de închiriere abandonate pot fi recuperate după repornirea procesului. Rezultatul finalizat este citit din Partner API sau livrat la apelul invers configurat în Profil.

Modul asincron este acceptat pentru:

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

Solicitările asincrone nu pot fi utilizate stream: true.

Solicitare la coadă

Adăugați extensia Model Gate "async": true la o cerere altfel valabilă.

Cerere

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
  }'

Răspuns - 202

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

The async câmpul este eliminat înainte ca cererea să fie trimisă în amonte. Un alias de model este rezolvat la modelul său canonic înainte ca jobul să fie pus în coadă. Lucrătorul revalidează cheia și execută prin același model de cerere/nucleu de contabilitate ca inferență sincronă. Rândurile din coadă nu conțin niciun secret al cheii API. Prețul asincron nativ este neschimbat și nu utilizează coeficientul de preț al cererii de lot.

Înainte ca un lucrător să revendice un articol, acesta verifică soldul contului curent și utilizarea curentă a cheii/grupului resetat în MariaDB. Dacă soldul contului nu este pozitiv sau o limită configurată a cheltuielilor cheie/grup este deja epuizată, articolul rămâne queued și nu consumă o încercare de execuție. O reîncărcare ulterioară, o resetare a utilizării sau o creștere a limitei face ca articolul să fie eligibil automat. Model Gate nu își rezervă un cost estimat de solicitare: lucrărilor care au trecut deja admiterea i se permite să se termine și să-și deconteze costul efectiv complet, chiar și atunci când lucrările concomitente fac soldul final negativ sau depășește ușor o limită de cheltuieli. Noile execuții sunt apoi blocate până când contul este din nou eligibil.

Semantica de recuperare

Coada durabilă oferă recuperare cel puțin o dată, nu exact-o singură dată execuție. Dacă un proces de lucru se oprește după ce un furnizor din amonte a acceptat o solicitare, dar înainte ca Model Gate să stocheze în mod durabil rezultatul asincron, contractul de închiriere expiră în cele din urmă și un alt lucrător poate reîncerca același ID de solicitare Model Gate. Decontarea este protejată împotriva dublului debit, dar aplicațiile care provoacă efecte secundare externe prin instrumente model ar trebui să facă acele efecte secundare idempotente.

Preluați rezultatul

Utilizați o cheie Partner API aparținând aceluiași cont Model Gate.

Cerere

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

Răspuns - procesare

{
  "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"
  }
}

Răspuns - finalizat

{
  "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"
  }
}

Punctul final rezultat returnează corpul complet stocat în amonte până la expires_at. Se întoarce un ID de solicitare străin, expirat sau necunoscut 404.

Erori

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

Punctele finale neacceptate revin async_not_supported.

Reapeluri

Rezultatele asincrone finalizate sunt puse în coadă în mod durabil pentru livrare la adresa URL de apel invers configurată în Profil. Livrarea apelului înapoi are propria coadă de lucru/reîncercare și, prin urmare, nu așteaptă o altă solicitare Model API. Întreținerea reconciliază, de asemenea, rândurile asincrone ale terminalului în istoricul cererilor și recuperează un apel invers de finalizare lipsă după un accident de lucrător. Vedea Reapeluri pentru verificarea semnăturii, reîncercări și îndrumări privind idempotenta.