B2BB2B LLM

Terugbelgesprekken

Ontvang ondertekende, idempotente server-naar-server-gebeurtenissen en voltooide asynchrone resultaten.

Terugbelgesprekken

Configureer een terugbel-URL in Profiel → Terugbelgesprekken en asynchrone resultaten. Model Gate verzendt HTTPS POST verzoeken om ingeschakelde accountmeldingen en voltooide verzoeken om native async-inferentie. De terugbellevering is onafhankelijk van de gevolgtrekkingsverwerking en loopt via een speciale, duurzame Model Gate-werkwachtrij.

Terugbel-URL en uitgaande beveiliging

Gebruik een openbaar bereikbaar HTTPS-eindpunt. Validatie van callback-URL's is een uitgaande beveiligingsgrens. Loopback, private, link-local, carrier-grade NAT, documentatie/test, multicast, niet-gespecificeerde en gereserveerde IP-bereiken worden afgewezen. De hostnaam wordt gevalideerd bij het opslaan en opnieuw tijdens de levering; omleidingen worden opnieuw gevalideerd. Wijs geen terugbelverzoeken naar interne diensten of doorverwijzingen naar privénetwerken.

Gemeenschappelijke evenementenenvelop

Elke terugbelactie gebruikt dezelfde envelop:

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

event_id is stabiel voor elke nieuwe poging van één logische gebeurtenis. Ontdubbel leveringen door event_id; leid de identiteit niet af door de rest van de lading te vergelijken. occurred_at is UTC RFC3339. Payloads kunnen in de loop van de tijd extra velden krijgen, dus consumenten moeten onbekende velden negeren.

Elke levering bevat ook hetzelfde gebeurtenis-ID in X-Model-Gate-Event-ID.

Evenementencatalogus

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

De lading gebruikt group_id, group_name, exact decimaal usage, exact decimaal spend_limit, geheel getal threshold_percent, En 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 is nulbaar als er geen upstream HTTP-status bestaat. Mogelijk zijn er mislukte/geannuleerde/verlopen asynchrone resultaten data.error.

Financiële waarden in callback-payloads zijn exacte decimale tekenreeksen; het zijn geen UI-afgeronde weergavewaarden.

Drempelwaarschuwingen worden opnieuw ingeschakeld nadat de bewaakte waarde de drempelwaarde heeft verlaten. De drempelwerker evalueert de omstandigheden ongeveer één keer per minuut, buiten het inferentie-hot-pad, dus drempel-callbacks zijn geen real-time millisecondenoverschrijdingssignaal.

Aanvraag formaat

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

Handtekeningverificatie

Bereken HMAC-SHA256 over de exacte string <timestamp>.<raw_body> met behulp van het terugbelgeheim dat is gegenereerd in Profiel. Het volledige geheim wordt alleen weergegeven wanneer het wordt gegenereerd of geroteerd en wordt in rust versleuteld opgeslagen. Vergelijk de hexadecimale handtekening in constante tijd en wijs tijdstempels buiten uw geaccepteerde herhalingsvenster af. De HMAC-tijdstempel is specifiek voor een bezorgpoging; de event_id blijft stabiel bij nieuwe pogingen.

Levering, reactie en nieuwe pogingen

Elke HTTP 2xx reactie accepteert de gebeurtenis. HTTP 200 met een leeg lichaam wordt aanbevolen. Transportfouten, time-outs en elke niet-2xx-reactie zijn mislukkingen.

Elk evenement heeft er maximaal In totaal 6 pogingen: de eerste poging plus vijf nieuwe pogingen. Mislukte pogingen 1–5 worden gevolgd door 5 seconden, 30 seconden, 2 minuten, 10 minuten en 1 uur. Elke poging heeft een moeilijkheid 15 seconden algehele time-out. Na de zesde mislukte poging wordt de gebeurtenis terminaal failed en er is geen automatische nieuwe poging meer. Verouderde werknemersclaims worden automatisch teruggestuurd naar de duurzame wachtrij.

Voer geen langdurig werk uit voordat u reageert. Controleer de handtekening, volhard/ontdubbel door event_id, opbrengst 2xxen asynchroon verwerken.

Gerelateerde documentatie