Blog
Nossas últimas novidadesRAG na prática: como conectar um LLM à sua base de conhecimento sem perder qualidade
RAG bem feito troca “resposta inventada” por “resposta com fonte”.
E isso muda o jogo quando você precisa de confiabilidade.
Modelos de linguagem (LLMs) são ótimos para explicar, resumir e organizar informação — mas têm um limite duro: eles não “sabem” o que mudou ontem no seu negócio, nem têm acesso automático às suas políticas internas, documentação técnica, manuais ou base de ajuda.
É aí que entra o RAG (Retrieval‑Augmented Generation): em vez de pedir para o modelo “lembrar”, você faz o sistema buscar trechos relevantes em uma base confiável e só então gerar a resposta com esse contexto.
O que você vai encontrar aqui
- O que é RAG (em linguagem direta) e quando usar
- A arquitetura típica (do usuário ao “trecho citado”)
- Como preparar documentos para o RAG funcionar de verdade
- Decisões que mais impactam qualidade: chunking, embeddings, busca e reranking
- Métricas que ajudam a evoluir sem “achismo”
- Erros comuns e um checklist final para copiar e colar
O que é RAG (e por que tanta gente adota)
RAG é uma abordagem onde a aplicação recupera informação de uma base externa (documentos, páginas, FAQs, manuais, políticas) e usa esses trechos como contexto para o LLM gerar a resposta.
Na prática, você ganha:
- Respostas mais atualizadas (porque a base pode mudar sem “re-treinar” modelo)
- Menos alucinação (porque o modelo é incentivado a usar evidência)
- Auditabilidade (quando você cita fontes/trechos)
- Controle (você decide quais documentos entram e com que regras)
Se quiser aprofundar a definição oficial, a AWS descreve RAG como otimizar a saída de um LLM fazendo referência a uma base de conhecimento confiável fora do treinamento.
Quando RAG é a melhor escolha (e quando não é)
RAG costuma ser o caminho certo quando:
- seu conhecimento muda com frequência (produto, preço, regras, políticas, suporte)
- você precisa usar conteúdo privado (documentos internos, manuais, padrões)
- você quer uma resposta com citação e rastreabilidade
- você quer reduzir risco de “respostas convincentes, porém erradas”
RAG não é a melhor primeira opção quando:
- o problema é “tom de voz” ou estilo (aí fine-tuning pode fazer sentido)
- você precisa de um modelo para uma tarefa específica e repetitiva (classificar, extrair campos, etc.)
- o conteúdo é pequeno e estável (às vezes um bom prompt + fontes estáticas resolve)
Dica prática: muita gente começa com RAG e só considera fine-tuning depois, quando já entendeu padrões de uso e qualidade.
Arquitetura em 1 minuto
Abaixo está o fluxo mais comum em sistemas de RAG (com variações):
O ponto-chave: o LLM não deve inventar a base. Ele deve usar o que foi recuperado e, quando não houver evidência, assumir “não sei”.
Se você também precisa proteger dados sensíveis no RAG, este artigo complementa bem: Dados sensíveis em RAG.
Passo a passo para um RAG que não vira “Frankenstein”
1) Defina o objetivo e o “não objetivo”
Antes de qualquer embedding, responda:
- Qual pergunta o usuário quer resolver?
- O que pode ser respondido com segurança?
- O que não pode ser respondido (limites de responsabilidade, dados sensíveis, etc.)?
Uma regra simples que ajuda muito: defina uma política de resposta do tipo:
- “Se não houver evidência suficiente nos trechos recuperados, responda que não encontrou informação e sugira o próximo passo.”
Isso reduz alucinação e reduz retrabalho.
2) Escolha as fontes (e crie governança mínima)
RAG falha muito mais por “conteúdo ruim” do que por “modelo ruim”.
Checklist de governança mínima:
- quais fontes entram (ex.: docs, base de ajuda, wiki, PDFs)
- quem é responsável por atualizar
- com que frequência você reindexa
- como você versiona (para investigar regressão)
Se a base tem conteúdo sensível, o ideal é aplicar controles antes de indexar (ver o artigo de dados sensíveis linkado acima).
3) Faça ingestão e limpeza (o básico que ninguém quer fazer)
PDF e HTML costumam vir com ruído: cabeçalho repetido, rodapé, menus, sumário… e isso vai parar no embedding.
Faça pelo menos:
- remover boilerplate (menus, “copyright”, duplicações)
- normalizar títulos e seções
- extrair texto de tabelas com cuidado
- preservar metadados úteis (categoria, produto, data, permissão)
4) Chunking: o tamanho do trecho muda tudo
Chunking é como você “quebra” o documento em pedaços para indexar.
Regras práticas:
- chunk pequeno demais → perde contexto, aumenta falsas recuperações
- chunk grande demais → aumenta custo e mistura assuntos
Uma estratégia comum: chunk por seção (H2/H3) com limite de tamanho e um pouco de overlap (para não “cortar” um conceito no meio).
5) Embeddings + metadados: não é só vetor
Embeddings colocam texto em um espaço numérico para busca por similaridade.
Mas a qualidade do RAG também depende de metadados e filtros:
- idioma
- categoria / produto
- nível de acesso (ACL)
- data / versão
- tipo do documento (política, tutorial, FAQ)
Em muitos casos, combinar “similaridade vetorial + filtro por metadado” melhora muito.
6) Recuperação e reranking: onde a qualidade nasce
A sequência típica:
- pegar top‑k por similaridade
- aplicar filtros
- rerank (reordenar) com um modelo mais caro/preciso
- montar contexto final com 3–8 trechos bem selecionados
Sinal clássico de “retrieval fraco”: o modelo responde errado mesmo com bom prompt, porque os trechos trazidos não tinham a resposta.
7) Resposta com fontes (e com “não sei”)
Um padrão simples e forte:
- o LLM só pode afirmar algo se houver evidência nos trechos
- a resposta deve incluir “Fonte: …” ou citar título/URL/ID do documento
- quando não houver evidência, ele deve admitir e orientar o próximo passo
Isso aumenta confiança e reduz suporte.
8) Avaliação: sem isso, você não sabe se melhorou
Se você quer evoluir RAG com segurança, trate como produto:
- crie um conjunto de perguntas reais (20–200 casos já ajudam)
- defina critérios (correto, completo, citou a fonte, não vazou dado)
- rode avaliações a cada mudança (modelo, prompt, dados, chunking)
Um bom complemento é ter testes de regressão para prompts e RAG: Testes de regressão para prompts e RAG.
Erros comuns (que parecem “misteriosos”, mas não são)
- Indexar documento duplicado ou desatualizado
Resultado: o RAG “briga” entre versões. - Misturar conteúdo público e interno sem controle
Resultado: vazamento ou respostas inconsistentes. - Confiar em top‑k sem reranking
Resultado: trechos “parecidos”, mas errados. - Enviar contexto gigante “para garantir”
Resultado: custo alto e resposta confusa. - Não ter telemetria
Resultado: você não sabe se o problema é retrieval, prompt, modelo ou dados.
Checklist final (copie e cole)
- Objetivo do RAG definido + limites (“não objetivo”) documentados
- Fontes escolhidas + responsável por atualização
- Pipeline de ingestão com limpeza e metadados úteis
- Chunking definido (com regra de tamanho e overlap)
- Recuperação com filtros e reranking (quando necessário)
- Resposta com citações/IDs de fonte e política de “não sei”
- Conjunto de casos de teste (perguntas reais)
- Monitoramento: latência, custo, taxa de “não achei”, qualidade percebida
- Plano de evolução: versionar dados/prompt/modelo para investigar regressões