Inteligência Artificial

RAG na prática: construindo um sistema de perguntas e respostas com documentos internos

RAG na prática: construindo um sistema de perguntas e respostas com documentos internos

Retrieval-Augmented Generation (RAG) é a arquitetura que permite que LLMs respondam perguntas baseadas em documentos que não estavam no treinamento do modelo. Em vez de confiar apenas no conhecimento interno do LLM, RAG busca trechos relevantes da sua base de documentos e os fornece como contexto para a resposta. O resultado: respostas fundamentadas em dados reais da sua empresa, não alucinações.

Arquitetura de um sistema RAG

O pipeline RAG tem três fases: indexação, retrieval e geração. Na indexação, documentos são divididos em chunks, cada chunk é transformado em um vetor numérico (embedding) por um modelo de embedding, e os vetores são armazenados em um banco vetorial. No retrieval, a pergunta do usuário é transformada em embedding e comparada com os vetores indexados por similaridade coseno — os chunks mais similares são recuperados. Na geração, os chunks relevantes são injetados no prompt do LLM junto com a pergunta, e o modelo gera uma resposta baseada nesse contexto.

Cada fase tem decisões críticas que impactam dramaticamente a qualidade das respostas. O tamanho do chunking, o modelo de embedding, a estratégia de retrieval e o prompt de geração são os quatro pilares que determinam se seu RAG será confiável ou frustrante.

Chunking: dividindo documentos corretamente

O chunking converte documentos longos em pedaços indexáveis. A regra geral é: chunks entre 200 e 500 tokens funcionam bem para a maioria dos casos. Chunks muito pequenos perdem contexto — uma frase isolada raramente tem informação suficiente para uma boa resposta. Chunks muito grandes diluem a relevância — se apenas uma frase do chunk de 2000 tokens é relevante, o LLM precisa filtrar muito ruído.

Estratégias de chunking incluem: divisão por parágrafos naturais, divisão por seções/headers do documento, janela deslizante com sobreposição de 10-20% entre chunks adjacentes para preservar contexto, e chunking semântico que usa um modelo de NLP para identificar boundaries temáticos. A sobreposição é particularmente importante — se a resposta estiver na fronteira entre dois chunks, sem sobreposição ela pode ser perdida.

Embeddings e banco vetorial

Modelos de embedding transformam texto em vetores densos que capturam significado semântico. Textos similares em significado têm vetores próximos no espaço vetorial. OpenAI text-embedding-3-small é uma opção sólida e barata, mas modelos open-source como BGE, E5 e GTE oferecem qualidade comparável e rodam localmente. Para domínios especializados como jurídico ou médico, considere fine-tune do modelo de embedding com dados do seu domínio para melhorar a acurácia do retrieval.

Para armazenamento, ChromaDB é excelente para protótipos e aplicações de menor escala (roda em memória, setup de uma linha). Qdrant e Weaviate oferecem persistência, filtragem por metadata, e escalabilidade para milhões de documentos. Para quem já usa PostgreSQL, a extensão pgvector evita adicionar outro serviço à stack com uma performance surpreendentemente boa para volumes de até centenas de milhares de documentos.

Retrieval avançado

Busca semântica simples tem limitações. Hybrid search combina busca semântica (embedding similarity) com busca lexical (BM25/keywords), capturando tanto significado quanto termos exatos — especialmente importante para nomes de produtos, códigos e siglas que embeddings podem não diferenciar bem. Reranking com modelos como Cohere Reranker ou BGE-reranker reordena os resultados do retrieval inicial por relevância, melhorando significativamente a qualidade dos top-K chunks.

Multi-query retrieval gera múltiplas variações da pergunta original e busca com cada uma, unindo os resultados. Isso contorna a limitação de que a formulação exata da pergunta pode não ser a melhor query de busca. Contextual compression filtra e compacta chunks recuperados para manter apenas as porções diretamente relevantes à pergunta, reduzindo ruído no contexto do LLM.

Avaliação e qualidade

Meça a qualidade do RAG com métricas específicas: retrieval precision verifica se os chunks recuperados são realmente relevantes, answer faithfulness verifica se a resposta é fiel ao contexto recuperado sem alucinações, e answer relevance verifica se a resposta endereça a pergunta do usuário. Frameworks como RAGAS automatizam essas avaliações com datasets de teste. Crie um golden dataset de 50-100 pares pergunta-resposta manualmente e avalie regularmente para detectar regressões quando componentes mudam.

Tem um projeto em mente?

Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.

Resposta rápida Orçamento sem compromisso +100 projetos entregues
Compartilhar: