B2BB2B LLM

Devolució de trucades

Rebeu esdeveniments signats i idempotents de servidor a servidor i resultats aixíncrons completats.

Devolució de trucades

Configureu un URL de retorn de trucada a Perfil → Devolució de trucades i resultats asíncrons. Model Gate envia HTTPS POST sol·licituds de notificacions de comptes habilitats i sol·licituds d'inferència asíncrona nativa completades. L'entrega de devolució de trucada és independent del processament d'inferències i s'executa a través d'una cua de treball duradora de Model Gate dedicada.

URL de retorn de trucada i seguretat de sortida

Utilitzeu un punt final HTTPS accessible públicament. La validació de l'URL de retorn de trucada és un límit de seguretat de sortida. Es rebutgen els intervals d'IP de loopback, privat, local d'enllaç, NAT de qualitat d'operador, documentació/prova, multidifusió, no especificats i reservats. El nom d'amfitrió es valida quan es desa i de nou durant el lliurament; les redireccions es revaliden. No apunteu les devolucions de trucada als serveis interns ni les redireccions a xarxes privades.

Sobre d'esdeveniment comú

Cada devolució de trucada utilitza el mateix sobre:

{
  "event_id": "01J...",
  "event": "account.balance_low",
  "occurred_at": "2026-08-28T07:00:00Z",
  "data": {}
}

event_id és estable per a cada reintent d'un esdeveniment lògic. Deduplica els lliuraments per event_id; no inferiu la identitat comparant la resta de la càrrega útil. occurred_at és UTC RFC3339. Les càrregues útils poden obtenir camps addicionals amb el temps, de manera que els consumidors han d'ignorar els camps desconeguts.

Cada lliurament també inclou el mateix identificador d'esdeveniment X-Model-Gate-Event-ID.

Catàleg d'esdeveniments

account.balance_low

{
  "event_id": "01J...",
  "event": "account.balance_low",
  "occurred_at": "2026-08-28T07:00:00Z",
  "data": {
    "balance": "10.1234567890",
    "threshold": "20.0000000000",
    "currency": "USD"
  }
}

key.spend_limit_threshold_reached

{
  "event_id": "01J...",
  "event": "key.spend_limit_threshold_reached",
  "occurred_at": "2026-08-28T07:00:00Z",
  "data": {
    "key_id": "KEY_PUBLIC_ID",
    "key_name": "Bank integration",
    "usage": "80.1234567890",
    "spend_limit": "100.0000000000",
    "threshold_percent": 80,
    "currency": "USD"
  }
}

group.spend_limit_threshold_reached

La càrrega útil utilitza group_id, group_name, decimal exacte usage, decimal exacte spend_limit, nombre sencer threshold_percent, i currency = "USD".

request.completed

{
  "event_id": "01J...",
  "event": "request.completed",
  "occurred_at": "2026-08-28T07:00:00.123456Z",
  "data": {
    "request_id": "01J...",
    "status": "completed",
    "response_status": 200,
    "response": {"id":"msg_...","type":"message"}
  }
}

response_status es pot anul·lar quan no existeix cap estat HTTP amunt. Es poden incloure resultats aixíncrons fallits/cancel·lats/caducats data.error.

Els valors financers de les càrregues útils de devolució de trucada són cadenes decimals exactes; no són valors de visualització arrodonits per la IU.

Les alertes de llindar es tornen a armar després que el valor supervisat abandona la seva condició de llindar. El treballador de llindar avalua les condicions aproximadament una vegada per minut, fora del camí d'inferència, de manera que les devolucions de trucada de llindar no són un senyal de pas de mil·lisegons en temps real.

Format de sol·licitud

POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Event-ID: 01J...
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256

Verificació de la signatura

Calcula HMAC-SHA256 sobre la cadena exacta <timestamp>.<raw_body> utilitzant el secret de devolució de trucada generat al perfil. El secret complet només es mostra quan es genera o gira i s'emmagatzema xifrat en repòs. Compareu la signatura hexadecimal en temps constant i rebutgeu les marques de temps fora de la vostra finestra de reproducció acceptada. La marca de temps HMAC és específica d'un intent de lliurament; el event_id es manté estable durant els reintents.

Lliurament, resposta i reintents

Qualsevol HTTP 2xx resposta accepta l'esdeveniment. HTTP 200 es recomana amb el cos buit. Els errors de transport, els temps d'espera i totes les respostes que no siguin 2xx són errors.

Cada esdeveniment té com a màxim 6 intents en total: l'intent inicial més cinc reintents. Els intents fallits 1-5 van seguits de 5 segons, 30 segons, 2 minuts, 10 minuts i 1 hora. Cada intent té un dur 15 segons temps d'espera global. Després del sisè intent fallit, l'esdeveniment esdevé terminal failed i no hi ha cap més reintent automàtic. Les reclamacions dels treballadors obsolets es tornen automàticament a la cua duradora.

No realitzeu treballs de llarga durada abans de respondre. Verifiqueu la signatura, persisteix/desduplica per event_id, tornar 2xx, i processar de manera asíncrona.

Documentació relacionada