Rappels

Recevez des notifications signées de serveur à serveur et des résultats asynchrones terminés.

Rappels

Configurez une URL de rappel dans Profil → Rappels et résultats asynchrones. Model Gate envoie HTTPS POST demandes de notifications de compte activées et de demandes d'inférence asynchrone terminées.

URL de rappel

Utilisez un point de terminaison HTTPS accessible au public. Le point de terminaison doit lire le corps brut de la requête, vérifier la signature, traiter l'événement de manière idempotente et renvoyer HTTP 200 dès que l'événement a été accepté.

Événements

Les rappels peuvent inclure :

  • résultats d'inférence asynchrone terminés ;
  • notifications de solde de compte faible lorsqu'elles sont activées ;
  • Notifications de limite de dépenses par clé API lorsqu'elles sont activées ;
  • notifications de limite de dépenses des groupes clés lorsqu'elles sont activées.

La livraison des résultats asynchrones est activée chaque fois qu'une URL de rappel est configurée. Les cases à cocher de notification dans Profil contrôlent uniquement les alertes de solde et de limite correspondantes.

Format de demande

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

Exemple de charge utile de résultat asynchrone :

{
  "event":"async.completed",
  "request_id":"01J...",
  "status":"completed",
  "response":{"id":"msg_...","type":"message"}
}

Les champs de charge utile peuvent être étendus au fil du temps. Ignorez les champs inconnus.

Vérification des signatures

L'en-tête de signature a ce format :

X-Model-Gate-Signature: t=<unix>,v1=<hmac_sha256>

Calculez HMAC-SHA256 sur la chaîne exacte <timestamp>.<raw_body> en utilisant le secret de rappel affiché dans le profil. Comparez la signature hexadécimale avec une comparaison à temps constant et rejetez les horodatages en dehors de votre fenêtre de relecture acceptée.

Livraison et tentatives

Renvoyer HTTP 200 après avoir accepté l'événement en toute sécurité. Les réponses non-2xx et les échecs de connexion peuvent être réessayés. Votre point de terminaison doit donc être idempotent ; utiliser request_id avec event comme clé de déduplication.

N'effectuez pas de travail de longue durée avant de répondre. Mettre l'événement en file d'attente en interne, revenir 200, et traitez-le de manière asynchrone.

Documentation associée