Spaces:
Sleeping
Sleeping
File size: 5,114 Bytes
e982206 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | #!/usr/bin/env python3
"""
Script de inicialização do Sistema de Testes Massivos - AgentGraph
Execute este arquivo na raiz do projeto para ter acesso a todos os módulos
"""
import os
import sys
import subprocess
import logging
def check_dependencies():
"""Verifica se as dependências estão instaladas"""
try:
import flask
import pandas
import openpyxl
print("✅ Dependências Flask/Pandas verificadas")
return True
except ImportError as e:
print(f"❌ Dependência faltando: {e}")
print("💡 Execute: pip install flask pandas openpyxl")
return False
def check_agentgraph_setup():
"""Verifica se o AgentGraph está configurado"""
try:
from utils.config import AVAILABLE_MODELS, validate_config
validate_config()
print("✅ AgentGraph configurado corretamente")
print(f"📊 {len(AVAILABLE_MODELS)} modelos disponíveis")
return True
except Exception as e:
print(f"❌ Erro na configuração do AgentGraph: {e}")
print("💡 Verifique se as APIs estão configuradas no .env")
return False
def check_cache_disabled():
"""Verifica se o cache foi desativado conforme solicitado"""
try:
from nodes.agent_node import route_after_cache_check
# Testa se o cache está desativado
test_state = {"cache_hit": True, "processing_enabled": False}
result = route_after_cache_check(test_state)
if result != "update_history": # Se não vai para cache, está desativado
print("✅ Cache desativado conforme solicitado")
return True
else:
print("⚠️ Cache ainda ativo - pode afetar testes de consistência")
return True # Não é erro fatal
except Exception as e:
print(f"⚠️ Erro ao verificar cache: {e}")
return True # Não é erro fatal
def check_test_modules():
"""Verifica se os módulos de teste estão funcionando"""
try:
from testes.test_runner import MassiveTestRunner
from testes.test_validator import TestValidator
from testes.report_generator import ReportGenerator
print("✅ Módulos de teste carregados com sucesso")
return True
except Exception as e:
print(f"❌ Erro nos módulos de teste: {e}")
return False
def main():
"""Função principal"""
print("🧪 Sistema de Testes Massivos - AgentGraph")
print("=" * 60)
print("📍 Executando da raiz do projeto para acesso completo aos módulos")
print("=" * 60)
# Verificações pré-execução
checks = [
("Dependências", check_dependencies),
("Configuração AgentGraph", check_agentgraph_setup),
("Status do Cache", check_cache_disabled),
("Módulos de Teste", check_test_modules)
]
print("\n🔍 Verificações pré-execução:")
all_passed = True
for check_name, check_func in checks:
print(f"\n📋 {check_name}:")
if not check_func():
all_passed = False
if not all_passed:
print("\n❌ Algumas verificações falharam")
print("🔧 Corrija os problemas acima antes de continuar")
return False
print("\n" + "=" * 60)
print("🚀 Todas as verificações passaram!")
print("🌐 Iniciando servidor de testes...")
print("📊 Interface disponível em: http://localhost:5001")
print("🔄 Pressione Ctrl+C para parar")
print("=" * 60)
# Inicia o servidor
try:
from testes.app_teste import app
# Configura logging para Flask
import logging
logging.getLogger('werkzeug').setLevel(logging.WARNING) # Reduz logs do Flask
app.run(
host='0.0.0.0',
port=5001,
debug=True, # Habilita debug para ver logs
threaded=True,
use_reloader=False # Evita restart duplo
)
except KeyboardInterrupt:
print("\n👋 Sistema de testes encerrado pelo usuário")
except Exception as e:
print(f"\n❌ Erro ao iniciar servidor: {e}")
print("💡 Verifique se a porta 5001 está disponível")
return False
return True
if __name__ == '__main__':
print("🎯 SISTEMA DE TESTES MASSIVOS PARA AGENTGRAPH")
print("=" * 60)
print("📝 FUNCIONALIDADES:")
print("• Testes paralelos com até 8 workers simultâneos")
print("• Comparação de modelos SQL (GPT, Claude, Gemini)")
print("• Teste com/sem Processing Agent")
print("• Validação automática por LLM ou palavra-chave")
print("• Relatórios detalhados em Excel/CSV")
print("• Interface HTML intuitiva")
print("• Métricas de consistência e performance")
print("=" * 60)
success = main()
if success:
print("\n🎉 Sistema executado com sucesso!")
else:
print("\n❌ Erro na execução do sistema")
print("💡 Verifique os logs acima para detalhes")
sys.exit(0 if success else 1)
|