""" 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()