Skip to main content
O Gemini no Vertex AI pode chamar uma API de busca fornecida por você e usar os resultados como fontes de grounding. Neste guia, você vai implantar um adaptador simples no Cloud Run que converte a request do Gemini em uma busca do Firecrawl e retorna os resultados no formato esperado pelo Gemini.
Na documentação do Google, esse recurso aparece como Grounding with your search API. O adaptador deste guia é executado no seu próprio projeto do Google Cloud, e as buscas que ele faz são cobradas na sua conta do Firecrawl.

Como funciona

  1. Seu request ao Gemini inclui uma ferramenta de recuperação do tipo externalApi que aponta para o seu adaptador.
  2. Quando precisa de informações, o Gemini envia POST {"query": "..."} ao adaptador, com a sua chave anexada como ?key=.
  3. O adaptador chama o endpoint /v2/search do Firecrawl e responde com um array JSON de objects, cada um com um snippet e um uri. Um array vazio indica que não há resultados.
  4. O Gemini usa os trechos como fontes de grounding e os lista em groundingMetadata na resposta.

Pré-requisitos

  • Uma chave de API do Firecrawl
  • Um projeto do Google Cloud com faturamento, Vertex AI e Cloud Run ativados, e a CLI gcloud autenticada
  • Um modelo Gemini compatível com grounding usando sua API de busca. O Google lista esses modelos na página indicada acima, e o gemini-2.5-flash é um deles.

Construa o adaptador

Crie uma pasta com estes três arquivos.
O adaptador lê a chave de ?key= e a envia ao Firecrawl como token bearer; portanto, o apiKeyString que você fornece ao Gemini é a sua chave de API do Firecrawl. Se a chave estiver ausente ou for rejeitada, a resposta será 401. O Dockerfile inicia o gunicorn sem log de acesso, já que esse log registraria o valor de ?key=. O adaptador nunca registra a consulta nem a chave.

Implantar no Cloud Run

O comando exibe a URL do serviço. Seu endpoint é essa URL seguida de /v0/search. Como o Gemini não consegue anexar um token de identidade do Google a essa chamada, o serviço permite requisições não autenticadas, e a verificação de ?key= funciona como controle de acesso.

Mantenha a chave do Firecrawl fora das URLs

O Cloud Run mantém um log de requests para cada serviço, no qual as URLs dos requests ficam registradas. Para que sua chave do Firecrawl não apareça nesse log, execute o adaptador no modo gateway. Você escolhe um segredo compartilhado que o Gemini vai enviar, e o adaptador usa a chave do Firecrawl armazenada no Secret Manager.
Conceda à conta de serviço de runtime do serviço a função roles/secretmanager.secretAccessor em ambos os segredos. Nesse modo, apiKeyString é o segredo do gateway, que você pode ler com gcloud secrets versions access latest --secret grounding-gateway-key.

Verifique o endpoint

O retorno é um array de objects com snippet e uri. Sem ?key=, o serviço responde com 401.

Fundamentar uma request do Gemini

Substitua YOUR_SERVICE_URL pelo host do seu serviço e YOUR_KEY pela sua Chave de API do Firecrawl ou, se você implantou no modo gateway, pelo segredo do gateway. Para uma localização regional diferente de global, use LOCATION-aiplatform.googleapis.com como host, conforme a referência do Google. Na resposta, as fontes usadas pelo Gemini aparecem em candidates[0].groundingMetadata.groundingChunks. Na resposta REST, o retrievedContext de cada chunk traz o uri e o snippet retornados pelo seu adaptador.

Opções

Defina estas opções como variáveis de ambiente no serviço do Cloud Run, por exemplo, com gcloud run services update firecrawl-grounding --update-env-vars RESULT_LIMIT=5.

Escolhendo um trecho

O Gemini se baseia no texto do trecho, então o conteúdo dele importa mais do que o link. O padrão usa a descrição retornada pela busca do Firecrawl. Por padrão, a busca retorna destaques relevantes para a query nesse campo e, quando não consegue gerá-los, recorre à descrição simples da página. Assim, cada trecho é selecionado em função da query. O modo markdown usa os primeiros caracteres do conteúdo principal de cada resultado, que em alguns sites é um banner ou menu antes do artigo, por isso costuma ser a opção menos eficaz. Ele também deixa cada resposta do Firecrawl muito maior. Use-o quando os resultados que importam para você não tiverem uma descrição útil.

Limites e comportamento

  • O Google permite que uma request de geração use até 10 fontes de grounding, e você pode combinar esta ferramenta com outras, como o Google Search.
  • A página do Google não informa um tamanho máximo de resposta nem um tempo limite para o seu endpoint. Mantenha o adaptador rápido e os trechos curtos. Com os valores padrão, uma resposta contém no máximo 10 trechos de 1.200 caracteres.
  • A busca do Firecrawl aceita queries de até 500 caracteres. O adaptador trunca queries mais longas nesse limite.
  • Cada query corresponde a uma request de busca do Firecrawl, portanto seus limites de taxa e sua cobrança se aplicam a cada busca feita pelo Gemini.
  • O Gemini chama o adaptador uma vez para cada busca que decide executar, e uma única request pode disparar várias buscas.