File size: 3,893 Bytes
9730fbc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
"""
Script para testar a integração Maritaca AI no Cidadão.AI
"""

import requests
import json
from datetime import datetime

# URL do backend no HuggingFace Spaces
BASE_URL = "https://neural-thinker-cidadao-ai-backend.hf.space"

def test_health():
    """Testa se a API está online"""
    try:
        response = requests.get(f"{BASE_URL}/health")
        print(f"✅ Health Check: {response.status_code}")
        if response.status_code == 200:
            print(f"   Response: {response.json()}")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ Health Check Error: {e}")
        return False

def test_chat_endpoint():
    """Testa o endpoint de chat com a Maritaca AI"""
    endpoint = f"{BASE_URL}/api/v1/chat/message"
    
    # Mensagens de teste
    test_messages = [
        {
            "message": "Olá, tudo bem?",
            "expected_agent": "drummond"
        },
        {
            "message": "Quero investigar contratos de saúde em São Paulo",
            "expected_agent": "abaporu"
        },
        {
            "message": "Me explique como funciona o portal da transparência",
            "expected_agent": "drummond"
        }
    ]
    
    headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    
    for test in test_messages:
        print(f"\n📤 Testando: '{test['message']}'")
        print(f"   Agente esperado: {test['expected_agent']}")
        
        payload = {
            "message": test["message"],
            "session_id": f"test-{datetime.now().timestamp()}"
        }
        
        try:
            response = requests.post(
                endpoint,
                json=payload,
                headers=headers,
                timeout=30
            )
            
            print(f"   Status: {response.status_code}")
            
            if response.status_code == 200:
                data = response.json()
                print(f"   ✅ Resposta recebida!")
                print(f"   Agente: {data.get('agent_name', 'N/A')}")
                print(f"   Mensagem: {data.get('message', 'N/A')[:100]}...")
                print(f"   Confiança: {data.get('confidence', 'N/A')}")
                
                # Verifica se está usando Maritaca
                if "drummond" in data.get('agent_id', '').lower():
                    print(f"   🤖 Drummond ativado (deve estar usando Maritaca AI)")
                
            elif response.status_code == 422:
                print(f"   ❌ Erro de validação: {response.json()}")
            else:
                print(f"   ❌ Erro: {response.text[:200]}")
                
        except requests.exceptions.Timeout:
            print(f"   ⏱️ Timeout - a requisição demorou mais de 30 segundos")
        except Exception as e:
            print(f"   ❌ Erro na requisição: {e}")

def test_api_docs():
    """Verifica se a documentação da API está acessível"""
    try:
        response = requests.get(f"{BASE_URL}/docs")
        print(f"\n📚 API Docs: {response.status_code}")
        if response.status_code == 200:
            print(f"   ✅ Documentação disponível em: {BASE_URL}/docs")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ API Docs Error: {e}")
        return False

if __name__ == "__main__":
    print("🧪 Testando integração Maritaca AI no Cidadão.AI")
    print(f"🌐 Backend URL: {BASE_URL}")
    print("="*50)
    
    # Testa health check
    if test_health():
        # Testa documentação
        test_api_docs()
        
        # Testa endpoint de chat
        test_chat_endpoint()
    else:
        print("\n❌ API não está respondendo. Verifique se o HuggingFace Spaces está online.")
    
    print("\n"+"="*50)
    print("✅ Testes concluídos!")