RAG Iniciante ~45 min

Introducao a RAG

Topico 23 de 33
rag terminologia
AÇÕES
Progresso do Topico 0%

Introducao a RAG

RAG (Retrieval-Augmented Generation) e uma abordagem que combina recuperacao de informacoes com geracao de texto. E a tecnica mais importante para AI Engineers que precisam fazer LLMs responderem com base em dados especificos.

O Problema que RAG Resolve#

LLMs tem limitacoes criticas:

  • Conhecimento desatualizado - Treinados ate uma data de corte
  • Sem dados privados - Nao conhecem documentos da sua empresa
  • Alucinacoes - Inventam informacoes quando nao sabem

RAG resolve isso buscando informacao relevante e passando para o LLM junto com a pergunta.

Como RAG Funciona#

Usuario: "Qual a politica de ferias da empresa?"

1. RETRIEVAL (Recuperacao)
   - Pergunta vira embedding
   - Busca no vector database
   - Retorna documentos relevantes

2. AUGMENTATION (Aumento)
   - Monta prompt com contexto
   - "Com base nos documentos: [docs], responda: [pergunta]"

3. GENERATION (Geracao)
   - LLM gera resposta baseada no contexto
   - Resposta fundamentada em dados reais

Pipeline Completo#

Python
from openai import OpenAI
import chromadb

client = OpenAI()
db = chromadb.Client()
collection = db.get_collection("documentos")

def rag_query(pergunta: str) -> str:
    # 1. Retrieval - buscar documentos relevantes
    results = collection.query(
        query_texts=[pergunta],
        n_results=3
    )

    contexto = "\n".join(results['documents'][0])

    # 2. Augmentation - montar prompt
    prompt = f"""Use o contexto abaixo para responder a pergunta.
    Se a resposta nao estiver no contexto, diga que nao sabe.

    Contexto:
    {contexto}

    Pergunta: {pergunta}
    """

    # 3. Generation - gerar resposta
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}]
    )

    return response.choices[0].message.content

Componentes de um Sistema RAG#

  1. Document Loader - Carrega PDFs, websites, databases
  2. Chunker - Divide documentos em pedacos menores
  3. Embedder - Gera embeddings dos chunks
  4. Vector Store - Armazena e indexa embeddings
  5. Retriever - Busca chunks relevantes
  6. Generator - LLM que gera a resposta final

Estrategias de Chunking#

Como dividir documentos afeta muito a qualidade:

EstrategiaDescricaoQuando usar
Tamanho fixo500-1000 caracteresTextos gerais
Por sentencaRespeita limites naturaisTextos fluidos
Por paragrafoMantem contextoArtigos, docs
SemanticoAgrupa por temaAlta qualidade
RecursivoTenta varios separadoresUso geral

RAG vs Fine-tuning#

AspectoRAGFine-tuning
AtualizacaoInstantaneaRequer retreino
CustoBaixoAlto
ControleFontes visiveisCaixa preta
EscalaMilhoes de docsLimitado
UsoPerguntas sobre dadosMudar comportamento

Regra geral: Comece com RAG. Fine-tuning so se RAG nao resolver.

Metricas de Qualidade#

  • Recall - Documentos relevantes foram recuperados?
  • Precision - Documentos recuperados sao relevantes?
  • Faithfulness - Resposta e fiel ao contexto?
  • Relevance - Resposta responde a pergunta?

Recursos#


Checklist#


Conexoes#

Proximo passo: Conheca AI Agents, sistemas que tomam acoes autonomas em ai-agents-intro

3 recursos

Este topico tambem pode ser acessado em /topicos/rag-intro