Webhooks do Gemini para contextos de 1M de tokens.

As chamadas de contexto longo do Gemini levam de 30 a 60 segundos. Disparar uma delas de um handler de webhook significava polling ou uma fila. Com o AnyHook, nenhum dos dois.

O problema do tempo

A Gemini API entrega webhooks seguindo a especificação Standard Webhooks e tenta de novo uma entrega com falha por 24 horas, com backoff exponencial, então um handler lento é acionado repetidas vezes.

Uma chamada ao Gemini 1.5 Pro com um contexto de 1M de tokens leva de 30 a 60 segundos. Colocar isso num handler de webhook, para fazer RAG sobre um corpus privado a cada evento da Stripe, por exemplo, significa que você não consegue confirmar o recebimento a tempo. As novas tentativas se acumulam e os custos se multiplicam.

30-60 s
Latência de uma chamada de contexto longo ao Gemini
1M
Tokens num único contexto do Gemini
24 h
Por quanto tempo o Gemini tenta de novo um webhook perdido
$0
O plano Free cobre 10 mil eventos / mês

Gemini com contexto longo num handler de webhook

O AnyHook confirma o recebimento e encaminha. Você roda a chamada ao Gemini sobre seu corpus inteiro. Sem loop de polling, sem fila no Redis, sem Cloud Tasks.

import { verifyWebhook } from "anyhook-verify";
import { GoogleGenerativeAI } from "@google/generative-ai";

const gemini = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);

export async function POST(req: Request) {
  if (!(await verifyWebhook(req, process.env.ANYHOOK_SIGNING_SECRET!))) {
    return new Response("invalid", { status: 401 });
  }

  const event = await req.json();

  // Run RAG over the full corpus. 45 seconds. Stripe doesn't care.
  const model = gemini.getGenerativeModel({ model: "gemini-1.5-pro" });
  const result = await model.generateContent([
    fullCorpusFor(tenantOf(event)),
    `Process: ${JSON.stringify(event)}`,
  ]);

  await persistDecision(result.response.text());
  return new Response("ok", { status: 200 });
}

Perguntas que as equipes fazem

O AnyHook é compatível com o esquema de assinatura de webhooks do Gemini?
Sim. O Gemini assina com o padrão Standard Webhooks. Defina a origem do app como Standard Webhooks e cole o segredo de assinatura: o AnyHook verifica cada entrega na edge antes de encaminhá-la.
E se minha chamada ao Gemini bater num rate limit?
Responda um 429 no seu handler. O AnyHook trata isso como erro temporário, aplica backoff exponencial e mostra a sequência de novas tentativas no painel. Você pode fazer o replay do evento original quando sua cota for renovada.
Isso serve só para webhooks da Gemini API ou também para a Vertex AI?
Para os dois. Qualquer coisa que envie webhooks HTTP pode passar pelo AnyHook. O AnyHook verifica as assinaturas na edge para os esquemas listados na documentação, Standard Webhooks incluído; um remetente fora deles funciona como Generic, com os cabeçalhos originais encaminhados para sua própria verificação.

Troque uma URL. Mantenha seu handler de Gemini.

O plano Free cobre 10 mil eventos / mês. Sem SDK: aponte os webhooks de Gemini para sua URL de entrada do AnyHook.