Files
Geniusia_v2/docs/archive/old-summaries/FIX_MODE_SUGGESTIONS.md
2026-03-05 00:20:25 +01:00

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 :

  1. check_for_suggestions() - Vérifie périodiquement s'il faut créer une suggestion
  2. _check_workflow_match() - Vérifie si les actions correspondent à un workflow connu
  3. accept_current_suggestion() - Accepte la suggestion actuelle
  4. reject_current_suggestion() - Rejette la suggestion actuelle
  5. _index_workflow_in_faiss() - Indexe un workflow dans FAISS
  6. _add_positive_example_for_finetuning() - Ajoute un exemple positif pour le fine-tuning
  7. _add_negative_example_for_finetuning() - Ajoute un exemple négatif pour le fine-tuning
  8. _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 :

  1. Mode actif : Le mode doit être "assist"
  2. Pas de suggestion active : Il ne doit pas y avoir déjà une suggestion en attente
  3. Workflow match : Vérifie d'abord si les actions correspondent à un workflow connu
  4. Contexte valide : Capture le contexte actuel pour créer une suggestion

3. Priorité des Suggestions

  1. Workflows (priorité haute) : Si les actions correspondent à un workflow appris
  2. Actions classiques (priorité normale) : Suggestions basées sur le contexte actuel

🧪 Test

Pour tester le mode Suggestions :

./geniusia2/run.sh

Scénario de Test

  1. 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
  2. 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
  3. 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 :

  1. Syntaxe : python3 -m py_compile geniusia2/core/orchestrator.py
  2. Mode affiché : La GUI doit afficher "💡 Suggestions" en orange
  3. Logs : Les actions doivent être observées et comptées
  4. 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 ! 🚀