File size: 7,391 Bytes
7094511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
# 🧪 Sistema de Testes Massivos - AgentGraph

Sistema completo para testes de consistência e performance dos agentes SQL com paralelismo otimizado.

## 🎯 **Funcionalidades**

### **✅ Configuração Dinâmica**
- **Pergunta personalizada**: Define a query que será testada
- **Múltiplos grupos**: Diferentes configurações de modelos
- **Processing Agent**: Ativa/desativa com modelo específico
- **Iterações configuráveis**: 1-100 testes por grupo

### **⚡ Execução Paralela**
- **Paralelismo otimizado**: Até 8 workers simultâneos
- **Controle de recursos**: Semáforos para evitar sobrecarga
- **Progress tracking**: Acompanhamento em tempo real
- **Estimativa de tempo**: Tempo restante calculado dinamicamente

### **🔍 Validação Inteligente**
- **Validação LLM**: Análise automática com GPT/Claude
- **Validação por palavra-chave**: Busca por conteúdo específico
- **Pontuação 0-100**: Score detalhado de qualidade
- **Análise de consistência**: Taxa de respostas similares

### **📊 Relatórios Completos**
- **Dashboard interativo**: Visualização em tempo real
- **Múltiplas abas**: Resumo, grupos, resultados individuais
- **Exportação Excel**: Relatórios detalhados em XLSX
- **Métricas avançadas**: Taxa de acerto, consistência, performance

## 🚀 **Como Usar**

### **1. Instalação**
```bash
# Instalar dependências
pip install -r testes/requirements.txt

# Verificar configuração do AgentGraph
python -c "from utils.config import validate_config; validate_config()"
```

### **2. Inicialização**
```bash
# IMPORTANTE: Execute da raiz do projeto!
# Método 1: Script automático (RECOMENDADO)
python run_massive_tests.py

# Método 2: Direto (apenas se necessário)
python testes/app_teste.py
```

### **3. Acesso**
- **URL**: http://localhost:5001
- **Interface**: HTML responsiva
- **Compatibilidade**: Todos os navegadores modernos

## 📋 **Fluxo de Uso**

### **Passo 1: Configurar Pergunta**
```
1. Digite a pergunta que será testada
2. Clique em "Criar Sessão"
3. Sessão será criada com ID único
```

### **Passo 2: Adicionar Grupos**
```
1. Selecione modelo do SQL Agent
2. Ative Processing Agent (opcional)
3. Escolha modelo do Processing Agent
4. Defina número de iterações (1-100)
5. Clique em "Adicionar Grupo"
6. Repita para criar múltiplos grupos
```

### **Passo 3: Configurar Validação**
```
Método LLM (Recomendado):
- Análise automática da qualidade
- Pontuação 0-100
- Razão detalhada

Método Palavra-chave:
- Busca por texto específico
- Validação binária (contém/não contém)
```

### **Passo 4: Executar Testes**
```
1. Clique em "Executar Testes"
2. Acompanhe progresso em tempo real
3. Visualize métricas durante execução
4. Aguarde conclusão automática
```

### **Passo 5: Analisar Resultados**
```
Aba Resumo:
- Métricas gerais
- Melhor grupo
- Grupo mais consistente

Aba Por Grupo:
- Taxa de sucesso por grupo
- Comparação de modelos
- Performance detalhada

Aba Individual:
- Cada teste executado
- Detalhes completos
- Query SQL gerada
```

## 📊 **Métricas Calculadas**

### **Taxa de Sucesso**
- **Cálculo**: (Testes sem erro / Total de testes) × 100
- **Indica**: Estabilidade do modelo
- **Ideal**: > 90%

### **Taxa de Validação**
- **Cálculo**: (Respostas válidas / Total de testes) × 100
- **Indica**: Qualidade das respostas
- **Ideal**: > 80%

### **Consistência de Resposta**
- **Cálculo**: (Respostas idênticas / Total de respostas) × 100
- **Indica**: Determinismo do modelo
- **Ideal**: > 70%

### **Consistência SQL**
- **Cálculo**: (Queries idênticas / Total de queries) × 100
- **Indica**: Estabilidade da geração SQL
- **Ideal**: > 80%

### **Tempo Médio**
- **Cálculo**: Soma dos tempos / Número de testes
- **Indica**: Performance do modelo
- **Ideal**: < 10s

## 🔧 **Configurações Avançadas**

### **Paralelismo**
```python
# Em test_runner.py
max_workers = 8  # Ajuste conforme sua máquina
```

### **Validação LLM**
```python
# Em test_validator.py
validator_model = "gpt-4o-mini"  # Modelo para validação
temperature = 0.1  # Baixa para consistência
```

### **Timeouts**
```python
# Em app_teste.py
status_polling = 2000  # ms entre verificações
```

## 📁 **Estrutura de Arquivos**

```
testes/
├── app_teste.py              # Servidor Flask principal
├── test_runner.py            # Executor de testes paralelos
├── test_validator.py         # Sistema de validação
├── report_generator.py       # Gerador de relatórios
├── run_tests.py             # Script de inicialização
├── requirements.txt         # Dependências
├── README.md               # Esta documentação
├── templates/
│   └── index.html          # Interface HTML
├── static/
│   └── js/
│       └── app.js          # JavaScript da interface
└── reports/                # Relatórios gerados
    ├── *.xlsx             # Relatórios Excel
    ├── *.json             # Dados brutos
    └── *.html             # Resumos HTML
```

## 🎯 **Casos de Uso**

### **Comparação de Modelos**
```
Objetivo: Qual modelo SQL é mais consistente?
Configuração:
- Grupo 1: GPT-4o + Processing Agent
- Grupo 2: Claude-3.5-Sonnet + Processing Agent  
- Grupo 3: GPT-4o sem Processing Agent
- 20 iterações cada
```

### **Impacto do Processing Agent**
```
Objetivo: Processing Agent melhora a qualidade?
Configuração:
- Grupo 1: GPT-4o-mini COM Processing Agent
- Grupo 2: GPT-4o-mini SEM Processing Agent
- Mesma pergunta, 50 iterações cada
```

### **Teste de Stress**
```
Objetivo: Como o sistema se comporta sob carga?
Configuração:
- 5 grupos diferentes
- 100 iterações cada
- Monitorar tempo de resposta
```

## 🚨 **Limitações e Considerações**

### **Rate Limits das APIs**
- **OpenAI**: ~3000 requests/minuto
- **Anthropic**: ~1000 requests/minuto
- **Ajuste**: Reduza max_workers se necessário

### **Recursos do Sistema**
- **RAM**: ~100MB por worker ativo
- **CPU**: Intensivo durante execução
- **Rede**: Dependente das APIs LLM

### **Custos**
- **Validação LLM**: ~$0.001 por teste
- **Testes massivos**: Pode gerar custos significativos
- **Recomendação**: Comece com poucos testes

## 🔍 **Troubleshooting**

### **Erro: "Dependência faltando"**
```bash
pip install -r testes/requirements.txt
```

### **Erro: "AgentGraph não configurado"**
```bash
# Verifique .env com APIs configuradas
cp .env.example .env
# Edite .env com suas chaves
```

### **Erro: "Porta 5001 em uso"**
```python
# Em app_teste.py, altere:
app.run(port=5002)  # Use porta diferente
```

### **Performance lenta**
```python
# Reduza workers em test_runner.py:
max_workers = 4  # Ao invés de 8
```

## 📈 **Próximas Funcionalidades**

- [ ] **Testes agendados**: Execução automática
- [ ] **Comparação histórica**: Evolução ao longo do tempo
- [ ] **Alertas**: Notificações de degradação
- [ ] **API REST**: Integração com CI/CD
- [ ] **Dashboards avançados**: Gráficos interativos

## 🤝 **Contribuição**

Para melhorias ou bugs:
1. Documente o problema/sugestão
2. Teste em ambiente isolado
3. Mantenha compatibilidade com AgentGraph
4. Atualize documentação se necessário

---

**🎉 Sistema pronto para uso! Execute `python run_massive_tests.py` da raiz do projeto e comece a testar!**