Spaces:
Sleeping
A newer version of the Gradio SDK is available:
6.6.0
🔧 Guia de Troubleshooting
Visão Geral
Este guia ajuda a resolver problemas comuns encontrados ao usar o Vampire Trading Bot. Os problemas estão organizados por categoria com soluções passo a passo.
🚨 Problemas de Instalação
Erro: "Microsoft Visual C++ 14.0 is required"
Sintomas:
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"
Causa: Falta de ferramentas de compilação no Windows.
Solução:
- Baixe e instale o Visual Studio Build Tools
- Durante a instalação, selecione "C++ build tools"
- Reinicie o terminal e tente novamente:
pip install -r requirements.txt
Erro: "No module named 'pyaudioop'"
Sintomas:
ModuleNotFoundError: No module named 'pyaudioop'
Causa: Incompatibilidade com Python 3.13.
Solução:
# Atualizar Gradio para versão mais recente
pip install --upgrade gradio
# Verificar se audioop-lts foi instalado
pip list | grep audioop
Erro: "Failed building wheel for tokenizers"
Sintomas:
Failed building wheel for tokenizers
ERROR: Could not build wheels for tokenizers
Causa: Falta do compilador Rust.
Soluções:
Opção 1 - Usar versão pré-compilada:
pip install --upgrade transformers
Opção 2 - Instalar Rust:
# Windows (PowerShell)
Invoke-WebRequest -Uri https://win.rustup.rs/ -OutFile rustup-init.exe
.\rustup-init.exe
# Linux/macOS
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
Erro: "Permission denied" (Windows)
Sintomas:
PermissionError: [WinError 5] Access is denied
Solução:
# Alterar política de execução
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Executar como administrador se necessário
🤖 Problemas com Modelos de IA
Erro: "OutOfMemoryError" ao carregar modelo
Sintomas:
torch.cuda.OutOfMemoryError: CUDA out of memory
# ou
RuntimeError: [enforce fail at alloc_cpu.cpp:75]
Soluções:
1. Usar modelo mais leve:
# Em config.py
FinancialModels.DEFAULT_MODEL = "nlptown/bert-base-multilingual-uncased-sentiment"
2. Reduzir tamanho do texto:
# Em config.py
AIConfig.MAX_TEXT_LENGTH = 256 # Reduzir de 512
AIConfig.BATCH_SIZE = 4 # Reduzir de 8
3. Forçar uso de CPU:
# Em config.py
AIConfig.USE_GPU = False
4. Executar em modo standalone:
python app.py --no-ai
Erro: "Model not found" ou "Repository not found"
Sintomas:
OSError: Repository not found
HTTPError: 404 Client Error
Soluções:
1. Verificar conectividade:
import requests
response = requests.get("https://huggingface.co")
print(f"Status: {response.status_code}")
2. Usar modelo alternativo:
# Em config.py
FinancialModels.DEFAULT_MODEL = "cardiffnlp/twitter-roberta-base-sentiment-latest"
3. Cache offline:
# Baixar modelo manualmente
from transformers import pipeline
pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")
Modelo carrega muito lentamente
Sintomas: Demora excessiva no primeiro carregamento.
Soluções:
1. Habilitar cache:
# Em config.py
AIConfig.ENABLE_MODEL_CACHE = True
AIConfig.CACHE_SIZE = 100
2. Pré-carregar modelos:
# Adicionar ao início do app.py
from sentiment_analysis import SentimentAnalysisEngine
engine = SentimentAnalysisEngine()
engine.model_manager.load_model() # Pré-carrega
3. Usar modelo local:
# Baixar modelo para pasta local
mkdir models
# Configurar caminho local em config.py
🖥️ Problemas de Interface
Interface não carrega (erro 500)
Sintomas: Página em branco ou erro 500 no navegador.
Diagnóstico:
# Verificar logs no terminal
python -u app.py
# Verificar porta
netstat -an | findstr 7860
Soluções:
1. Verificar dependências:
try:
import gradio as gr
print(f"Gradio versão: {gr.__version__}")
except ImportError as e:
print(f"Erro ao importar Gradio: {e}")
2. Usar porta diferente:
python app.py --server_port=8080
3. Modo debug:
# Em app.py
demo.launch(debug=True, show_error=True)
Interface trava durante análise
Sintomas: Interface não responde após submeter análise.
Soluções:
1. Verificar timeout:
# Em config.py
AIConfig.MODEL_LOAD_TIMEOUT = 120 # Aumentar timeout
2. Adicionar indicador de progresso:
# Em ui.py
def analyze_with_progress(text):
yield "🔄 Iniciando análise..."
# ... análise
yield "✅ Análise concluída!"
3. Processamento assíncrono:
import asyncio
async def async_analysis(text):
# Análise em background
pass
Erro: "Connection refused" ou "Address already in use"
Sintomas:
OSError: [Errno 98] Address already in use
ConnectionRefusedError: [Errno 111] Connection refused
Soluções:
1. Verificar processos na porta:
# Windows
netstat -ano | findstr :7860
taskkill /PID <PID> /F
# Linux/macOS
lsof -ti:7860 | xargs kill -9
2. Usar porta diferente:
python app.py --server_port=8080
📊 Problemas de Performance
Alto uso de CPU/Memória
Sintomas: Sistema lento, ventilador alto.
Diagnóstico:
# Verificar uso de recursos
from performance_monitor import PerformanceMonitor
monitor = PerformanceMonitor()
monitor.start_monitoring()
print(monitor.get_current_metrics())
Soluções:
1. Otimizar configurações:
# Em config.py
AIConfig.MAX_TEXT_LENGTH = 256
AIConfig.BATCH_SIZE = 2
AIConfig.USE_GPU = False
2. Limitar histórico:
# Em performance_monitor.py
PerformanceMonitor(max_metrics_history=100)
3. Desabilitar recursos:
# Desabilitar monitoramento em tempo real
real_time_integration = None
Análises muito lentas
Sintomas: Demora excessiva para gerar resultados.
Soluções:
1. Profile de performance:
import cProfile
def profile_analysis():
cProfile.run('engine.analyze_market_data(text)')
2. Cache de resultados:
from functools import lru_cache
@lru_cache(maxsize=100)
def cached_analysis(text_hash):
return engine.analyze_market_data(text)
3. Processamento paralelo:
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=2) as executor:
future = executor.submit(analyze_function, text)
result = future.result(timeout=30)
📁 Problemas de Arquivos e Logs
Erro: "File not found" para logs
Sintomas:
FileNotFoundError: [Errno 2] No such file or directory: 'trading.log'
Soluções:
1. Verificar caminho:
from pathlib import Path
log_path = Path("d:/hugging_face_spaces/text")
print(f"Existe: {log_path.exists()}")
print(f"É arquivo: {log_path.is_file()}")
2. Criar arquivo de exemplo:
# Criar log de exemplo para testes
with open("sample_log.txt", "w") as f:
f.write("""⏰ Análise #1 - 09:46:58
📊 DADOS DE MERCADO - WINV25
Preço Atual: 140135.00000 ↗
""")
3. Configurar caminho correto:
# Em real_time_integration.py
LOG_FILE_PATH = "caminho/correto/para/logs.txt"
Erro de permissão em arquivos
Sintomas:
PermissionError: [Errno 13] Permission denied
Soluções:
1. Verificar permissões:
# Linux/macOS
ls -la arquivo.log
chmod 644 arquivo.log
# Windows
icacls arquivo.log
2. Executar como administrador:
# Windows (PowerShell como Admin)
python app.py
🔄 Problemas de Integração em Tempo Real
FileWatcher não detecta mudanças
Sintomas: Logs atualizados mas sistema não processa.
Diagnóstico:
from real_time_integration import FileWatcher
def test_callback(content):
print(f"Arquivo mudou: {len(content)} caracteres")
watcher = FileWatcher("test.txt", test_callback)
watcher.start()
Soluções:
1. Verificar intervalo:
# Em real_time_integration.py
config = RealTimeConfig(
log_file_path="logs.txt",
check_interval=0.5 # Reduzir intervalo
)
2. Forçar flush do arquivo:
# No sistema que gera logs
with open("logs.txt", "a") as f:
f.write("nova linha\n")
f.flush() # Forçar escrita
Eventos duplicados
Sintomas: Mesmo evento processado múltiplas vezes.
Solução:
# Adicionar deduplicação
class EventDeduplicator:
def __init__(self):
self.processed_events = set()
def is_duplicate(self, event_hash):
if event_hash in self.processed_events:
return True
self.processed_events.add(event_hash)
return False
🧪 Problemas de Desenvolvimento
Erro ao importar módulos
Sintomas:
ModuleNotFoundError: No module named 'market_analysis'
Soluções:
1. Verificar PYTHONPATH:
# Windows
set PYTHONPATH=%PYTHONPATH%;D:\hugging_face_spaces
# Linux/macOS
export PYTHONPATH=$PYTHONPATH:/path/to/project
2. Usar imports relativos:
# Em vez de
from market_analysis import TechnicalAnalysisEngine
# Use
from .market_analysis import TechnicalAnalysisEngine
3. Adicionar ao sys.path:
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
Erro de encoding
Sintomas:
UnicodeDecodeError: 'utf-8' codec can't decode
Soluções:
1. Especificar encoding:
with open("arquivo.txt", "r", encoding="utf-8") as f:
content = f.read()
2. Detectar encoding automaticamente:
import chardet
with open("arquivo.txt", "rb") as f:
raw_data = f.read()
encoding = chardet.detect(raw_data)['encoding']
content = raw_data.decode(encoding)
🔍 Ferramentas de Diagnóstico
Script de Diagnóstico Completo
#!/usr/bin/env python3
# diagnostic.py
import sys
import os
import importlib
import platform
import psutil
from pathlib import Path
def run_diagnostics():
print("🔍 DIAGNÓSTICO DO VAMPIRE TRADING BOT")
print("=" * 50)
# Sistema
print(f"🖥️ Sistema: {platform.system()} {platform.release()}")
print(f"🐍 Python: {sys.version}")
print(f"📁 Diretório: {os.getcwd()}")
# Recursos
print(f"💾 RAM: {psutil.virtual_memory().total // (1024**3)} GB")
print(f"🔥 CPU: {psutil.cpu_count()} cores")
# Dependências
print("\n📦 DEPENDÊNCIAS:")
dependencies = [
'gradio', 'transformers', 'torch',
'numpy', 'pandas', 'scipy', 'psutil'
]
for dep in dependencies:
try:
module = importlib.import_module(dep)
version = getattr(module, '__version__', 'N/A')
print(f"✅ {dep}: {version}")
except ImportError:
print(f"❌ {dep}: NÃO INSTALADO")
# Arquivos
print("\n📁 ARQUIVOS:")
files = [
'app.py', 'config.py', 'market_analysis.py',
'sentiment_analysis.py', 'ui.py', 'requirements.txt'
]
for file in files:
path = Path(file)
if path.exists():
size = path.stat().st_size
print(f"✅ {file}: {size} bytes")
else:
print(f"❌ {file}: NÃO ENCONTRADO")
# Teste de importação
print("\n🧪 TESTE DE IMPORTAÇÃO:")
modules = [
'market_analysis', 'sentiment_analysis',
'fibonacci_analysis', 'ui'
]
for module in modules:
try:
importlib.import_module(module)
print(f"✅ {module}: OK")
except Exception as e:
print(f"❌ {module}: {str(e)[:50]}...")
print("\n🏁 Diagnóstico concluído!")
if __name__ == "__main__":
run_diagnostics()
Script de Teste de Performance
#!/usr/bin/env python3
# performance_test.py
import time
import psutil
from memory_profiler import profile
@profile
def test_analysis_performance():
"""Testa performance das análises."""
# Simular análise técnica
start_time = time.time()
# Teste de análise
sample_text = "Preço: 140135, Variação: +5, Volume: 5023"
try:
from market_analysis import TechnicalAnalysisEngine
engine = TechnicalAnalysisEngine()
result = engine.analyze_market_data(sample_text)
end_time = time.time()
analysis_time = end_time - start_time
print(f"⏱️ Tempo de análise: {analysis_time:.2f}s")
print(f"💾 Uso de memória: {psutil.Process().memory_info().rss / 1024 / 1024:.1f} MB")
print(f"🔥 Uso de CPU: {psutil.cpu_percent()}%")
return True
except Exception as e:
print(f"❌ Erro na análise: {e}")
return False
if __name__ == "__main__":
test_analysis_performance()
📞 Obtendo Ajuda
Informações para Suporte
Ao reportar problemas, inclua:
Informações do sistema:
python diagnostic.py > diagnostic_report.txtLogs de erro completos:
python app.py > app_log.txt 2>&1Configurações utilizadas:
# Exportar configurações from config import * print(f"Modelo: {FinancialModels.DEFAULT_MODEL}") print(f"RSI: {TechnicalAnalysis.RSI_PERIOD}")
Recursos Adicionais
- 📚 Documentação da Arquitetura
- ⚙️ Guia de Configuração
- 🚀 Guia de Instalação
- 📖 Referência da API
- 👨💻 Guia do Desenvolvedor
Comunidade e Suporte
- 🐛 Issues: Para reportar bugs
- 💬 Discussões: Para dúvidas gerais
- 📧 Email: Para suporte direto
- 📖 Wiki: Para documentação adicional
💡 Dica: Mantenha sempre uma cópia de backup das suas configurações antes de fazer alterações significativas!