3.7 KiB
3.7 KiB
Task 2: Améliorer SuggestionManager - ✓ COMPLÉTÉ
Résumé
Le SuggestionManager a été amélioré avec succès pour supporter la détection et la suggestion de workflows en mode assisté.
Modifications apportées
Fichier modifié
geniusia2/core/suggestion_manager.py
Nouvelles méthodes ajoutées
-
check_workflow_match(session_actions, workflows)
- Vérifie périodiquement si les actions courantes correspondent à un workflow
- Applique les ajustements de priorité
- Retourne le meilleur match si confiance > 80%
-
create_workflow_suggestion(workflow_match)
- Crée une suggestion détaillée avec toutes les étapes restantes
- Inclut un aperçu des 3 prochaines étapes
- Gère le timeout de 10 secondes
-
_track_workflow_rejection(workflow_id)
- Enregistre les rejets par workflow
- Ajuste automatiquement la priorité après 3 rejets
- Formule: confiance * (0.9 ^ (rejets // 3))
-
_track_workflow_acceptance(workflow_id)
- Récompense les workflows acceptés
- Réduit le compteur de rejets de 2
- Supprime l'ajustement si rejets < 3
-
_apply_priority_adjustment(match)
- Applique l'ajustement de priorité au score de confiance
- Maintient la confiance dans [0, 1]
Modifications existantes
- init: Ajout du paramètre
workflow_matcheret initialisation des dictionnaires de tracking - accept_suggestion: Intégration du tracking d'acceptation pour les workflows
- reject_suggestion: Intégration du tracking de rejet pour les workflows
- get_stats: Ajout des statistiques de rejets et ajustements
État des données
Nouveaux attributs de classe
self.workflow_matcher: WorkflowMatcher
self.workflow_rejections: Dict[str, int] # workflow_id -> count
self.workflow_priority_adjustments: Dict[str, float] # workflow_id -> multiplier
Tests
✓ 8/8 tests passés:
- Syntaxe correcte
- Toutes les méthodes présentes
- Imports corrects
- Paramètres init corrects
- Logique de tracking des rejets
- Logique de tracking des acceptations
- Intégration accept/reject
- Couverture des requirements
Requirements couverts
- ✓ 1.4: Vérification périodique avec check_workflow_match()
- ✓ 1.5: Suggestions détaillées avec create_workflow_suggestion()
- ✓ 3.3: Tracking des rejets et ajustement après 3 rejets
- ✓ 3.5: Filtrage par fenêtre (via WorkflowMatcher)
Exemple d'utilisation
# Vérifier les matchs périodiquement
match = suggestion_manager.check_workflow_match(session_actions, workflows)
# Créer une suggestion si match trouvé
if match:
suggestion = suggestion_manager.create_workflow_suggestion(match)
# L'utilisateur accepte ou rejette
if user_accepts:
suggestion_manager.accept_suggestion() # Réduit les rejets
else:
suggestion_manager.reject_suggestion() # Incrémente les rejets
Impact sur le système
Ajustement de priorité
- 0 rejets: confiance × 1.0 (100%)
- 3 rejets: confiance × 0.9 (90%)
- 6 rejets: confiance × 0.81 (81%)
- 9 rejets: confiance × 0.729 (73%)
Récompenses
- Chaque acceptation réduit le compteur de rejets de 2
- Si rejets < 3, l'ajustement est supprimé
Prochaines étapes
Le SuggestionManager est maintenant prêt pour:
- Task 3: Intégration dans l'Orchestrator
- Task 4: Amélioration du GUI Overlay
- Task 5: Amélioration du TaskReplayEngine
Fichiers créés
test_suggestion_manager_simple.py: Tests de validationSUGGESTION_MANAGER_IMPROVEMENTS.md: Documentation détailléeTASK_2_SUMMARY.md: Ce résumé
Status: ✓ COMPLÉTÉ Date: 2025-11-19 Tests: 8/8 passés