File size: 4,262 Bytes
d28c36c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Test simple pour évaluer les capacités MCP de Qwen2.5 0.5B
"""

import sys
import os

# Ajouter le chemin pour importer les modules locaux
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

def test_basic_capability():
    """Test de capacité MCP de base"""
    
    print("=== Test de capacité MCP de base ===")
    
    # Test 1: Compréhension des outils MCP
    prompt1 = """
Tu es un assistant IA qui contrôle un jeu RTS via MCP.
Outils disponibles:
- get_game_state(): Obtenir l'état du jeu
- move_units(unit_ids, target_x, target_y): Déplacer des unités

Commande utilisateur: "Montre-moi l'état du jeu"

Réponds avec un objet JSON contenant l'appel d'outil à exécuter.
"""
    
    print("Test 1 - Compréhension des outils:")
    print(f"Prompt: {prompt1[:100]}...")
    
    # Test 2: Traduction d'action simple
    prompt2 = """
Tu es un assistant IA qui contrôle un jeu RTS via MCP.
Outils disponibles:
- move_units(unit_ids, target_x, target_y): Déplacer des unités

Commande utilisateur: "Déplace mon infanterie vers la position 100, 200"

Réponds avec un objet JSON contenant l'appel d'outil à exécuter.
"""
    
    print("\nTest 2 - Traduction d'action:")
    print(f"Prompt: {prompt2[:100]}...")
    
    # Test 3: Planification complexe
    prompt3 = """
Tu es un assistant IA qui contrôle un jeu RTS via MCP.
Outils disponibles:
- get_game_state(): Obtenir l'état du jeu
- move_units(): Déplacer des unités
- attack_unit(): Attaquer une unité ennemie
- build_building(): Construire un bâtiment

Commande utilisateur: "Je veux construire une base près du champ de minerai et la défendre avec des tourelles"

Décompose cette commande en une séquence d'appels d'outils MCP.
"""
    
    print("\nTest 3 - Planification complexe:")
    print(f"Prompt: {prompt3[:100]}...")
    
    return {
        "test1": {"prompt": prompt1, "expected": "get_game_state"},
        "test2": {"prompt": prompt2, "expected": "move_units avec paramètres"},
        "test3": {"prompt": prompt3, "expected": "séquence d'actions"}
    }

def test_with_ai_model():
    """Test avec le modèle AI réel"""
    
    try:
        from ai_analysis import query_llm
        
        print("\n=== Test avec le modèle Qwen2.5 0.5B ===")
        
        # Test simple
        test_prompt = """
Tu es un assistant IA. Réponds simplement avec "TEST_RÉUSSI" si tu comprends cette instruction.
"""
        
        print("Test de connexion au modèle...")
        
        response = query_llm(
            prompt=test_prompt,
            max_tokens=50,
            temperature=0.1
        )
        
        print(f"Réponse du modèle: {response}")
        
        if "TEST_RÉUSSI" in response:
            print("✅ Modèle fonctionne correctement")
            return True
        else:
            print("❌ Problème avec le modèle")
            return False
            
    except Exception as e:
        print(f"❌ Erreur lors du test du modèle: {e}")
        return False

def main():
    """Fonction principale"""
    
    print("🔍 Évaluation des capacités MCP de Qwen2.5 0.5B")
    print("=" * 60)
    
    # Test de base
    tests = test_basic_capability()
    
    # Test avec le modèle
    model_working = test_with_ai_model()
    
    # Résumé
    print("\n" + "=" * 60)
    print("📊 RÉSUMÉ DE L'ÉVALUATION")
    print("=" * 60)
    
    print("\n1. CAPACITÉS MCP DE BASE:")
    print("   ✅ Compréhension des outils MCP: Test défini")
    print("   ✅ Traduction d'actions simples: Test défini")
    print("   ✅ Planification complexe: Test défini")
    
    print(f"\n2. ÉTAT DU MODÈLE: {'✅ OPÉRATIONNEL' if model_working else '❌ PROBLÈME'}")
    
    print("\n3. RECOMMANDATIONS:")
    if model_working:
        print("   • Le modèle peut être utilisé pour la traduction MCP")
        print("   • Commencez par des commandes simples")
        print("   • Ajoutez une validation pour les actions complexes")
    else:
        print("   • Vérifiez que le modèle est téléchargé")
        print("   • Assurez-vous que llama-cpp-python est installé")
        print("   • Testez avec des commandes plus simples d'abord")

if __name__ == "__main__":
    main()