Spaces:
Sleeping
A newer version of the Gradio SDK is available:
6.5.0
RAG do Zero - Primeiros Passos
Guia completo para iniciar com o RAG Template em 15 minutos.
Tempo estimado: 15-20 minutos Nivel: Iniciante Pre-requisitos: Python 3.10+ instalado
O que e RAG?
RAG (Retrieval-Augmented Generation) combina:
- Retrieval (Recuperacao): Buscar informacao relevante em documentos
- Augmented (Aumentada): Enriquecer o contexto da IA
- Generation (Geracao): LLM gera resposta baseada no contexto
Em termos simples: E como dar "memoria" e conhecimento especializado para uma IA.
Exemplo pratico:
- Sem RAG: "Qual e a politica de ferias da empresa?" → IA chuta ou diz "nao sei"
- Com RAG: IA busca no manual RH → "Segundo o manual, sao 30 dias apos 1 ano"
Passo 1: Instalacao
1.1 Clonar o Repositorio
git clone https://github.com/guifav/rag_template.git
cd rag_template
1.2 Criar Ambiente Virtual
# Linux/Mac
python -m venv .venv
source .venv/bin/activate
# Windows
python -m venv .venv
.venv\Scripts\activate
1.3 Instalar Dependencias
pip install -r requirements.txt
Isso instala:
- Gradio (interface web)
- PostgreSQL driver (banco de dados)
- Sentence Transformers (embeddings)
- E outras dependencias
Tempo: ~2-3 minutos
Passo 2: Configurar Banco de Dados
Voce tem 3 opcoes. Recomendamos Neon para iniciantes (10GB gratis).
Opcao A: Neon.tech (Recomendado)
- Crie conta em neon.tech
- Crie novo projeto
- No SQL Editor, execute:
CREATE EXTENSION vector;
- Copie a connection string
- Use o script de setup:
python scripts/setup_neon.py
Tempo: ~3-5 minutos
Opcao B: Supabase
python scripts/setup_supabase.py
Opcao C: Docker Local
docker-compose up -d
Veja guias completos:
Passo 3: Configurar Variave is de Ambiente
3.1 Criar arquivo .env
cp .env.example .env
3.2 Editar .env
Abra .env e configure:
# Banco de dados (use a connection string do passo 2)
DATABASE_URL=postgresql://user:pass@host:port/db
# Hugging Face (obrigatorio para LLM)
HF_TOKEN=seu_token_aqui
# Opcional: outros providers
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
Como obter HF_TOKEN:
- Crie conta em huggingface.co
- Va para Settings → Access Tokens
- Crie novo token (permissao "read")
- Copie e cole no .env
Tempo: ~2 minutos
Passo 4: Executar a Aplicacao
python app.py
Voce vera:
Running on local URL: http://127.0.0.1:7860
Abra esse link no navegador!
Tempo de inicio: 10-30 segundos (baixa modelos na primeira vez)
Passo 5: Primeira Ingestao de Documentos
Agora vamos adicionar documentos ao sistema.
5.1 Preparar Documento
Crie um arquivo teste.txt com algum conteudo:
A empresa XYZ foi fundada em 2020.
Nossa missao e tornar a tecnologia acessivel.
Oferecemos 30 dias de ferias apos 1 ano de empresa.
O horario de trabalho e das 9h as 18h.
Temos escritorios em Sao Paulo e Rio de Janeiro.
5.2 Fazer Upload
- Na interface, va para aba "Ingestao de Documentos"
- Clique em "Browse" e selecione
teste.txt - Deixe configuracoes padrao:
- Estrategia: Tamanho Fixo
- Chunk Size: 1000
- Overlap: 200
- Clique em "Iniciar Ingestao"
Voce vera o processo:
- Extraindo texto (instantaneo para TXT)
- Dividindo em chunks (1 chunk para texto pequeno)
- Gerando embeddings (~1-2 segundos)
- Salvando no banco (instantaneo)
Resultado: "Ingestao concluida! 1 documento(s) processado(s)"
Passo 6: Primeira Consulta
Agora vamos buscar informacao nos documentos.
6.1 Busca Simples
- Va para aba "Exploracao da Base"
- Digite uma query:
ferias da empresa - Clique em "Buscar"
Voce vera:
- Documento encontrado
- Score de similaridade (~0.7-0.9)
- Conteudo: "Oferecemos 30 dias de ferias..."
O que aconteceu:
- Sua query foi transformada em embedding
- Sistema buscou embeddings similares no banco
- Retornou documentos mais relevantes
Passo 7: Primeiro Chat com RAG
Hora de conversar com seus documentos!
7.1 Configurar Chat
- Va para aba "Chat RAG"
- Configuracoes:
- LLM Provider: HuggingFace
- Top K: 3
- Temperature: 0.3
- Max Tokens: 256
7.2 Fazer Pergunta
Digite: Quantos dias de ferias a empresa oferece?
Clique em "Enviar"
Resposta esperada:
A empresa oferece 30 dias de ferias apos 1 ano de trabalho.
Contextos recuperados:
1. "Oferecemos 30 dias de ferias apos 1 ano de empresa." (score: 0.85)
O que aconteceu:
- Sistema buscou contextos relevantes (top 3)
- Montou um prompt com contexto + pergunta
- Enviou para LLM (HuggingFace API)
- LLM gerou resposta baseada no contexto
Tempo de resposta: 2-5 segundos (dependendo da API)
Passo 8: Experimentar Parametros
Agora vamos entender o impacto dos parametros.
8.1 Testar Top K
- Va para aba "Playground de Parametros"
- Config A: top_k = 1
- Config B: top_k = 5
- Query:
horario de trabalho - Compare resultados
Observacao: Mais contexto (top_k maior) pode ajudar, mas tambem pode trazer ruido.
8.2 Testar Temperature
- Config A: temperature = 0.1 (deterministico)
- Config B: temperature = 0.9 (criativo)
- Mesma query
- Compare
Observacao: Temperature baixa = respostas mais precisas. Temperature alta = respostas mais variadas/criativas.
Passo 9: Monitorar Uso
- Va para aba "Monitoramento"
- Veja estatisticas:
- Documentos no banco: 1
- Queries realizadas: ~3
- Latencias medias
Proximos Passos
Parabens! Voce criou seu primeiro sistema RAG. Agora:
- Adicione mais documentos: PDFs, mais TXTs
- Teste estrategias de chunking: Veja Tutorial 2
- Experimente features avancadas: Hybrid search, reranking
- Deploy: Tutorial 3
Troubleshooting
"Unable to connect to database"
Problema: DATABASE_URL incorreto
Solucao:
- Verifique .env
- Teste conexao:
python scripts/setup_neon.py - Certifique-se que banco esta ativo
"HF_TOKEN invalid"
Problema: Token HuggingFace invalido
Solucao:
- Gere novo token em huggingface.co/settings/tokens
- Certifique-se de copiar token completo
- Atualize .env
"Model download failed"
Problema: Erro ao baixar modelo de embedding
Solucao:
- Verifique conexao com internet
- Aguarde alguns minutos e tente novamente
- Modelos sao baixados apenas na primeira vez
App muito lento
Causas comuns:
- HuggingFace API em horario de pico
- Database remoto com latencia alta
- Modelo de embedding ainda baixando
Solucao:
- Use modelo de embedding menor (384d)
- Configure connection pooling
- Considere usar OpenAI/Anthropic para LLM
Recursos Adicionais
- Tutorial 2: Otimizando seu RAG
- Tutorial 3: RAG em Producao
- Tutorial 4: RAG Avancado
- FAQ
- Documentacao Completa
Resumo
Neste tutorial voce:
- Instalou o RAG Template
- Configurou banco de dados (Neon/Supabase)
- Fez primeira ingestao de documento
- Realizou primeira busca semantica
- Conversou com seus documentos usando LLM
- Experimentou com parametros
Tempo total: ~15-20 minutos
Proximo: Otimizando seu RAG