Oddzwonienia
Otrzymuj podpisane powiadomienia między serwerami i zakończone wyniki asynchronizacji.
Oddzwonienia
Skonfiguruj adres URL wywołania zwrotnego w Profil → Wywołania zwrotne i wyniki asynchroniczne. Model Gate wysyła HTTPS POST żądania dotyczące włączonych powiadomień konta i ukończonych żądań wnioskowania asynchronicznego.
Adres URL wywołania zwrotnego
Użyj publicznie dostępnego punktu końcowego HTTPS. Punkt końcowy powinien odczytać nieprzetworzoną treść żądania, zweryfikować podpis, przetworzyć zdarzenie idempotentnie i zwrócić HTTP 200 jak tylko wydarzenie zostanie zaakceptowane.
Wydarzenia
Wywołania zwrotne mogą obejmować:
- ukończone wyniki wnioskowania asynchronicznego;
- powiadomienia o niskim saldzie konta, gdy są włączone;
- Powiadomienia o limitach wydatków klucza API, jeśli są włączone;
- powiadomienia o limitach wydatków grupy kluczy, jeśli są włączone.
Asynchroniczne dostarczanie wyników jest włączone zawsze, gdy skonfigurowany jest adres URL wywołania zwrotnego. Pola wyboru powiadomień w Profilu kontrolują tylko odpowiednie alerty dotyczące salda i limitów.
Format żądania
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Przykładowy ładunek wyniku asynchronicznego:
{
"event":"async.completed",
"request_id":"01J...",
"status":"completed",
"response":{"id":"msg_...","type":"message"}
}
Pola ładunku można z czasem rozszerzać. Ignoruj nieznane pola.
Weryfikacja podpisu
Nagłówek podpisu ma następujący format:
X-Model-Gate-Signature: t=<unix>,v1=<hmac_sha256>
Oblicz HMAC-SHA256 dla dokładnego ciągu <timestamp>.<raw_body> używając sekretu wywołania zwrotnego pokazanego w profilu. Porównaj podpis szesnastkowy z porównaniem w czasie stałym i odrzuć znaczniki czasu poza zaakceptowanym oknem powtórki.
Dostawa i ponowne próby
Zwróć HTTP 200 po bezpiecznym przyjęciu wydarzenia. Można ponawiać odpowiedzi inne niż 2xx i błędy połączenia. Dlatego Twój punkt końcowy musi być idempotentny; używać request_id razem z event jako klucz deduplikacyjny.
Nie wykonuj długotrwałej pracy przed udzieleniem odpowiedzi. Kolejkuj wydarzenie wewnętrznie i wróć 200i przetwarzaj je asynchronicznie.