diogodev_
Conteúdo

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:

  1. A pergunta é recebida.
  2. Os documentos relevantes são localizados.
  3. O contexto é enviado ao modelo.
  4. 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