Devoluciones de llamada
Reciba notificaciones firmadas de servidor a servidor y resultados asincrónicos completos.
Devoluciones de llamada
Configurar una URL de devolución de llamada en Perfil → Devoluciones de llamada y resultados asíncronos. Model Gate envía HTTPS POST solicitudes de notificaciones de cuenta habilitadas y solicitudes de inferencia asincrónicas completadas.
URL de devolución de llamada
Utilice un punto final HTTPS accesible públicamente. El punto final debe leer el cuerpo de la solicitud sin formato, verificar la firma, procesar el evento de forma idempotente y devolver HTTP. 200 tan pronto como el evento haya sido aceptado.
Eventos
Las devoluciones de llamada pueden incluir:
- resultados de inferencia asíncrona completados;
- notificaciones de saldo bajo de cuenta cuando está habilitado;
- Notificaciones de límite de gasto de clave API cuando están habilitadas;
- Notificaciones de límite de gastos de grupos clave cuando están habilitadas.
La entrega de resultados asincrónicos se habilita siempre que se configura una URL de devolución de llamada. Las casillas de verificación de notificación en Perfil controlan solo el saldo correspondiente y las alertas de límite.
Formato de solicitud
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Ejemplo de carga útil de resultado asíncrono:
{
"event":"async.completed",
"request_id":"01J...",
"status":"completed",
"response":{"id":"msg_...","type":"message"}
}
Los campos de carga útil se pueden ampliar con el tiempo. Ignora los campos desconocidos.
Verificación de firma
El encabezado de la firma tiene este formato:
X-Model-Gate-Signature: t=<unix>,v1=<hmac_sha256>
Calcule HMAC-SHA256 sobre la cadena exacta <timestamp>.<raw_body> usando el secreto de devolución de llamada que se muestra en Perfil. Compare la firma hexadecimal con una comparación de tiempo constante y rechace las marcas de tiempo fuera de su ventana de reproducción aceptada.
Entrega y reintentos
Devolver HTTP 200 después de aceptar con seguridad el evento. Es posible que se vuelvan a intentar las respuestas que no sean 2xx y los errores de conexión. Por tanto, su punto final debe ser idempotente; usar request_id junto con event como clave de deduplicación.
No realice trabajos de larga duración antes de responder. Poner en cola el evento internamente, regresar 200y procesarlo de forma asincrónica.