Retornos de chamada

Receba notificações assinadas de servidor para servidor e resultados assíncronos concluídos.

Retornos de chamada

Configure um URL de retorno de chamada em Perfil → Retornos de chamada e resultados assíncronos. Modelo Gate envia HTTPS POST solicitações de notificações de conta habilitadas e solicitações de inferência assíncronas concluídas.

URL de retorno de chamada

Use um endpoint HTTPS acessível publicamente. O endpoint deve ler o corpo da solicitação bruta, verificar a assinatura, processar o evento de forma idempotente e retornar HTTP 200 assim que o evento for aceito.

Eventos

Os retornos de chamada podem incluir:

  • resultados de inferência assíncrona concluídos;
  • notificações de saldo baixo da conta quando ativadas;
  • Notificações de limite de gastos com chave de API quando ativadas;
  • notificações de limite de gastos de grupos-chave quando ativadas.

A entrega assíncrona de resultados é habilitada sempre que um URL de retorno de chamada é configurado. As caixas de seleção de notificação no Perfil controlam apenas os alertas de saldo e limite correspondentes.

Formato de solicitação

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

Exemplo de carga útil de resultado assíncrono:

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

Os campos de carga útil podem ser estendidos ao longo do tempo. Ignore campos desconhecidos.

Verificação de assinatura

O cabeçalho da assinatura tem este formato:

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

Calcule HMAC-SHA256 na string exata <timestamp>.<raw_body> usando o segredo de retorno de chamada mostrado em Perfil. Compare a assinatura hexadecimal com uma comparação de tempo constante e rejeite os carimbos de data e hora fora da janela de reprodução aceita.

Entrega e novas tentativas

Retornar HTTP 200 depois de aceitar o evento com segurança. Respostas diferentes de 2xx e falhas de conexão podem ser repetidas. Seu endpoint deve, portanto, ser idempotente; usar request_id junto com event como uma chave de desduplicação.

Não execute trabalhos de longa duração antes de responder. Coloque o evento na fila internamente, retorne 200e processá-lo de forma assíncrona.

Documentação relacionada