Zpětná volání
Přijímat podepsaná oznámení mezi servery a dokončené výsledky asynchronizace.
Zpětná volání
Nakonfigurujte adresu URL zpětného volání v Profil → Zpětná volání a asynchronní výsledky. Model Gate odesílá HTTPS POST požadavky na aktivovaná oznámení o účtu a na dokončené požadavky na asynchronní odvození.
Adresa URL zpětného volání
Použijte veřejně dostupný koncový bod HTTPS. Koncový bod by měl přečíst nezpracované tělo požadavku, ověřit podpis, zpracovat událost idempotentně a vrátit HTTP 200 jakmile bude akce přijata.
Události
Zpětná volání mohou zahrnovat:
- dokončené asynchronní výsledky odvození;
- upozornění na nízký zůstatek účtu, když je povoleno;
- Oznámení o limitu výdajů na klíč API, když je povoleno;
- upozornění na limit útraty klíčové skupiny, když je povoleno.
Asynchronní doručování výsledků je povoleno vždy, když je nakonfigurována adresa URL pro zpětné volání. Zaškrtávací políčka upozornění v profilu řídí pouze odpovídající upozornění na zůstatek a limit.
Formát požadavku
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Příklad užitečného zatížení asynchronního výsledku:
{
"event":"async.completed",
"request_id":"01J...",
"status":"completed",
"response":{"id":"msg_...","type":"message"}
}
Pole užitečného zatížení se mohou časem rozšiřovat. Neznámá pole ignorujte.
Ověření podpisu
Záhlaví podpisu má tento formát:
X-Model-Gate-Signature: t=<unix>,v1=<hmac_sha256>
Vypočítejte HMAC-SHA256 přes přesný řetězec <timestamp>.<raw_body> pomocí tajemství zpětného volání zobrazeného v profilu. Porovnejte hexadecimální podpis s porovnáním v konstantním čase a odmítněte časová razítka mimo přijaté okno přehrávání.
Doručení a opakování
Vrátit HTTP 200 po bezpečném přijetí události. Odpovědi jiné než 2xx a selhání připojení mohou být opakovány. Váš koncový bod proto musí být idempotentní; použití request_id spolu s event jako deduplikační klíč.
Než odpovíte, neprovádějte dlouhotrvající práci. Interně zařadit událost do fronty, vrátit se 200a zpracovat jej asynchronně.