paraAI_rag / README_FIX.md
caarleexx's picture
Upload 3 files
cbd8d07 verified
# 🔧 FIX: Build FAISS Falhou
## ❌ Problema
```json
{"status": "error", "message": "Build FAISS falhou", "progress": 0}
```
## ✅ Solução
Este pacote contém 3 arquivos corrigidos para resolver o erro.
---
## 📦 Arquivos Incluídos
1. **requirements.txt** - Versão COMPLETA com todas as dependências
2. **config.yaml** - Otimizado (batch_size reduzido, prefixo no modelo)
3. **rag_builder.py** - Com logging detalhado para debug
---
## 🚀 Como Aplicar (Passo-a-Passo)
### Passo 1: Localizar seu repositório local do Space
```bash
cd /caminho/para/para_ai_rag_langchain
# (ou o nome do diretório do seu Space)
```
### Passo 2: Fazer backup dos arquivos atuais (opcional)
```bash
cp requirements.txt requirements.txt.BAK
cp config.yaml config.yaml.BAK
cp rag_builder.py rag_builder.py.BAK
```
### Passo 3: Copiar arquivos corrigidos
```bash
# Extrair o ZIP que você baixou
unzip para_ai_rag_FIX.zip
# Copiar arquivos
cp para_ai_rag_FIX_v2/requirements.txt .
cp para_ai_rag_FIX_v2/config.yaml .
cp para_ai_rag_FIX_v2/rag_builder.py .
```
### Passo 4: Verificar mudanças
```bash
git status
# Deve mostrar:
# modified: requirements.txt
# modified: config.yaml
# modified: rag_builder.py
```
### Passo 5: Commit e Push
```bash
git add requirements.txt config.yaml rag_builder.py
git commit -m "fix: Adicionar dependências faltando + otimizações (torch, transformers, tokenizers)"
git push origin main
```
### Passo 6: Monitorar Rebuild
Aguardar ~8-10 minutos para rebuild e depois monitorar setup:
```bash
# Opção 1: Com watch (atualiza automaticamente)
watch -n 10 'curl -s https://caarleexx-paraai-rag.hf.space/setup/status | jq'
# Opção 2: Manual
curl https://caarleexx-paraai-rag.hf.space/setup/status | jq
```
**Progresso esperado:**
```json
{"status": "cloning", "progress": 10, "message": "Clonando chunks..."}
{"status": "extracting", "progress": 30, "message": "Descompactando..."}
{"status": "building", "progress": 70, "message": "Construindo FAISS..."}
{"status": "ready", "progress": 100, "message": "FAISS pronto!"}
```
### Passo 7: Testar quando pronto
Quando `status` = `"ready"`, testar busca:
```bash
curl -X POST https://caarleexx-paraai-rag.hf.space/search/embedding \
-H "Content-Type: application/json" \
-d '{"query": "FGTS correção monetária TR", "top_k": 3}' | jq
```
**Resposta esperada:**
```json
{
"cluster_id": "RAG-0301",
"query": "FGTS correção monetária TR",
"total_results": 3,
"results": [
{
"id": "12345",
"ementa": "...",
"score": 0.87,
"metadata": {...}
}
],
"query_time_ms": 142.35
}
```
---
## 📊 O Que Foi Corrigido?
### requirements.txt
**ADICIONADO (estava faltando):**
```diff
+ torch==2.2.0
+ transformers==4.37.2
+ tokenizers==0.15.2
+ safetensors==0.4.2
+ huggingface-hub==0.20.3
```
**Por quê?**
- `torch` → Backend para sentence-transformers
- `transformers` → Carregar modelos HuggingFace
- `tokenizers` → Processar texto antes de embeddings
- `safetensors` → Formato seguro para pesos do modelo
- `huggingface-hub` → Baixar modelos do Hub
### config.yaml
**ALTERADO:**
```diff
- embedding_model: "all-MiniLM-L6-v2"
+ embedding_model: "sentence-transformers/all-MiniLM-L6-v2"
```
**Por quê?** HuggingFaceEmbeddings precisa do prefixo `sentence-transformers/` para encontrar o modelo no Hub.
**REDUZIDO:**
```diff
- embedding_batch_size: 64
+ embedding_batch_size: 16
```
**Por quê?** Batch 64 pode causar OOM (Out of Memory) no HF Spaces free tier (16GB RAM). Batch 16 é mais seguro.
### rag_builder.py
**ADICIONADO:**
- ✅ Logging detalhado em cada passo (1/5, 2/5, etc)
- ✅ Try/except específico para ImportError (mostra deps faltando)
- ✅ Try/except específico para FileNotFoundError
- ✅ Traceback completo em caso de erro
- ✅ Medição de tempo e velocidade
- ✅ Verificação de tamanho do index salvo
---
## ⚠️ Troubleshooting
### Erro: "No module named 'torch'"
**Causa:** requirements.txt não foi atualizado corretamente
**Solução:**
1. Verificar se push foi bem-sucedido: `git log -1`
2. Verificar no HF Space se requirements.txt tem `torch==2.2.0`
3. Se não, fazer push novamente
### Erro: "Killed" ou "Exit code 137"
**Causa:** OOM (Out of Memory)
**Solução:** Reduzir ainda mais o batch_size:
```yaml
# Em config.yaml
embedding_batch_size: 8 # ou até 4
```
### Erro: "Model not found: all-MiniLM-L6-v2"
**Causa:** Nome do modelo sem prefixo
**Solução:** Verificar config.yaml tem:
```yaml
embedding_model: "sentence-transformers/all-MiniLM-L6-v2"
^^^^^^^^^^^^^^^^^^^^^^^^
Prefixo obrigatório!
```
### Build ainda falha?
1. **Acessar logs do Space:**
https://huggingface.co/spaces/caarleexx/paraai-rag/logs
2. **Procurar por:**
- "ModuleNotFoundError"
- "ImportError"
- "MemoryError"
- "Traceback"
- Última exceção antes de "Build FAISS falhou"
3. **Me enviar:**
- Todo o log de erro
- Output de `pip list` do Space (se conseguir acessar)
- Arquivo requirements.txt atual
---
## 📊 Estimativas
**Rebuild:** ~8-10 minutos
**Setup:** ~15-18 minutos para 300 chunks
- Clone: ~3min
- Extract: ~2min
- Concat/Filter: ~2min
- Build FAISS: ~8-10min (batch_size=16, CPU)
**RAM:** ~2GB durante build
**Disco:** ~150MB (FAISS index persistente)
---
## ✅ Checklist Final
Antes de fazer push, verificar:
- [ ] `requirements.txt` inclui `torch==2.2.0`
- [ ] `requirements.txt` inclui `transformers==4.37.2`
- [ ] `requirements.txt` inclui `tokenizers==0.15.2`
- [ ] `requirements.txt` inclui `safetensors==0.4.2`
- [ ] `requirements.txt` inclui `huggingface-hub==0.20.3`
- [ ] `config.yaml` tem `embedding_model: "sentence-transformers/all-MiniLM-L6-v2"`
- [ ] `config.yaml` tem `embedding_batch_size: 16` (ou menos)
---
## 📞 Suporte
Se problema persistir após aplicar fix:
1. Acessar logs: https://huggingface.co/spaces/caarleexx/paraai-rag/logs
2. Copiar **TODA** a exceção/traceback
3. Me enviar para análise detalhada
---
⚖️ **InJustiça não para o Paraná!** 🐝