Skip to main content
Um modelo sozinho não consegue responder a perguntas sobre eventos após o limite de seu treinamento, nem citar uma fonte. A solução é grounding: recuperar conteúdo relevante da web no momento da solicitação e passá-lo ao modelo como contexto. Este guia mostra o padrão usando o Novita AI Search para recuperação e a API de LLM para síntese — tudo por trás de uma única chave de API.

O que é RAG?

Geração aumentada por recuperação (RAG) é o padrão por trás de toda resposta fundamentada aqui: em vez de depender do que o modelo memorizou durante o treinamento, você recupera documentos relevantes no momento da solicitação e aumenta o prompt com eles, para que o modelo gere sua resposta a partir desse contexto novo e verificável. Essa etapa de recuperação é exatamente o que o AI Search oferece. A web se torna sua base de conhecimento, e você não precisa criar nem manter um banco de dados vetorial para começar — uma chamada de busca retorna os trechos, e o LLM faz o restante. Quando, mais tarde, você quiser recuperação sobre seus próprios documentos privados, o mesmo formato em três etapas se aplica; você apenas troca a busca na web por um armazenamento vetorial. RAG oferece três coisas que um modelo isolado não consegue oferecer:
  • Atualidade — as respostas refletem conteúdo publicado após o limite de treinamento do modelo.
  • Atribuição — toda afirmação pode apontar para uma URL de origem que o usuário pode verificar.
  • Alucinação reduzida — fundamentar o modelo em texto recuperado impede que ele invente fatos.

Como a fundamentação funciona

Uma única rodada de RAG segue três etapas:
  1. Buscar (recuperar) na web páginas relevantes para a pergunta.
  2. Extrair (aumentar) o conteúdo de que você precisa — snippets ou texto completo da página — para dentro do prompt.
  3. Sintetizar (gerar) uma resposta passando esse conteúdo para um LLM, pedindo que ele cite fontes.
Você pode fazer isso com duas chamadas (busca + LLM) ou até mesmo uma, já que tanto Exa quanto Tavily podem sintetizar uma resposta para você. Escolha com base em quanto controle você precisa sobre a redação final e as citações.

Deixe o provedor escrever a resposta

O caminho mais rápido. O Search da Tavily retorna uma resposta gerada por LLM quando você define include_answer, e a Exa oferece um Answer endpoint. Uma chamada, sem orquestração.
Use isto quando quiser uma boa resposta com o mínimo de código. Use a abordagem de recuperar e depois sintetizar abaixo quando precisar de controle sobre o modelo, o tom, o formato de saída ou como as citações são apresentadas.

Recupere e depois sintetize com um LLM

Isso oferece controle total. Busque fontes e depois entregue os resultados para a LLM API com instruções para responder usando apenas esse contexto e citar cada afirmação.
O mesmo fluxo funciona com o Exa Search — troque a rota para /v3/exa/search e leia text de cada resultado em vez de raw_content.

Ajustando a qualidade da recuperação

A qualidade de uma resposta fundamentada depende muito mais de o que você recupera do que do modelo. Alguns controles de alto impacto:
  • Atualidade. Para perguntas sensíveis ao tempo, restrinja por data. Tavily expõe time_range e start_date/end_date; Exa expõe startPublishedDate/endPublishedDate. Isso mantém páginas desatualizadas fora do contexto.
  • Confiança na fonte. Use include_domains/excludeDomains para restringir a recuperação a fontes em que você confia (documentação oficial, editoras respeitáveis) e excluir sites de baixa qualidade.
  • Dicas de tópico. Da Tavily topic (news, finance, general) e da Exa category direcionar o mecanismo para o tipo certo de resultado.
  • Dimensionamento correto do contexto. Limite o texto extraído (Tavily chunks_per_source, Exa maxCharacters) para que você passe sinal suficiente sem estourar a janela de contexto do modelo ou seu orçamento de tokens.

Search vs. extract vs. crawl

Escolha a primitiva de recuperação que corresponde à sua necessidade:
  • Search — você tem uma pergunta e precisa descobrir páginas relevantes. O ponto de partida padrão.
  • Extract / Contents — você já conhece as URLs e quer texto limpo delas. Bom para fundamentação em um conjunto fixo de documentos. Veja Tavily Extract e Exa Contents.
  • Rastrear / Mapear — você quer ingerir um site inteiro ou uma seção, seguindo links. Bom para criar uma base de conhecimento offline. Veja Tavily Crawl e Tavily Map.
Para um agente mais completo que pesquisa iterativamente e raciocina sobre muitas fontes, consulte a integração DeepSearcher.

Levando para produção

  • Lide com resultados vazios. Se a busca não retornar nada relevante, faça com que o modelo diga que não pode responder, em vez de inventar uma resposta. O prompt de sistema acima faz isso.
  • Use cache quando puder. Consultas idênticas retornam resultados semelhantes; armazenar a recuperação em cache reduz custo e latência.
  • Preste atenção aos limites de taxa. A recuperação e as chamadas de LLM são limitadas separadamente — uma solicitação de busca não consome sua cota de LLM. Reduza o ritmo em 429 para qualquer um deles. Consulte limites de taxa de LLM para o lado do LLM.
  • Mantenha as chaves no lado do servidor. Sua chave da Novita autentica todas as chamadas aqui — nunca a inclua em código do lado do cliente.
Última modificação em 10 de agosto de 2026