#!/usr/bin/env python3 """ Test simple de l'intégration de l'EnhancedWorkflowMatcher dans l'Orchestrator. Vérifie que les imports et la structure sont corrects. """ print('Test simple de l\'intégration EnhancedWorkflowMatcher') print('='*70) # Test 1: Vérifier que les imports fonctionnent print('\n1. Test des imports...') try: from geniusia2.core.enhanced_workflow_matcher import EnhancedWorkflowMatcher print(' ✓ EnhancedWorkflowMatcher importé') except Exception as e: print(f' ✗ Erreur import EnhancedWorkflowMatcher: {e}') exit(1) try: from geniusia2.core.multimodal_embedding_manager import MultiModalEmbeddingManager print(' ✓ MultiModalEmbeddingManager importé') except Exception as e: print(f' ✗ Erreur import MultiModalEmbeddingManager: {e}') exit(1) # Test 2: Vérifier que l'Orchestrator importe les nouveaux composants print('\n2. Vérification des imports dans orchestrator.py...') try: with open('geniusia2/core/orchestrator.py', 'r') as f: content = f.read() if 'from .enhanced_workflow_matcher import EnhancedWorkflowMatcher' in content: print(' ✓ Import EnhancedWorkflowMatcher trouvé') else: print(' ✗ Import EnhancedWorkflowMatcher manquant') exit(1) if 'from .multimodal_embedding_manager import MultiModalEmbeddingManager' in content: print(' ✓ Import MultiModalEmbeddingManager trouvé') else: print(' ✗ Import MultiModalEmbeddingManager manquant') exit(1) if 'self.multimodal_manager = MultiModalEmbeddingManager' in content: print(' ✓ Initialisation multimodal_manager trouvée') else: print(' ✗ Initialisation multimodal_manager manquante') exit(1) if 'self.enhanced_matcher = EnhancedWorkflowMatcher' in content: print(' ✓ Initialisation enhanced_matcher trouvée') else: print(' ✗ Initialisation enhanced_matcher manquante') exit(1) if 'def find_matching_workflows_enhanced' in content: print(' ✓ Méthode find_matching_workflows_enhanced trouvée') else: print(' ✗ Méthode find_matching_workflows_enhanced manquante') exit(1) except Exception as e: print(f' ✗ Erreur lors de la vérification: {e}') exit(1) # Test 3: Vérifier la structure de la méthode print('\n3. Vérification de la structure de find_matching_workflows_enhanced...') try: # Extraire la méthode start = content.find('def find_matching_workflows_enhanced') if start == -1: print(' ✗ Méthode non trouvée') exit(1) # Vérifier les éléments clés method_content = content[start:start+5000] checks = [ ('screen_state', 'Paramètre screen_state'), ('screenshot', 'Paramètre screenshot'), ('top_k', 'Paramètre top_k'), ('self.enhanced_matcher.find_matching_workflows', 'Appel au matcher'), ('WorkflowMatch', 'Retour de WorkflowMatch'), ('get_feedback_summary', 'Utilisation du feedback') ] for check_str, description in checks: if check_str in method_content: print(f' ✓ {description} présent') else: print(f' ⚠ {description} non trouvé (peut être normal)') except Exception as e: print(f' ✗ Erreur: {e}') exit(1) # Test 4: Vérifier la configuration print('\n4. Vérification de la configuration du matcher...') try: config_checks = [ ('screen_weight', 'Poids écran'), ('elements_weight', 'Poids éléments'), ('min_similarity_threshold', 'Seuil de similarité'), ('min_confidence_threshold', 'Seuil de confiance') ] for check_str, description in config_checks: if check_str in content: print(f' ✓ {description} configuré') else: print(f' ⚠ {description} non configuré') except Exception as e: print(f' ✗ Erreur: {e}') exit(1) print('\n' + '='*70) print('✅ Tous les tests d\'intégration structurelle réussis!') print('='*70) print('\n📊 Résumé:') print(' ✓ EnhancedWorkflowMatcher importé dans Orchestrator') print(' ✓ MultiModalEmbeddingManager importé dans Orchestrator') print(' ✓ Instances créées dans __init__') print(' ✓ Méthode find_matching_workflows_enhanced ajoutée') print(' ✓ Configuration du matcher présente') print('\n🎯 Prochaines étapes:') print(' 1. Tester avec un Orchestrator réel (nécessite torch)') print(' 2. Tester le matching avec des workflows réels') print(' 3. Valider le feedback détaillé en production')