“Quero que o ChatGPT consulte o manual da empresa e responda perguntas.” “Quero buscar e resumir novas pesquisas.” Nessas tarefas, o conhecimento aprendido pelo modelo pode não bastar: você pode fornecer os documentos necessários na hora da resposta.

Uma opção é RAG (Retrieval-Augmented Generation, geração aumentada por recuperação): busca informações relevantes em fontes externas e as acrescenta ao contexto da resposta. Recursos prontos também consultam documentos, mas enviar um arquivo não aciona sempre o mesmo processo de busca.

Neste artigo explicamos como o RAG funciona em 3 passos, falamos sobre bancos vetoriais, implementação em LangChain e como escolher entre RAG e fine-tuning -- tudo de uma forma acessível para iniciantes, mas tecnicamente correta.

RAG (Retrieval-Augmented Generation)

Geração Aumentada por Recuperação -- como dar conhecimento externo ao LLM

Usuário
Faz a pergunta
Question
Banco vetorial
Retrieval (busca)
Pinecone / Qdrant
Chroma / pgvector
LLM
Generation (geração)
GPT / Claude
Gemini / Llama
Resposta
Com fontes citadas
Answer
Conhecimento externo
Documentos / PDF
Manuais / FAQ
Artigos / Notícias
Prompt aumentado
Resultados + pergunta
v Enviado ao LLM
RAG funciona em 3 passos
1 Retrieval (busca) -> 2 Augmented (aumento) -> 3 Generation (geração)
Complementa o conhecimento aprendido; busca, resposta e permissões precisam ser verificadas

1. O Que é RAG -- Retrieval-Augmented Generation

RAG (Retrieval-Augmented Generation) traduzido literalmente significa "geração (Generation) aumentada (Augmented) por recuperação/busca (Retrieval)". Em português, costuma aparecer como "geração aumentada por busca" ou "geração aumentada por recuperação".

Em resumo: um LLM usa informações relevantes recuperadas de fontes externas ao gerar a resposta. Os diagramas mostram o padrão básico: buscar primeiro e responder depois. Também é possível usar bancos existentes ou busca por palavras-chave; um banco vetorial não é obrigatório.

Uma analogia culinária

O LLM sozinho é como um "chef que cozinha só de memória". Ótimo, mas não prepara uma receita que não conhece, e nem sabe o que tem na geladeira.

RAG é o mecanismo que "entrega ao chef o livro de receitas e diz o que tem na geladeira antes dele cozinhar". Agora ele consulta o livro e usa o que está disponível para preparar o melhor prato.

O papel de "Retrieval", "Augmented" e "Generation"

TermoSignificadoPapel no RAG
RetrievalBusca / recuperaçãoTira do banco os documentos relevantes para a pergunta
AugmentedAumentado / enriquecidoAcrescenta a info encontrada ao prompt enviado ao LLM
GenerationGeraçãoO LLM gera a resposta consultando os resultados da busca

O ponto-chave é que você não retreina o LLM; em vez disso, a cada pergunta entrega o "conhecimento necessário" vindo de fora. É justamente essa a diferença decisiva em relação ao fine-tuning, que veremos mais adiante.

O guia de recuperação do LangChain explica o padrão básico e o uso de bancos SQL ou sistemas de documentos existentes.

2. Por Que o RAG é Necessário -- 3 Limites do LLM Sozinho

LLMs como ChatGPT e Claude têm 3 problemas que não conseguem resolver sozinhos.

Limite 1: corte de conhecimento (frescor da informação)

O conhecimento aprendido pelo modelo não verifica, por si só, mudanças posteriores ao treinamento. A data de corte varia conforme o modelo; fatos posteriores exigem documentos ou resultados de busca.

  • “Qual produto foi anunciado ontem?” → consultar o anúncio
  • “O que mudou nos termos na semana passada?” → consultar a nova versão
  • “Qual é a taxa de câmbio de hoje?” → consultar dados com data e hora

RAG pode usar notícias, bancos de dados ou APIs. Porém, fontes desatualizadas também levam a respostas desatualizadas: é preciso manter os documentos e verificar a busca.

Limite 2: alucinações (mentiras plausíveis)

Se o LLM não sabe a resposta, costuma inventar algo que parece verdade. Isso se chama "alucinação" (hallucination).

Sem receber uma política privada, o modelo pode inventar um número plausível sobre as férias de uma empresa. É um exemplo explicativo, não uma resposta executada ou observada para este artigo.

RAG recupera documentos para ajudar a fundamentar a resposta. Metadados permitem mostrar nomes ou páginas, mas uma citação não prova que a resposta está correta: a busca pode omitir informações e o modelo pode interpretá-las mal.

Limite 3: sem acesso a dados internos ou privados

Não presuma que um modelo público conhece os manuais ou contratos privados da empresa. Antes de fornecê-los, confira a autorização de uso e para onde serão enviados.

RAG seleciona conteúdo relevante, mas não garante a confidencialidade. Mesmo com banco próprio, APIs externas de embeddings ou LLM recebem documentos, perguntas ou trechos. Verifique permissões na busca, destinos, armazenamento e registros; as perguntas frequentes explicam as diferenças.

3. Como Funciona -- RAG em 3 Passos

O funcionamento do RAG se divide em duas fases: "preparação prévia (indexação)" e "execução (perguntas e respostas)".

Pipeline completo de RAG

Da pergunta até a resposta final

> Fase de execução: respondendo à pergunta
1 Pergunta
"Quantos dias?"
User Query
2 Embed
Modelo de embedding
[0.12, -0.45, ...]
3 Busca vetorial
Top-K vizinhos
Cosine Similarity
4 Chunks obtidos
3-5 trechos
Art. 15: férias...
↓
5 LLM + Contexto (Prompt aumentado)
«Responda com base no seguinte: [chunk] Pergunta: [consulta]»
GPT / Claude / Gemini gera resposta com base nas fontes
↓
6 Resposta com citações
"Após 6 meses: 10 dias (exemplo fictício, Art. 15)"
> Fase de preparação: vetorizando documentos
Documento
PDF / Word
Chunking
500-1000 chars
Embedding
Vetorização
Banco vetorial
Salva e indexa
* Executado ao adicionar/atualizar

Fase de preparação -- vetorizar e armazenar os documentos

  1. Coleta dos documentos: junte os arquivos a usar (PDF, Word, HTML, Markdown etc.)
  2. Divisão em chunks: separe os documentos em pedaços de tamanho adequado (por exemplo, 500 a 1000 caracteres)
  3. Embedding: passe cada chunk por um modelo de embedding (ex.: OpenAI text-embedding-3-small) para transformar em um vetor de 1536 dimensões (uma lista de números)
  4. Armazenar no banco vetorial: salve os chunks e seus vetores em um banco especializado (Pinecone, Qdrant etc.)

Essa etapa é executada quando os documentos são adicionados ou atualizados.

Fase de execução -- 3 passos para responder

Quando uma pergunta chega, o fluxo é:

  1. Passo 1: Retrieval (busca)
    • O texto da pergunta é vetorizado pelo mesmo modelo de embedding
    • Recupera os K trechos mais próximos do vetor da pergunta (3 neste exemplo)
    • A proximidade costuma ser calculada por similaridade do cosseno
  2. Passo 2: Augmented (aumento)
    • Os chunks recuperados são inseridos no prompt como "informação de referência"
    • Algo como: "Responda à pergunta com base nas informações a seguir: [resultados]. Pergunta: [pergunta do usuário]"
  3. Passo 3: Generation (geração)
    • O LLM (GPT, Claude, Gemini etc.) gera a resposta com base na referência
    • Se preciso, ele cita "qual documento foi consultado"

Exemplo concreto: perguntar ao ChatGPT sobre o regulamento interno

Os dias, os períodos de serviço e os números de artigo abaixo pertencem a uma política fictícia; não representam um direito real.

Fluxo para a pergunta "quantos dias de férias temos?":

  1. A pergunta vira um vetor pelo modelo de embedding -> [0.12, -0.45, 0.78, ...]
  2. O banco vetorial retorna 3 chunks ligados a "férias", "descanso" etc.
  3. Chunks recuperados: "Art. 15 -- Férias anuais. Após 6 meses de serviço, o funcionário tem direito a 10 dias..." etc.
  4. Prompt montado: "Referência: Art. 15... Pergunta: quantos dias de férias temos?"
  5. O LLM responde: "Após 6 meses de serviço, o funcionário tem direito a 10 dias de férias (vide Art. 15 do regulamento)"

4. Os Principais Componentes do RAG

Vamos olhar os 5 componentes que formam um RAG.

(1) Modelo de embedding

É uma IA que transforma texto em vetores numéricos. Ela é treinada para que "textos com significado parecido fiquem próximos no espaço vetorial".

ModeloProvedorCaracterísticas
text-embedding-3-smallOpenAI1536 dimensões por padrão; redução possível com dimensions
text-embedding-3-largeOpenAI3072 dimensões por padrão; redução possível com dimensions
voyage-4Voyage AIApresentado na documentação da Anthropic; há versões leve e de pesos abertos
Cohere EmbedCohereCandidato para busca em documentos multilíngues
multilingual-e5-largeMicrosoft (modelo público)Candidato local; conferir termos de uso e recursos
BGE-M3BAAI (OSS)Multilíngue; candidato para uso local

O guia oficial de embeddings explica as dimensões padrão da OpenAI e sua redução. Avalie os candidatos com seus documentos, não apenas pelas dimensões. Um banco ou extensão armazena vetores e recupera os semelhantes; veja a próxima seção.

(2) Banco de dados vetorial

(3) Mecanismo de busca (retriever)

Além da busca vetorial, é comum combinar busca por palavras-chave (BM25 etc.) ou busca híbrida.

(4) LLM (geração)

O modelo de linguagem que gera a resposta final. GPT, Claude, Gemini, Llama etc. Funciona com APIs comerciais ou modelos OSS rodando localmente. Todas essas famílias trocam de versão o tempo todo, então confira os nomes de modelo atuais na nossa lista dos principais modelos de IA.

(5) Template de prompt

O template que une os resultados da busca à pergunta do usuário antes de enviar para o LLM. É peça-chave para a precisão do RAG.

Voce e um assistente especialista no regulamento interno.
Responda a pergunta usando apenas as informacoes de referencia abaixo.
Se a informacao nao estiver presente, responda "nao tenho essa informacao".

[Referencia]
{retrieved_chunks}

[Pergunta]
{user_question}

[Resposta]

5. O Que é um Banco de Dados Vetorial

Um banco vetorial oferece índices e recursos para armazenar vetores de alta dimensão e recuperar os semelhantes. Você pode usar um serviço dedicado ou ampliar um banco existente, como PostgreSQL com pgvector. Velocidade e precisão dependem do índice, dos dados e da configuração.

Comparativo dos principais bancos vetoriais

DBTipoCaracterísticasPreço
PineconeSaaS gerenciadoO serviço gerencia a infraestruturaStarter gratuito; Builder: US$ 20/mês. Standard: mínimo de US$ 50/mês; uso adicional cobrado separadamente (preços oficiais)
WeaviateOSS + nuvemAPI GraphQL, busca híbridaOSS gratuito; Cloud: Free e Flex a partir de US$ 45/mês (preços oficiais)
QdrantOSS + nuvemBusca vetorial e filtros de metadadosAuto-hospedado ou Cloud; recursos e preços de Cloud são separados
ChromaOSSPode ser usado em PythonHospedagem e operação têm custos próprios
pgvectorExtensão PostgreSQLUse seu PostgreSQL existenteConfira licença e custos de operação do banco
MilvusOSS + nuvemConstrução de busca vetorialAuto-hospedado ou Zilliz Cloud; condições diferentes
ElasticsearchMotor de buscaBusca vetorial e por palavras-chaveDepende da distribuição, dos recursos e do contrato; opção gerenciada
Vertex AI Vector SearchGoogle CloudIntegra com o ecossistema GCPCobrança por uso

Qual escolher?

Os preços de Pinecone e Weaviate foram conferidos nas páginas oficiais em 9 de outubro de 2026. Software gratuito também exige hospedagem e manutenção. Custos de nuvem dependem de capacidade, buscas, recursos adicionais e outras opções.

  • Testar busca em Python: Chroma ou similar; prepare pacotes e modelos
  • Aproveitar o PostgreSQL existente: pgvector (mantém tudo em um único banco)
  • Delegar a infraestrutura: Pinecone ou outro serviço gerenciado; índices, capacidade e permissões ainda precisam de configuração
  • Auto-hospedagem: Qdrant ou Weaviate; gerencie operação e permissões
  • Grandes coleções: avalie candidatos como Milvus com dados reais: índices, capacidade e busca

A propósito, sobre onde hospedar o sistema, veja também a comparação entre PaaS (Vercel etc.), hospedagem compartilhada, VPS e nuvem.

6. Principais Casos de Uso -- Onde o RAG Aparece

RAG pode apoiar respostas baseadas em documentos internos, produtos e outras fontes. Veja exemplos de usos possíveis.

Caso 1: QA sobre documentos internos (base de conhecimento)

Busque regulamentos, manuais, especificações, atas ou materiais comerciais para responder aos funcionários. O projeto deve restringir documentos conforme as permissões e refletir suas mudanças no índice.

Caso 2: atendimento ao cliente automatizado

FAQs e histórico de suporte viram um RAG; um chatbot faz o atendimento de primeiro nível. Operadores humanos ficam para casos mais complexos.

Caso 3: Q&A jurídico e médico

Busque legislação, decisões, artigos médicos ou diretrizes como referência. Exibir uma fonte não prova sua atualidade nem a exatidão da resposta. Em decisões importantes, um profissional deve conferir os originais, as condições e a jurisdição.

Caso 4: busca e resumo de artigos científicos

Busque artigos ou resumos cujo uso seja permitido para perguntas sobre tendências ou pesquisas relacionadas. Informe datas e abrangência das fontes; confira resultados e condições nos originais.

Caso 5: busca de produtos e FAQ em e-commerce

Manuais, avaliações e políticas de devolução integrados em um RAG. Permite buscas em linguagem natural como "este aspirador funciona com pelo de animal de estimação?".

Caso 6: chat de documentação para desenvolvedores

Busque documentação de bibliotecas ou APIs para responder perguntas como “há um exemplo para este processamento?”. Confira versões e condições dos exemplos recuperados.

Caso 7: busca e explicação em código interno

Busque código e projetos para explicar funções ou localizar implementações semelhantes. Ferramentas de desenvolvimento também podem consultar código, mas seu processamento interno não precisa ser igual ao deste diagrama. Exemplos de ferramentas para consultar código: GitHub Copilot e ferramentas de IA para desenvolvedores como Cursor e Claude Code.

Caso 8: novas otimizações de IA, como llms.txt

llms.txt é uma proposta para orientar ferramentas de IA a páginas selecionadas. Não garante que um serviço leia, indexe ou cite essas páginas; confira o mecanismo de ingestão e as permissões.

7. RAG vs Fine-tuning -- Qual Escolher

Além do RAG, o outro caminho discutido para "dar conhecimento próprio ao LLM" é o fine-tuning. As duas abordagens são radicalmente diferentes.

RAG vs Fine-tuning

Como dar conhecimento ao LLM? -- duas abordagens distintas

RAG
Busca informações externas ao responder
Abordagem
A cada pergunta, busca info relevante no banco externo e injeta no prompt enviado ao LLM
Vantagens
+ Atualizar documentos e índices
+ Exibir fontes com metadados preservados
+ Fornecer referências; o modelo ainda pode errar
+ Começar sem retreinar o modelo
+ Consultar fontes atualizadas
Desvantagens
- Estilo depende de instruções e exemplos
x Qualidade depende da precisão da busca
- Contextos longos podem elevar custo e latência
Casos indicados
QA interno / FAQ / jurídico / saúde / notícias
Fine-tuning
Ajusta o comportamento com treinamento adicional
Abordagem
Prepara muitos pares pergunta-resposta e retreina os pesos do próprio LLM
Vantagens
o Aprende estilo, tom e personalidade
+ Pode permitir prompts menores; avalie a economia
o Aprende padrões de áreas especializadas
+ Implantação conforme as condições do fornecedor
+ Execução local se pesos, licença e recursos permitirem
Desvantagens
- Exige dados de treinamento, computação e avaliação
- Mudanças aprendidas exigem novo treinamento
- Sozinho, não recupera fontes atuais
Casos indicados
Estilo próprio / jargão especializado / inferência otimizada

Defina a resposta esperada e avalie busca, instruções e treinamento conforme a tarefa

Diferença fundamental

AspectoRAGFine-tuning
AbordagemPassa info externa em tempo de execuçãoRetreina o próprio modelo antes
AtualizaçãoAtualizar documentos e índice; exige processamentoComportamento aprendido exige treinamento adicional
Custo inicialPreparação, índice, integração, permissões e avaliaçãoDados, treinamento, integração e avaliação
Custo operacionalBusca, armazenamento, geração, atualização e avaliaçãoGeração, treinamento, armazenamento e avaliação; conforme o serviço
Respostas erradasPossíveis por busca ou interpretaçãoPossíveis mesmo após treinar
FontesPreservar metadados e conferir se sustentam a respostaSozinho, não busca nem verifica fontes atuais
Estilo ou tomInstruções e exemplos no contextoAjustar com dados e avaliação
Dados que mudamExige fontes atualizadas e busca corretaDados atuais exigem fonte ou busca adicional
ConfidencialidadeConferir destinos, permissões, armazenamento e registrosConferir dados de treinamento, destinos e condições de implantação

Quando o RAG se sobressai

  • Conhecimento que muda muito (notícias, documentos internos, info de produto)
  • Necessidade de mostrar a fonte (jurídico, médico, financeiro)
  • O conteúdo necessário muda conforme a pergunta e você quer avaliar a busca de trechos em vez de enviar tudo
  • Você quer testar consultas a documentos sem retreinar o modelo

Quando o fine-tuning se sobressai

  • Quer respostas em estilo / tom específicos (marca, personagem)
  • Quer ensinar padrões de linguagem de um domínio (medicina, jurídico)
  • Você quer avaliar prompts menores ou modelos menores, incluindo o custo de treinamento
  • Você dispõe de exemplos de respostas esperadas e dados de avaliação

A disponibilidade de treinamento adicional depende do serviço. A documentação oficial da OpenAI consultada em 9 de outubro de 2026 informa que fine-tuning não está disponível para novos usuários. Confira modelos e condições antes de escolher.

Combine as técnicas se necessário e avalie o resultado

RAG e fine-tuning podem ser combinados: por exemplo, ajustar o formato com treinamento e fornecer documentos atualizados pela busca. Porém, a combinação não garante qualidade maior.

Defina respostas e avaliação; teste primeiro instruções e documentos. Considere RAG para consultar fontes e fine-tuning para ajustar o comportamento. Compare custo, velocidade e qualidade com entradas reais. O guia da OpenAI segue uma avaliação e iteração semelhantes. Execução local depende da distribuição de pesos, da licença e dos recursos.

8. Antes de construir o seu -- teste com os seus próprios documentos

Antes de montar o seu próprio RAG, confira com os seus documentos se o esquema "buscar e depois responder" é útil de fato. Isso evita rodeios e, na maioria dos casos, o primeiro teste não exige código.

Passo 1: confira se é possível fornecer todos os documentos

Se o material couber na janela de contexto, também é possível fornecê-lo sem busca. Na explicação de Contextual Retrieval de 2024, a Anthropic sugeriu inserir diretamente coleções abaixo de 200.000 tokens (cerca de 500 páginas) e usar cache de prompts (explicação oficial). Não é um limite universal: considere o limite atual do modelo, o tamanho, a qualidade e o custo.

Passo 2: coloque os documentos num recurso de "Projetos" pronto e faça perguntas

Os Projects do Claude passam automaticamente para RAG quando o conhecimento do projeto se aproxima do limite de contexto, comportando até 10 vezes mais conteúdo. É um recurso dos planos pagos; quando é ativado, aparece um indicador e o Claude usa a ferramenta "project knowledge search" ao responder (Central de Ajuda do Claude). Os Projects do ChatGPT também permitem adicionar arquivos e perguntar sobre eles, com limites, como o número de arquivos, definidos por plano.

Passo 3: teste com 10 perguntas cujas respostas você já conhece

Escreva 10 perguntas cuja resposta você sabe onde está nos documentos e anote três coisas.

  1. A resposta está correta?
  2. O trecho citado como evidência é o certo?
  3. Quando você pergunta algo que não está nos documentos, ele diz isso?

Se inventar respostas, repita o teste com a instrução de reconhecer informações ausentes. Dez perguntas são um teste inicial, não prova de adequação à produção ou segurança. Amplie a avaliação a perguntas importantes, contradições, documentos semelhantes e permissões.

Passo 4: compare opções próprias e gerenciadas quando precisar de mais controle

SinalO que verificar ao comparar opções
Muitos documentos ou mudanças diáriasCapacidade, ingestão automática e atualização do índice
Permissões diferentes por pessoaLimitar busca conforme permissões; veja segurança nas perguntas frequentes
Integração com sistemas ou appsAPIs, integração, autenticação e preços
A busca omite informações relevantesConfiguração de busca, reranking e avaliação

A Anthropic relatou que Contextual Embeddings combinado com Contextual BM25 reduziu em 49% as falhas de recuperação dos 20 primeiros trechos, ou 67% com reranking (condições e resultados). São medições do fornecedor em seus dados de avaliação, não uma redução garantida de erros nas suas respostas.

A versão mínima para construir o seu está na próxima seção; melhorias para produção, como busca híbrida e reranking, estão no guia de implementação de RAG e bancos de dados vetoriais.

9. Implementação -- Construindo um RAG com LangChain

Apresentamos os principais frameworks para implementar RAG e depois um exemplo mínimo em Python.

Principais frameworks

FrameworkLinguagemCaracterísticas
LangChainPython / JSIntegrações de busca, modelos e fontes
LlamaIndexPythonFocado em conexão de dados e indexação
HaystackPythonPara uso enterprise, controle fino
Semantic KernelC# / PythonDa Microsoft; integração com .NET
DSPyPythonOtimização automática de prompt
Implementação própriaQualquer umaCombinar busca e geração para o escopo necessário

Exemplo mínimo de RAG com LangChain

Este exemplo de aprendizado busca trechos de um PDF e os fornece ao modelo. LangChain 1.x exige Python 3.10 ou posterior. Configure a chave em OPENAI_API_KEY e o acesso aos modelos da API. Nunca coloque a chave no código nem em um repositório público.

O texto do PDF e as perguntas são enviados à API de embeddings; trechos e perguntas são enviados à API do LLM. Chroma local não significa processamento totalmente local. A API é cobrada separadamente do ChatGPT. Use material não confidencial cujo envio seja permitido. Este código é um exemplo de aprendizado cujo funcionamento não foi verificado. Antes de executá-lo, confira-o com a forma oficial de uso na versão da biblioteca que você utiliza.

# pip install -U langchain-openai langchain-chroma langchain-text-splitters langchain-community pypdf
from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_chroma import Chroma

# 1. Carregar o documento
loader = PyPDFLoader("regulamento.pdf")
docs = loader.load()

# 2. Dividir em chunks
splitter = RecursiveCharacterTextSplitter(
    chunk_size=500, chunk_overlap=50
)
chunks = splitter.split_documents(docs)

# 3. Embeddings + banco vetorial
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = Chroma.from_documents(chunks, embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})

# 4. Buscar (os 3 chunks mais próximos da pergunta)
question = "Quantos dias de férias temos?"
found = retriever.invoke(question)
context = "\n\n".join(d.page_content for d in found)

# 5. Passar as fontes e gerar a resposta
llm = ChatOpenAI(model="gpt-6-luna")
answer = llm.invoke([
    {"role": "system", "content": "Responda apenas com base no material abaixo. Se a resposta não estiver nele, diga que não consta no material.\n\n" + context},
    {"role": "user", "content": question},
])
print(answer.content)
print("Fontes:", [d.metadata for d in found])

O exemplo busca trechos do PDF e os fornece ao GPT-6 Luna; também imprime metadados. Informações de páginas dependem do documento e do carregador. As citações da resposta gerada precisam de verificação separada.

gpt-6-luna foi conferido na página oficial em 9 de outubro de 2026. Confira APIs, condições e preços na lista de modelos. Compare candidatos com os mesmos documentos e perguntas: interpretação, qualidade, velocidade e custo.

O código usa a estrutura de pacotes do LangChain 1.x. Na versão 1.0, exemplos com langchain.chains, incluindo RetrievalQA, passaram para langchain-classic. Este exemplo importa langchain_text_splitters e segue 2-Step RAG: buscar e depois gerar. Confira imports e requisitos de Python no guia de migração. Registre versões e verifique o código em um ambiente reproduzível.

Para uma implementação mais "para produção"

  • Otimizar a divisão em chunks (chunking semântico, hierárquico etc.)
  • Busca híbrida (vetor + BM25 por palavra-chave)
  • Reranking (Cohere Rerank, voyage-rerank etc. para reordenar)
  • Reescrita de query (HyDE, Multi-Query etc. para melhorar a busca)
  • Pipeline de avaliação (avaliação automática com RAGAS)

10. Desafios do RAG e Como Resolver

Em produção, verifique estes aspectos do RAG.

Desafio 1: dificuldade de dividir em chunks

Como cortar o documento muda muito a precisão da busca. Curto demais perde contexto; longo demais piora o resultado.

Soluções:

  • Chunking semântico (corta em unidades de significado)
  • Sobreposição (deixar trechos vizinhos com overlap)
  • Chunks hierárquicos (filho/pai -- buscar no filho, mostrar o pai)

Desafio 2: precisão do retrieval (busca)

Trazer chunks parecidos mas errados, ou perder o trecho importante.

Soluções:

  • Busca híbrida (vetor + BM25)
  • Modelo de reranking pós-busca
  • Geração de várias queries (mesma pergunta com diferentes formulações)

Desafio 3: limite de contexto

Existe um limite de tokens que o LLM aceita; não dá para enviar muitos chunks.

Soluções:

  • Reduzir o K (top 3 a 5)
  • Resumir antes de enviar
  • Usar LLMs com contexto longo (o limite muda de modelo para modelo, e hoje alguns aceitam na casa de 1 milhão de tokens; confira o do seu modelo na documentação oficial)

Desafio 4: avaliação difícil

Medir objetivamente a qualidade das respostas do RAG não é trivial -- onde encontrar a "resposta certa"?

Soluções:

  • Usar RAGAS (framework OSS para avaliar RAG)
  • Calcular métricas como precisão da resposta, relevância da resposta, fidelidade da busca
  • LLM-as-a-Judge (deixar outro LLM avaliando)

Desafio 5: multilinguismo e multimodalidade

Documentos com vários idiomas misturados, PDFs com imagens, tabelas e gráficos são difíceis.

Soluções:

  • Modelos de embedding multilíngue (BGE-M3, Cohere Multilingual)
  • Converter imagens / tabelas em texto antes (OCR + VLM)
  • Embedding multimodal (CLIP, Nomic etc.)

11. Lista das Principais Ferramentas e Serviços

Resumo por categoria das ferramentas para RAG.

Frameworks e bibliotecas

  • LangChain — integrações de busca, modelos e fontes
  • LlamaIndex -- focado em conexão de dados
  • Haystack -- enterprise
  • DSPy -- otimização automática de prompt

Bancos vetoriais (gerenciados)

  • Pinecone — busca vetorial gerenciada
  • Weaviate Cloud -- com GraphQL
  • Qdrant Cloud — serviço gerenciado do Qdrant
  • Zilliz Cloud -- versão gerenciada do Milvus

Bancos vetoriais (OSS / self-hosted)

  • Chroma — busca vetorial via Python
  • Qdrant — busca vetorial e filtros
  • Weaviate -- versão OSS
  • Milvus — banco de dados vetorial
  • pgvector -- extensão do PostgreSQL

Modelos de embedding

  • OpenAI text-embedding-3 — embeddings via API
  • Voyage AI -- apresentado na documentação da Anthropic
  • Cohere Embed -- multilíngue
  • BGE-M3 — candidato multilíngue para uso local

Serviços de RAG no-code / gerenciado

  • ChatGPT Projects / Custom GPTs existentes — consulta de documentos; confira processamento e condições de cada recurso
  • Claude Projects -- RAG da Anthropic
  • Notion AI -- busca dentro do Notion
  • Microsoft Copilot (Microsoft 365) — candidato para consultar material interno; confira contrato, conexões e permissões
  • Dify -- plataforma OSS no-code para IA
  • Vertex AI Agent Builder -- serviço de RAG do Google Cloud
  • Amazon Bedrock Knowledge Bases -- RAG gerenciado da AWS

Ferramentas de avaliação

  • RAGAS -- framework OSS para avaliar RAG
  • TruLens -- avaliação geral de apps com LLM
  • LangSmith -- tracing e avaliação oficial do LangChain

Se quiser se aprofundar no fine-tuning, leia também o que é fine-tuning: explica quando usá-lo em vez de RAG e métodos como LoRA/QLoRA, para iniciantes.

FAQ

P. Dá para usar RAG no próprio ChatGPT?

Projects do ChatGPT pode consultar documentos adicionados, mas o processamento varia. A explicação oficial do Enterprise distingue texto em contexto ou recuperado por busca, planilhas com Python e interpretação de imagens. Ela descreve Enterprise, não o funcionamento de todos os planos.

Para desenvolver, File Search da Responses API da OpenAI oferece busca semântica e por palavras-chave em documentos enviados. É um serviço API separado dos recursos do ChatGPT. Também é possível implementar RAG com LangChain. A seção 8 explica Claude Projects.

Para criar novos Custom GPTs, a orientação oficial atual informa que contas pessoais Free, Go, Plus e Pro não podem criar nem publicar novos GPTs. Usar ou editar os existentes e criar em organizações têm condições diferentes.

P. Quanto custa rodar um RAG?

A quantidade de documentos e perguntas, sozinha, não determina o custo mensal. Comprimento, atualizações, contexto recuperado, resposta, modelo e condições do banco influenciam o valor. Calcule embeddings de documentos e perguntas, armazenamento e buscas, entrada e saída do LLM, atualizações, servidores, avaliação, monitoramento e manutenção.

Teste primeiro com material não confidencial e registre tokens e buscas por pergunta; projete para o volume previsto, incluindo mínimos do banco e atualizações. Use preços oficiais da API e preços do banco.

P. Qual a diferença entre RAG e simplesmente subir arquivos no ChatGPT?

Enviar arquivos ao ChatGPT é um recurso pronto para consultar documentos; conforme o arquivo e o recurso, pode usar busca, leitura direta ou código. Com RAG próprio, você projeta busca, atualização de índices, permissões, avaliação e destinos, mas assume desenvolvimento e operação. Também há opções gerenciadas.

Escolha conforme capacidade, atualizações, permissões e integração API. É possível projetar sistemas para coleções grandes ou instalação local, mas capacidade e segurança não são garantidas automaticamente.

P. Com RAG a alucinação some completamente?

Não. RAG pode falhar se não recuperar o documento certo, interpretar mal os resultados ou encontrar contradições. Instrua o modelo a reconhecer informações ausentes, mostre fontes e avalie continuamente. Essas medidas não garantem respostas corretas para todas as perguntas. Em medicina, direito e outros usos importantes, inclua revisão humana.

P. Como lidar com documentos em português?

Considere embeddings multilíngues como OpenAI text-embedding-3, Cohere Embed ou BGE-M3; respeite pontuação e limites de palavras do português ao dividir documentos. Avalie também o modelo de resposta com seus documentos e perguntas.

Suporte a um idioma não estabelece uma classificação de precisão. Compare omissões, alinhamento com fontes, exatidão e custo nos mesmos dados. Reavalie quando versão ou configuração mudar.

P. Qual a diferença entre RAG e agente de IA?

RAG fornece conteúdo recuperado para a geração. O exemplo básico é 2-step RAG: buscar primeiro e gerar depois, mas RAG não se limita a processos fixos. Agentic RAG permite que o agente decida se deve buscar e como; Hybrid RAG pode validar resultados e repetir buscas.

Um agente seleciona ferramentas conforme o objetivo. RAG pode ser uma delas, mas nem todo agente o usa. O guia do LangChain distingue essas arquiteturas.

P. É seguro? Não quero mostrar dados confidenciais para a IA

Nem RAG nem um banco local provam que os dados permanecem privados. Confira destinos durante leitura, embeddings, busca, geração, registros e avaliação. Evitar envio externo exige embeddings e modelos de resposta locais, além do controle de registros e avaliação.

A API da OpenAI não usa entradas e saídas para treinar por padrão, exceto quando há adesão explícita ao compartilhamento. Não treinar não significa não armazenar. Confira registros de monitoramento, arquivos e bancos vetoriais, exclusão e controles de retenção na documentação oficial. A Azure explica separadamente treinamento, armazenamento e monitoramento.

Aplique permissões antes de incluir documentos nos resultados. Recuperar documentos confidenciais e pedir que o modelo não os revele é insuficiente. São verificações de projeto, não uma demonstração de confidencialidade em um ambiente específico.

P. Quanto tempo e qual nível técnico para construir um RAG?

Um protótipo de aprendizado exige Python básico, tratamento de chaves e preços API, leitura de documentos e revisão de buscas. Código curto não significa preparação rápida para produção.

Produção acrescenta preparação e atualização de documentos, autenticação e permissões de busca, dados de avaliação, monitoramento, incidentes, registros e controle de custos. O prazo depende dos documentos e requisitos: teste um escopo pequeno e estime o trabalho restante e os responsáveis. Se adicionar fine-tuning, veja as condições da seção 7.

Em 9 de outubro de 2026, preços, disponibilidade de produtos e tratamento de dados API foram revisados em fontes oficiais. Execução do código ou de APIs, cobranças e proteção de informações em ambiente real não foram verificadas. Confira as condições atuais antes de implementar.