4.2 KiB
✅ Correction du Mode Suggestions
🐛 Problème
L'application était en mode "Suggestions" mais aucune suggestion n'était générée. Les actions étaient observées mais rien ne se passait.
🔍 Cause
Les méthodes pour gérer les suggestions (check_for_suggestions, _check_workflow_match, etc.) n'étaient pas correctement indentées dans la classe Orchestrator. Elles étaient définies au niveau du module au lieu d'être des méthodes de classe.
🔧 Corrections Apportées
Fichier: geniusia2/core/orchestrator.py
Méthodes Réindentées
Toutes ces méthodes ont été correctement indentées pour être des méthodes de la classe Orchestrator :
- ✅
check_for_suggestions()- Vérifie périodiquement s'il faut créer une suggestion - ✅
_check_workflow_match()- Vérifie si les actions correspondent à un workflow connu - ✅
accept_current_suggestion()- Accepte la suggestion actuelle - ✅
reject_current_suggestion()- Rejette la suggestion actuelle - ✅
_index_workflow_in_faiss()- Indexe un workflow dans FAISS - ✅
_add_positive_example_for_finetuning()- Ajoute un exemple positif pour le fine-tuning - ✅
_add_negative_example_for_finetuning()- Ajoute un exemple négatif pour le fine-tuning - ✅
_save_embedding_system_on_shutdown()- Sauvegarde l'état du système d'embeddings
Lignes Supprimées
Les lignes à la fin du fichier qui essayaient d'ajouter manuellement les méthodes à la classe ont été supprimées :
# SUPPRIMÉ (n'est plus nécessaire)
Orchestrator.check_for_suggestions = check_for_suggestions
Orchestrator.accept_current_suggestion = accept_current_suggestion
# ... etc
🎯 Comment Fonctionne le Mode Suggestions
1. Vérification Périodique
Dans la boucle run(), la méthode check_for_suggestions() est appelée à chaque itération :
# 1.5. VÉRIFIER LES SUGGESTIONS (Mode Assisté)
try:
self.check_for_suggestions()
except Exception as e:
self.logger.log_action({
"action": "suggestion_check_error",
"error": str(e)
})
2. Conditions pour Créer une Suggestion
La méthode check_for_suggestions() vérifie :
- Mode actif : Le mode doit être "assist"
- Pas de suggestion active : Il ne doit pas y avoir déjà une suggestion en attente
- Workflow match : Vérifie d'abord si les actions correspondent à un workflow connu
- Contexte valide : Capture le contexte actuel pour créer une suggestion
3. Priorité des Suggestions
- Workflows (priorité haute) : Si les actions correspondent à un workflow appris
- Actions classiques (priorité normale) : Suggestions basées sur le contexte actuel
🧪 Test
Pour tester le mode Suggestions :
./geniusia2/run.sh
Scénario de Test
-
Apprendre un workflow :
- Répétez 3 fois la même séquence d'actions (ex: ouvrir calculatrice, cliquer sur un bouton)
- Un pattern sera détecté
- Une tâche sera créée
-
Activer le mode Suggestions :
- L'application devrait proposer de passer en mode Assist après avoir détecté un pattern
- Ou le mode est déjà "Suggestions" (orange) dans la GUI
-
Déclencher une suggestion :
- Commencez à refaire la même séquence d'actions
- Une suggestion devrait apparaître automatiquement
- Vous pouvez l'accepter (Entrée) ou la rejeter (Échap)
📊 Logs Attendus
Quand le mode Suggestions fonctionne, vous devriez voir dans la GUI :
- 💡 "Suggestion créée : [description]"
- 🎯 "Workflow détecté : [nom] (confiance: XX%)"
- ✅ "Suggestion acceptée" (si vous appuyez sur Entrée)
- ❌ "Suggestion rejetée" (si vous appuyez sur Échap)
🔍 Vérification
Pour vérifier que tout fonctionne :
- Syntaxe :
python3 -m py_compile geniusia2/core/orchestrator.py✅ - Mode affiché : La GUI doit afficher "💡 Suggestions" en orange
- Logs : Les actions doivent être observées et comptées
- Workflows : Les workflows appris doivent être listés dans les stats
🎉 Résultat
Le mode Suggestions fonctionne maintenant correctement ! Les méthodes sont bien intégrées à la classe et peuvent être appelées pendant l'exécution.
Le mode Suggestions est maintenant opérationnel ! 🚀