O que é RAG e como funciona
Os modelos de linguagem possuem um grande conhecimento geral, mas não conhecem informações específicas da sua empresa ou documentos privados. É aí que entra o RAG (Retrieval-Augmented Generation), uma técnica que combina busca de informações com geração de respostas utilizando IA.
O que é RAG?
RAG (Retrieval-Augmented Generation) é uma arquitetura que permite enriquecer a resposta de um modelo de linguagem utilizando informações externas.
Ao invés de depender apenas do conhecimento do modelo, o sistema busca informações relevantes em uma base de dados e utiliza esse contexto para gerar respostas mais precisas.
Isso permite construir:
- Chatbots corporativos;
- Assistentes internos;
- Busca inteligente em documentos;
- FAQ com IA;
- Sistemas de atendimento.
O problema dos modelos tradicionais
Imagine um chatbot baseado apenas em um LLM.
Se o usuário perguntar:
Qual é a política de férias da empresa?
O modelo provavelmente não saberá responder corretamente, pois essa informação não faz parte do seu treinamento.
Com RAG, o fluxo é diferente:
- A pergunta é recebida.
- Os documentos relevantes são localizados.
- O contexto é enviado ao modelo.
- O modelo gera uma resposta baseada nessas informações.
Como funciona o RAG?
Pergunta do usuário
↓
Embeddings
↓
Banco Vetorial
↓
Busca dos documentos mais relevantes
↓
LLM (GPT, Gemini, Claude)
↓
Resposta final
Componentes principais
Documentos
São as informações que queremos disponibilizar para a IA.
Exemplos:
- PDFs;
- Manuais;
- Documentações;
- FAQs;
- Páginas web;
- Planilhas.
Chunking
Documentos grandes são divididos em pequenos pedaços chamados chunks.
Exemplo:
Documento
↓
Chunk 1
Chunk 2
Chunk 3
Chunk 4
Isso melhora a qualidade da busca.
Embeddings
Embeddings são representações numéricas do texto.
Eles permitem medir a similaridade entre documentos e perguntas.
Por exemplo:
"Política de férias"
↓
[0.23, 0.81, 0.42, ...]
Quando uma pergunta é feita, ela também é transformada em embeddings e comparada com os documentos armazenados.
Banco Vetorial
Os embeddings são armazenados em um banco vetorial.
Algumas opções populares:
- ChromaDB;
- Pinecone;
- Qdrant;
- Weaviate;
- PostgreSQL com pgvector.
Exemplo prático
Imagine um chatbot para documentação interna.
O usuário pergunta:
Como solicitar férias?
Fluxo:
Pergunta
↓
Busca vetorial
↓
Manual do RH
↓
Trecho encontrado
↓
GPT ou Gemini
↓
Resposta
Resposta:
Para solicitar férias, acesse o portal interno e abra uma solicitação com pelo menos 30 dias de antecedência.
A resposta é baseada no documento encontrado, não apenas no conhecimento do modelo.
Exemplo utilizando Python
Gerando embeddings:
embeddings = model.embed_query(
"Como solicitar férias?"
)
Buscando documentos semelhantes:
results = vector_store.similarity_search(
"Como solicitar férias?"
)
Enviando contexto ao LLM:
context = "\n".join(
[doc.page_content for doc in results]
)
prompt = f"""
Responda usando apenas as informações abaixo:
{context}
Pergunta:
Como solicitar férias?
"""
Quando utilizar RAG?
RAG é indicado quando:
- Existem documentos privados;
- O conhecimento muda frequentemente;
- Não é possível treinar modelos próprios;
- É necessário reduzir alucinações;
- Deseja-se construir assistentes corporativos.
Exemplos:
- Chatbots internos;
- Documentação técnica;
- Atendimento ao cliente;
- Base de conhecimento;
- Jurídico;
- RH.
Vantagens
Dados atualizados
Novos documentos podem ser adicionados sem necessidade de treinar novamente o modelo.
Redução de alucinações
As respostas passam a ser baseadas em informações reais.
Menor custo
Não é necessário realizar fine tuning.
Fácil manutenção
Adicionar ou remover documentos é simples.
Desvantagens
Qualidade da resposta depende da busca
Se os documentos corretos não forem encontrados, a resposta poderá ser ruim.
Chunking inadequado
Dividir documentos de forma incorreta pode prejudicar a recuperação de contexto.
Latência maior
Há uma etapa adicional de busca antes da geração da resposta.
Principais bancos vetoriais
ChromaDB
Excelente para projetos pequenos e estudos.
PostgreSQL + pgvector
Ideal para aplicações que já utilizam PostgreSQL.
Pinecone
Serviço gerenciado focado em produção.
Qdrant
Open source e bastante performático.
Weaviate
Possui diversos recursos avançados para IA.
Boas práticas
Utilize chunks pequenos
Entre 300 e 1000 caracteres costuma ser uma boa estratégia.
Armazene metadados
Exemplo:
{
"arquivo": "manual-rh.pdf",
"pagina": 12
}
Isso permite informar a origem da resposta.
Escolha bons modelos de embedding
A qualidade da busca depende diretamente deles.
Utilize filtros
Por exemplo:
- Departamento;
- Data;
- Categoria.
Reavalie documentos periodicamente
Informações desatualizadas podem gerar respostas incorretas.
RAG x Fine Tuning
RAGFine TuningDados externosConhecimento incorporadoFácil atualizaçãoMais complexoMenor custoMais caroExcelente para documentosIdeal para comportamentos específicosNão exige treinamentoRequer treinamento
Na maioria dos casos corporativos, RAG é suficiente.
Conclusão
RAG é uma das técnicas mais utilizadas na construção de aplicações com IA atualmente. Ao combinar busca semântica com modelos de linguagem, é possível criar assistentes inteligentes capazes de responder utilizando documentos e informações privadas.
Com ferramentas como pgvector, ChromaDB e modelos da OpenAI, Gemini ou Claude, tornou-se relativamente simples construir soluções de RAG para diferentes cenários.
Saiba mais
- OpenAI Embeddings
https://platform.openai.com/docs/guides/embeddings - ChromaDB Documentation
https://docs.trychroma.com/ - pgvector
https://github.com/pgvector/pgvector - Pinecone Documentation
https://docs.pinecone.io/ - Qdrant Documentation
https://qdrant.tech/documentation/ - LangChain RAG
https://python.langchain.com/docs/tutorials/rag/