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.
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.