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)