rts-commander / tests /scripts /simple_qwen_test.py
Luigi's picture
Organize project structure: move test scripts to tests/scripts and documentation to docs/reports
d28c36c
"""
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()