Montar SquadSolicitar Orçamento
Engenharia31 de agosto de 20269 min de leituraAtualizado em 6 de setembro de 2026

Como construir um RAG: dos documentos ao assistente que cita a fonte

Os seis passos, os parâmetros de fatiamento, o custo de cada etapa e os sete erros que já custaram retrabalho, com números de um índice real de 2.563 trechos.

Índice do artigo
faltam 9 min de leitura

O índice inteiro do nosso corpus, com 374 documentos e 2.563 trechos, é montado em 0,4 segundo e ocupa 2,15 MB. Não houve banco de dados, servidor de busca nem serviço pago envolvido.

A maior parte do material sobre como construir um RAG começa pela escolha do banco vetorial e termina no prompt. É a ordem inversa da que funciona, e ela produz sistemas que impressionam na demonstração e decepcionam no uso.

Este artigo descreve os seis passos na ordem em que eles decidem o resultado, com os parâmetros reais de um índice que construímos e medimos. Cada passo traz o que ele destrava e o que acontece quando ele é pulado.

Resumo do artigo

  • A avaliação vem primeiro, não por último. Ela responde de graça a pergunta mais cara do projeto: a base sustenta as perguntas do negócio?
  • Os parâmetros de fatiamento importam mais que a escolha do banco: alvo de 350 palavras, teto de 550, sobreposição de 80.
  • Dois filtros vêm antes do modelo caro. Um classificador barato barra a pergunta fora do escopo, e a busca exclui conteúdo vencido.
  • O índice de 2.563 trechos cabe em 2,15 MB e é montado em 0,4 s, o que elimina banco, cache e uma classe inteira de bugs.

O que decidir antes de escrever a primeira linha

Três decisões travam o resto do projeto, e todas são de negócio, não de engenharia. Adiá-las produz retrabalho na etapa em que ele é mais caro.

  • Quais fontes entram e qual é a versão oficial de cada assunto quando duas se contradizem
  • Quem pode ver o quê, porque permissão precisa entrar na busca e não no texto da resposta
  • O que é sensível a tempo, como preço, prazo e SLA, e por isso precisa de regra própria de validade
  • O que acontece quando o sistema não sabe, incluindo o texto exato que ele vai mostrar
  • Quem é o dono de ler as perguntas sem boa resposta e corrigir o conteúdo

A última é a que mais some do escopo e a que mais determina se o assistente continua bom seis meses depois. Sem dono, a base envelhece e as respostas pioram devagar, sem nenhum alarme.

Passo 1: transformar documentos em trechos

O modelo não recebe documentos, recebe pedaços. Fatiar bem é o que decide se o pedaço que chega ao modelo contém uma ideia completa ou o final de um raciocínio e o começo de outro.

A regra que funciona é respeitar a estrutura do documento antes de contar palavras: cortar por seção, e só então agrupar seções curtas ou dividir seções longas até chegar ao tamanho alvo.

ParâmetroValor e motivo
Alvo por trecho350 palavras, o suficiente para uma ideia completa sem diluir os termos que a busca usa
Teto550 palavras, para uma seção longa não virar um trecho que domina o contexto sozinho
Sobreposição80 palavras entre trechos vizinhos, para a resposta que cai na emenda não se perder
Piso25 palavras, abaixo disso o trecho é descartado por não carregar informação
Mediana obtida119 palavras, porque muitas seções são curtas e viram trechos próprios

A distância entre o alvo de 350 e a mediana de 119 diz uma coisa útil sobre conteúdo institucional: ele é feito de muitas seções curtas. Perseguir o tamanho alvo à força, colando seções que não têm relação, piora a busca em vez de melhorar.

Ilustração isométrica de um documento sendo dividido em fichas menores que se sobrepõem parcialmente

Cada trecho precisa carregar consigo os metadados que vão ser usados depois: a URL de origem, o título do documento, a data, o tipo de fonte e a seção de onde saiu. Recuperar o texto sem saber de onde ele veio inviabiliza a citação, que é a metade do valor do sistema.

A URL merece atenção especial. Ela precisa ser a mesma que o site publica como canônica, senão as citações do assistente apontam para endereços que redirecionam.

Passo 2: indexar, começando pelo mais simples

A escolha padrão da indústria é gerar embeddings e guardar num banco vetorial. A escolha que recomendamos para começar é uma busca lexical por palavras, do tipo que bibliotecas de busca implementam há décadas.

O motivo não é ideológico, é de sequência: a busca lexical não tem custo por consulta, não exige serviço externo, roda em segundos e produz uma linha de base contra a qual qualquer coisa mais sofisticada precisa provar que melhora. Sem linha de base, você não sabe se o banco vetorial ajudou.

2.563Trechos indexados
14.519Termos no índice
2,15 MBTamanho do índice
0,4 sTempo para montar

Nessa escala, o índice inteiro cabe na memória do processo e percorrer tudo é mais rápido que consultar uma estrutura aproximada. O que isso destrava é operacional: sem banco, some a categoria de erro mais chata de um RAG, que é o índice e o texto ficarem dessincronizados e o sistema citar um documento que já mudou.

Passo 3: o porteiro que vem antes da busca

Antes de buscar qualquer coisa, uma pergunta precisa ser respondida: isso é assunto da empresa? Colocar essa decisão depois da busca é o erro de desenho mais comum, e ele custa nas duas pontas.

A tentação é usar a pontuação da busca como critério: se nada pontuou bem, o assunto está fora. Medimos e a hipótese está refutada. A pergunta "qual a melhor receita de bolo de cenoura" pontuou 9,52 no nosso índice, contra 8,88 de "vocês desenvolvem chatbot com IA". A pergunta fora do escopo ganhou.

Esse mesmo classificador resolve a segunda categoria perigosa, que é a pergunta de preço, prazo e SLA. Ela está no escopo, e mesmo assim não deve ser respondida por geração de texto: ela vai para um caminho próprio, com conteúdo curado e atualizado, ou para o contato humano.

Passo 4: escolher o que entra no contexto do modelo

Recuperar dez trechos e mandar os dez é o comportamento padrão de um protótipo, e ele produz dois problemas que só aparecem em uso real.

O primeiro é a dominância de documento. Uma página longa tem muitas seções e, se todas pontuarem razoavelmente, ela ocupa a lista inteira e o resto da base fica invisível. A correção é um teto de trechos por documento, que no nosso caso é dois.

O segundo é o conteúdo vencido. Como a relevância não enxerga data, documento antigo vence com frequência. A correção é etiquetar cada trecho com uma faixa de frescor derivada da data e excluir as faixas vencidas antes de montar o contexto, com exclusão permanente para o que é sensível a tempo.

Ilustração isométrica de trechos passando por dois filtros antes de chegar à mesa do modelo

O terceiro ajuste é mais sutil e vale a pena medir antes de aplicar: quantos trechos entregar. Na nossa medição, dobrar a lista de 10 para 20 trechos comprou 3,6 pontos percentuais de acerto.

Isso significa que material adicional acima de certo ponto adiciona custo e ruído sem adicionar resposta. O ganho está em melhorar o conteúdo, não em mandar mais dele.

Passo 5: gerar a resposta com citação

Só aqui o modelo grande entra, e ele entra com uma instrução restritiva: responder apenas com o material fornecido, e dizer que não sabe quando o material não sustentar a resposta. Um modelo bom obedece a isso com bastante consistência quando o material recuperado é limpo.

Ilustração isométrica de um painel de resposta ligado por três fios a três pastas específicas dentro de um arquivo

A citação é o que transforma a resposta em algo auditável: cada afirmação passa a ter um endereço de origem, e quem recebeu a resposta consegue conferir sem pedir ajuda a ninguém.

Ela também é o que permite corrigir. Uma resposta errada com fonte aponta qual documento precisa mudar; uma resposta errada sem fonte vira discussão.

Essa peça tem uma armadilha de implementação que só aparece na tela.

Passo 6: a avaliação, que quase todo projeto pula

Esta é a etapa que separa um projeto de engenharia de uma sequência de palpites, e a boa notícia é que ela é a mais barata de todas: roda sem modelo, sem chave de API e sem custo.

O material de avaliação já existe na maioria das empresas: são as perguntas que a operação responde por escrito, cada uma associada ao documento que a responde. Duas métricas bastam para começar. A primeira é se o documento certo apareceu entre os primeiros resultados. A segunda, mais reveladora, é quanto da resposta correta estava presente no material recuperado.

avaliação de recuperação
$ node tools/rag/eval.js638 perguntas avaliadas, 1.788 trechos no índicerecall@10          74,9%cobertura da resposta   54,1%critério estrito de 85%: não atingido
A saída que interessa não é a primeira linha, é a lista de falhas que vem depois dela.

O valor real dessa etapa não está no número agregado, está na lista de perguntas que falharam. Ler essa lista é a atividade de maior retorno do projeto inteiro, porque cada falha aponta para um documento que precisa ser escrito, corrigido ou aposentado.

Um detalhe de método que muda o resultado: a avaliação precisa remover do índice o texto das próprias perguntas. Sem isso você mede se o sistema encontra o que já está escrito com as mesmas palavras, o que dá números excelentes e não prova nada.

Onde o dinheiro vai

O custo de operação de um RAG é bastante assimétrico, e entender a assimetria é o que permite desenhar barato.

EtapaCusto por perguntaObservação
Classificação de escopoMuito baixoPoucas dezenas de tokens de entrada, saída mínima, modelo pequeno
BuscaPraticamente zeroPercorre um índice em memória, sem chamada externa
Geração da respostaO maior de todosÚnico passo que usa o modelo grande, com o contexto recuperado junto
IndexaçãoNão é por perguntaRoda no build ou em agenda, e o nosso leva 0,4 segundo

A consequência de projeto é a ordem dos filtros. Toda pergunta que o classificador barra é uma geração que não aconteceu, e a geração é o único item caro da tabela. Um sistema que busca e gera primeiro, e só depois avalia se deveria ter respondido, paga o item caro em todas as perguntas ruins.

Onde hospedar

Quando o índice cabe no pacote de deploy, a arquitetura fica pequena de um jeito que resolve problemas em vez de criar.

Node.jsLê o conteúdo, fatia e gera o índice
o índice viaja junto com o deploy, sem banco no meio
Função sem servidorClassifica, busca e transmite a resposta
Modelo de linguagemRedige apenas com o material recuperado

O que essa simplicidade destrava é confiabilidade. Sem banco, o índice e o texto publicado são gerados no mesmo processo e não podem divergir. Sem cache separado, some a invalidação. A complexidade de infraestrutura passa a se justificar quando o corpus não cabe mais em memória, e não antes.

Duas regras de segurança fecham o desenho. O índice não pode ser publicado numa pasta pública, porque isso entrega o conteúdo estruturado para qualquer rastreador. E a chave do modelo não pode entrar numa variável de ambiente que o empacotador do site inclui no pacote do navegador, porque toda variável desse tipo vira texto visível no navegador de quem acessa.

Sete erros que já custaram retrabalho

ErroO que acontece
Escolher o banco vetorial antes de medirCompra-se infraestrutura para um problema que talvez não exista, sem linha de base para comparar
Avaliar com perguntas que estão no índiceOs números saem ótimos e não dizem nada sobre pergunta inédita
Usar a pontuação da busca como filtro de escopoPergunta fora do assunto passa, e pergunta legítima é recusada
Ignorar a data dos documentosO conteúdo antigo vence a disputa por relevância e a resposta sai desatualizada
Mandar todos os trechos recuperadosUma página longa domina o contexto e o resto da base fica invisível
Prometer citação de seção sem verificar as âncorasO link cai no topo da página e o usuário não encontra o trecho
Não definir quem cuida do conteúdoO sistema nasce bom e degrada sozinho, sem alarme

Um caminho de entrega que funciona

A ordem abaixo tem uma propriedade útil: cada etapa entrega valor sozinha e tem um critério de aceite verificável, o que permite parar em qualquer ponto sem ficar com um sistema pela metade.

  1. Decisões de conteúdo, sem escrever código: fontes oficiais, permissões, o que é sensível a tempo e quem é o dono da curadoria.
  2. Índice e avaliação, rodando local. O aceite é ter a lista de perguntas que a base não responde, que já é entregável por si só.
  3. Endpoint com classificador, busca e geração. O aceite é o conjunto de perguntas passar, incluindo as de fora do escopo caindo na recusa.
  4. Busca com IA na interface que já existe, mantendo a busca antiga como reserva para falha de rede.
  5. Assistente conversacional, por último, porque é o que exige o estado de recusa pronto e a política de dados resolvida.

Se o orçamento acabar depois da segunda etapa, a empresa fica com um mapa das perguntas que o negócio recebe e não sabe responder por escrito. Esse mapa costuma valer mais do que o assistente.

Fontes e método

Os parâmetros e números deste artigo vêm de um protótipo de recuperação construído sobre o conteúdo público da X-Apps, executado em 31 de agosto de 2026, com 374 documentos e 2.563 trechos.

A avaliação usou 730 perguntas escritas pelo time de conteúdo com documento de origem conhecido, das quais 638 foram avaliadas após descartar 5 sem corpo de documento e 87 sem termo distintivo em comum com o documento esperado.

A ressalva de alcance: essas medições avaliam recuperação, e não a qualidade final do texto gerado. O corpus é de conteúdo institucional em português, e bases de outra natureza, como código ou documentos jurídicos multilíngues, podem exigir decisões diferentes de fatiamento e de busca.

Perguntas frequentes

Pela avaliação, não pela geração. Monte o índice, rode as perguntas reais da operação e leia os trechos recuperados sem pedir resposta a nenhum modelo. Se os trechos respondem, o projeto é viável. Se não respondem, o problema é de conteúdo e nenhum modelo resolve.

Post anterior
Acervo da empresa como ativo de IA: o modelo se aluga, o corpus não
Próximo post
Claude Opus 5: custo e qualidade em cada nível de esforço
Newsletter

Um e-mail por mês, sem ruído

O que aprendemos entregando software sob medida e IA aplicada.

Artigos similares

O que é DevOps?4 min · Engenharia
Entenda o framework Angular2 min · Engenharia
APIs e microsserviços: a reinvenção da tecnologia2 min · Engenharia
APIs em Blockchain: o que é possível aprender da aplicação?3 min · Engenharia
Docker: armazenamento inteligente2 min · Engenharia

Acelere a sua empresa com a X-Apps

Alocar profissionaisSolicitar Orçamento
A X-Apps é um provedor de TI parceiro e aconselhada pelo
Gartner
Receba nossos e-mails
Siga nossas redes sociais
O seu time de tecnologia e IA. Software sob medida, soluções de IA e alocação de profissionais.
Vamos conversar?
comercial@x-apps.com.br11 5083-0122

Rua Rodrigo Vieira, 126

Jardim Vila Mariana. São Paulo, SP.

CEP: 04115-060

Mapa do site
Termos de serviçoTermos de privacidade
Available in English