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ě.

Související dokumentace