Spaces:
Sleeping
Sleeping
| # 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 | |
| ```bash | |
| git clone https://github.com/guifav/rag_template.git | |
| cd rag_template | |
| ``` | |
| ### 1.2 Criar Ambiente Virtual | |
| ```bash | |
| # Linux/Mac | |
| python -m venv .venv | |
| source .venv/bin/activate | |
| # Windows | |
| python -m venv .venv | |
| .venv\Scripts\activate | |
| ``` | |
| ### 1.3 Instalar Dependencias | |
| ```bash | |
| 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) | |
| 1. Crie conta em [neon.tech](https://neon.tech) | |
| 2. Crie novo projeto | |
| 3. No SQL Editor, execute: | |
| ```sql | |
| CREATE EXTENSION vector; | |
| ``` | |
| 4. Copie a connection string | |
| 5. Use o script de setup: | |
| ```bash | |
| python scripts/setup_neon.py | |
| ``` | |
| **Tempo**: ~3-5 minutos | |
| ### Opcao B: Supabase | |
| ```bash | |
| python scripts/setup_supabase.py | |
| ``` | |
| ### Opcao C: Docker Local | |
| ```bash | |
| docker-compose up -d | |
| ``` | |
| Veja guias completos: | |
| - [Neon Setup](../NEON_SETUP.md) | |
| - [Supabase Setup](../SUPABASE_SETUP.md) | |
| - [Comparacao de Providers](../DATABASE_COMPARISON.md) | |
| --- | |
| ## Passo 3: Configurar Variave is de Ambiente | |
| ### 3.1 Criar arquivo .env | |
| ```bash | |
| cp .env.example .env | |
| ``` | |
| ### 3.2 Editar .env | |
| Abra `.env` e configure: | |
| ```env | |
| # 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**: | |
| 1. Crie conta em [huggingface.co](https://huggingface.co) | |
| 2. Va para Settings → Access Tokens | |
| 3. Crie novo token (permissao "read") | |
| 4. Copie e cole no .env | |
| **Tempo**: ~2 minutos | |
| --- | |
| ## Passo 4: Executar a Aplicacao | |
| ```bash | |
| 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 | |
| 1. Na interface, va para aba **"Ingestao de Documentos"** | |
| 2. Clique em "Browse" e selecione `teste.txt` | |
| 3. Deixe configuracoes padrao: | |
| - Estrategia: Tamanho Fixo | |
| - Chunk Size: 1000 | |
| - Overlap: 200 | |
| 4. Clique em **"Iniciar Ingestao"** | |
| Voce vera o processo: | |
| 1. Extraindo texto (instantaneo para TXT) | |
| 2. Dividindo em chunks (1 chunk para texto pequeno) | |
| 3. Gerando embeddings (~1-2 segundos) | |
| 4. 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 | |
| 1. Va para aba **"Exploracao da Base"** | |
| 2. Digite uma query: `ferias da empresa` | |
| 3. Clique em **"Buscar"** | |
| Voce vera: | |
| - Documento encontrado | |
| - Score de similaridade (~0.7-0.9) | |
| - Conteudo: "Oferecemos 30 dias de ferias..." | |
| **O que aconteceu**: | |
| 1. Sua query foi transformada em embedding | |
| 2. Sistema buscou embeddings similares no banco | |
| 3. Retornou documentos mais relevantes | |
| --- | |
| ## Passo 7: Primeiro Chat com RAG | |
| Hora de conversar com seus documentos! | |
| ### 7.1 Configurar Chat | |
| 1. Va para aba **"Chat RAG"** | |
| 2. 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**: | |
| 1. Sistema buscou contextos relevantes (top 3) | |
| 2. Montou um prompt com contexto + pergunta | |
| 3. Enviou para LLM (HuggingFace API) | |
| 4. 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 | |
| 1. Va para aba **"Playground de Parametros"** | |
| 2. Config A: top_k = 1 | |
| 3. Config B: top_k = 5 | |
| 4. Query: `horario de trabalho` | |
| 5. Compare resultados | |
| **Observacao**: Mais contexto (top_k maior) pode ajudar, mas tambem pode trazer ruido. | |
| ### 8.2 Testar Temperature | |
| 1. Config A: temperature = 0.1 (deterministico) | |
| 2. Config B: temperature = 0.9 (criativo) | |
| 3. Mesma query | |
| 4. Compare | |
| **Observacao**: Temperature baixa = respostas mais precisas. Temperature alta = respostas mais variadas/criativas. | |
| --- | |
| ## Passo 9: Monitorar Uso | |
| 1. Va para aba **"Monitoramento"** | |
| 2. Veja estatisticas: | |
| - Documentos no banco: 1 | |
| - Queries realizadas: ~3 | |
| - Latencias medias | |
| --- | |
| ## Proximos Passos | |
| Parabens! Voce criou seu primeiro sistema RAG. Agora: | |
| 1. **Adicione mais documentos**: PDFs, mais TXTs | |
| 2. **Teste estrategias de chunking**: Veja [Tutorial 2](02_optimizing_rag.md) | |
| 3. **Experimente features avancadas**: Hybrid search, reranking | |
| 4. **Deploy**: [Tutorial 3](03_production_deployment.md) | |
| --- | |
| ## Troubleshooting | |
| ### "Unable to connect to database" | |
| **Problema**: DATABASE_URL incorreto | |
| **Solucao**: | |
| 1. Verifique .env | |
| 2. Teste conexao: `python scripts/setup_neon.py` | |
| 3. Certifique-se que banco esta ativo | |
| ### "HF_TOKEN invalid" | |
| **Problema**: Token HuggingFace invalido | |
| **Solucao**: | |
| 1. Gere novo token em huggingface.co/settings/tokens | |
| 2. Certifique-se de copiar token completo | |
| 3. Atualize .env | |
| ### "Model download failed" | |
| **Problema**: Erro ao baixar modelo de embedding | |
| **Solucao**: | |
| 1. Verifique conexao com internet | |
| 2. Aguarde alguns minutos e tente novamente | |
| 3. 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](02_optimizing_rag.md) | |
| - [Tutorial 3: RAG em Producao](03_production_deployment.md) | |
| - [Tutorial 4: RAG Avancado](04_advanced_rag.md) | |
| - [FAQ](../FAQ.md) | |
| - [Documentacao Completa](../../README.md) | |
| --- | |
| ## 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](02_optimizing_rag.md) | |