- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
27 KiB
ok # Implementation Plan - Workflow Graph Implementation
Vue d'Ensemble
Ce plan d'implémentation transforme le design en tâches concrètes et progressives. Chaque tâche construit sur les précédentes pour implémenter l'architecture complète en 5 couches du système RPA Vision V2.
Principe : Implémentation incrémentale avec tests à chaque étape. Focus sur le RPA 100% Vision avec workflows sémantiques.
Tasks
-
1. Phase 1 : Fondations - Structures de Données
- Créer les classes de base pour toutes les couches
- Implémenter sérialisation/désérialisation JSON
- Requirements: 1.4, 1.5, 2.6, 7.6, 12.1, 12.4, 12.5
-
1.1 Créer modèle RawSession avec sérialisation JSON
- Implémenter classe
RawSessiondansgeniusia2/core/models/raw_session.py - Implémenter classes
EventetScreenshot - Implémenter méthodes
to_json()etfrom_json() - Valider schéma "rawsession_v1"
- Requirements: 1.4, 1.5
- Implémenter classe
-
* 1.2 Écrire tests unitaires pour RawSession
- Tester sérialisation/désérialisation
- Tester ajout d'événements et screenshots
- Tester validation de schéma
- Property 1: RawSession Serialization Round Trip
- Validates: Requirements 1.4, 1.5
-
1.3 Créer modèle ScreenState avec 4 niveaux
- Implémenter classe
ScreenStatedansgeniusia2/core/models/screen_state.py - Implémenter classes
RawLevel,PerceptionLevel,ContextLevel - Implémenter méthodes
to_json()etfrom_json() - Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
- Implémenter classe
-
* 1.4 Écrire tests unitaires pour ScreenState
- Tester création des 4 niveaux
- Tester sérialisation/désérialisation
- Property 2: ScreenState Multi-Level Consistency
- Validates: Requirements 2.1, 2.2, 2.3, 2.4, 2.5
-
1.5 Créer modèle UIElement avec embeddings duaux
- Implémenter classe
UIElementdansgeniusia2/core/models/ui_element.py - Implémenter classes
UIElementEmbeddings,VisualFeatures - Implémenter méthodes
to_json()etfrom_json() - Requirements: 3.7
- Implémenter classe
-
* 1.6 Écrire tests unitaires pour UIElement
- Tester création avec tous les attributs
- Tester sérialisation/désérialisation
- Property 3: UIElement Detection Confidence Bounds
- Validates: Requirements 3.6
-
1.7 Créer modèle StateEmbedding
- Implémenter classe
StateEmbeddingdansgeniusia2/core/models/state_embedding.py - Implémenter méthode
get_vector()pour charger .npy - Implémenter méthode
compute_similarity() - Requirements: 4.7, 4.8
- Implémenter classe
-
* 1.8 Écrire tests unitaires pour StateEmbedding
- Tester chargement de vecteur
- Tester calcul de similarité
- Property 4: State Embedding Normalization
- Property 5: State Embedding Similarity Symmetry
- Property 6: State Embedding Similarity Bounds
- Validates: Requirements 4.6, 4.7
-
1.9 Créer modèles Workflow Graph (Node, Edge, Workflow)
- Implémenter classes dans
geniusia2/core/models/workflow_graph.py - Implémenter
WorkflowNode,WorkflowEdge,Workflow - Implémenter classes de support (ScreenTemplate, Action, etc.)
- Implémenter méthodes
to_json()etfrom_json() - Requirements: 5.6, 6.7, 7.6
- Implémenter classes dans
-
* 1.10 Écrire tests unitaires pour Workflow Graph
- Tester création de nodes et edges
- Tester sérialisation/désérialisation
- Property 12: Workflow Graph Structural Validity
- Property 18: Workflow JSON Serialization Round Trip
- Validates: Requirements 7.2, 7.6, 12.4, 12.5
-
2. Phase 2 : Système d'Embeddings et FAISS
- Implémenter fusion multi-modale
- Implémenter gestion FAISS
- Optimiser performances
- Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.8, 12.3, 12.6, 15.1, 15.2
-
2.1 Implémenter FusionEngine pour fusion pondérée
- Créer classe
FusionEnginedansgeniusia2/core/embedding/fusion_engine.py - Implémenter méthode
fuse()avec fusion pondérée - Implémenter normalisation des vecteurs
- Configurer poids par défaut (image: 0.5, text: 0.3, title: 0.1, ui: 0.1)
- Requirements: 4.5, 4.6
- Créer classe
-
* 2.2 Écrire tests unitaires pour FusionEngine
- Tester fusion pondérée
- Tester normalisation
- Property 17: State Embedding Component Weights Sum
- Validates: Requirements 4.5
-
2.3 Implémenter FAISSManager pour indexation
- Créer classe
FAISSManagerdansgeniusia2/core/embedding/faiss_manager.py - Implémenter méthode
add_embedding() - Implémenter méthode
search_similar() - Implémenter sauvegarde/chargement d'index
- Gérer metadata_store pour mappings
- Requirements: 4.8, 12.3, 12.6
- Créer classe
-
* 2.4 Écrire tests unitaires pour FAISSManager
- Tester ajout d'embeddings
- Tester recherche de similarité
- Tester sauvegarde/chargement
- Property 11: FAISS Index Consistency
- Validates: Requirements 4.8, 12.3, 12.6
-
2.5 Implémenter calculs de similarité
- Créer module
geniusia2/core/embedding/similarity.py - Implémenter similarité cosinus
- Implémenter distance euclidienne
- Implémenter normalisation L2
- Requirements: 4.7
- Créer module
-
* 2.6 Écrire tests de performance pour embeddings
- Benchmarker temps de fusion (cible: <100ms)
- Benchmarker temps de recherche FAISS (cible: <50ms)
- Property 19: Performance Constraint - State Embedding
- Validates: Requirements 15.1, 15.2
-
2.7 Implémenter StateEmbeddingBuilder
- Créer classe pour construire State Embeddings complets
- Intégrer FusionEngine
- Calculer embeddings pour image, texte, titre, UI
- Sauvegarder vecteurs en .npy
- Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6
-
* 2.8 Écrire tests d'intégration pour StateEmbeddingBuilder
- Tester construction complète depuis ScreenState
- Tester sauvegarde de vecteurs
- Vérifier normalisation finale
-
3. Checkpoint - Vérifier que tous les tests passent
- Ensure all tests pass, ask the user if questions arise.
-
4. Phase 3 : Détection UI Sémantique
- Intégrer VLM pour détection
- Classifier types et rôles
- Générer embeddings duaux
- Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 15.3
-
4.1 Créer UIDetector avec intégration VLM
- Créer classe
UIDetectordansgeniusia2/core/detection/ui_detector.py - Intégrer client VLM (Qwen 2.5-VL via Ollama)
- Implémenter détection de régions d'intérêt
- Requirements: 3.1
- Créer classe
-
4.2 Implémenter classification de types UI
- Ajouter méthode
classify_type()dans UIDetector - Supporter types: button, text_input, checkbox, radio, dropdown, tab, link, icon, table_row, menu_item
- Utiliser VLM pour classification
- Requirements: 3.2
- Ajouter méthode
-
4.3 Implémenter classification de rôles sémantiques
- Ajouter méthode
classify_role()dans UIDetector - Supporter rôles: primary_action, cancel, submit, form_input, search_field, etc.
- Utiliser contexte visuel et textuel
- Requirements: 3.3
- Ajouter méthode
-
4.4 Implémenter extraction de features visuelles
- Ajouter méthode
extract_visual_features() - Extraire couleur dominante, forme, taille
- Détecter présence d'icônes
- Requirements: 3.4
- Ajouter méthode
-
4.5 Implémenter génération d'embeddings duaux
- Intégrer OpenCLIP pour embeddings
- Générer embedding image (crop de l'élément)
- Générer embedding texte (label détecté)
- Sauvegarder embeddings en .npy
- Requirements: 3.5
-
4.6 Implémenter calcul de confiance de détection
- Combiner confiance VLM + confiance classification
- Filtrer éléments sous seuil (0.7)
- Requirements: 3.6
-
* 4.7 Écrire tests unitaires pour UIDetector
- Tester détection avec screenshots de test
- Tester classification de types et rôles
- Tester génération d'embeddings
- Property 13: UIElement Role Uniqueness Per Type
- Validates: Requirements 3.3
-
* 4.8 Écrire tests de performance pour détection UI
- Benchmarker temps de détection (cible: <200ms)
- Tester avec screenshots de différentes tailles
- Validates: Requirements 15.3
-
5. Phase 4 : Construction et Matching de Workflow Graphs ✅ COMPLÉTÉ (23 Nov 2024)
- Construire graphes depuis sessions
- Matcher ScreenStates contre nodes
- Détecter patterns répétés
- Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7
-
5.1 Implémenter GraphBuilder pour construction automatique
- Créer classe
GraphBuilderdansrpa_vision_v3/core/graph/graph_builder.py - Implémenter méthode
build_from_session() - Créer ScreenStates depuis RawSession
- Calculer State Embeddings pour tous les états
- Requirements: 11.1, 11.2, 11.3
- Créer classe
-
5.2 Implémenter détection de patterns répétés
- Ajouter méthode
_detect_patterns()dans GraphBuilder - Utiliser clustering sur embeddings (DBSCAN ou K-means)
- Identifier transitions récurrentes entre clusters
- Détecter séquences avec 3+ répétitions
- Requirements: 11.4, 11.5, 11.6, 11.7
- Ajouter méthode
-
* 5.3 Écrire tests pour détection de patterns
- Tester avec sessions simulées
- Vérifier détection de répétitions
- Property 16: Pattern Detection Minimum Repetitions
- Validates: Requirements 11.7
-
5.4 Implémenter construction de WorkflowNodes depuis patterns
- Ajouter méthode
_build_nodes()dans GraphBuilder - Créer ScreenTemplate depuis cluster d'états
- Calculer embedding prototype (moyenne des embeddings)
- Extraire contraintes de fenêtre et texte requis
- Identifier éléments UI requis
- Requirements: 5.1, 5.2, 5.3, 5.4, 5.5
- Ajouter méthode
-
* 5.5 Écrire tests pour construction de nodes
- Tester création de templates
- Tester calcul de prototypes
- Property 14: Embedding Prototype Sample Count
- Validates: Requirements 5.4
-
5.6 Implémenter construction de WorkflowEdges depuis transitions
- Ajouter méthode
_build_edges()dans GraphBuilder - Identifier actions entre états (depuis événements RawSession)
- Créer TargetSpec avec rôles sémantiques
- Définir pre-conditions et post-conditions
- Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
- Ajouter méthode
-
* 5.7 Écrire tests pour construction d'edges
- Tester identification d'actions
- Tester création de TargetSpec
- Vérifier contraintes
-
5.8 Implémenter NodeMatcher pour matching en temps réel
- Créer classe
NodeMatcherdansrpa_vision_v3/core/graph/node_matcher.py - Implémenter méthode
match() - Calculer State Embedding du ScreenState actuel
- Chercher dans FAISS les prototypes similaires
- Valider contraintes (fenêtre, texte, UI)
- Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7
- Créer classe
-
* 5.9 Écrire tests pour NodeMatcher
- Tester matching avec différents seuils
- Tester validation de contraintes
- Tester cas où aucun node ne match
- Property 7: WorkflowNode Matching Consistency
- Validates: Requirements 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
-
5.10 Implémenter méthode WorkflowNode.matches()
- Ajouter logique de matching dans WorkflowNode
- Vérifier contraintes de fenêtre
- Vérifier texte requis présent
- Vérifier éléments UI requis présents
- Vérifier similarité embedding > seuil
- Retourner (match: bool, confidence: float)
- Requirements: 5.1, 5.2, 5.3, 5.4, 5.5
-
* 5.11 Écrire tests d'intégration pour workflow complet
- Tester construction depuis session → matching
- Vérifier graphe construit correctement
- Vérifier matching fonctionne sur nouveaux états
-
6. Checkpoint - Vérifier que tous les tests passent
- Ensure all tests pass, ask the user if questions arise.
-
6. Phase 6 : Action Execution ✅ COMPLÉTÉ (23 Nov 2024)
- Exécuter automatiquement les workflows construits
- Résoudre targets par rôle sémantique
- Vérifier post-conditions
- Requirements: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 15.4
-
6.1 Créer ActionExecutor pour exécution d'actions
- Créer classe
ActionExecutordansrpa_vision_v3/core/execution/action_executor.py - Implémenter méthode
execute_edge() - Vérifier pre-conditions avant exécution
- Intégrer avec pyautogui pour automation
- Requirements: 10.5
- Créer classe
-
6.2 Créer TargetResolver pour résolution de targets
- Créer classe
TargetResolverdansrpa_vision_v3/core/execution/target_resolver.py - Implémenter méthode
resolve_target() - Supporter résolution by_role, by_text, by_position
- Gérer fallback strategies
- Requirements: 10.1
- Créer classe
-
6.3 Implémenter recherche d'éléments par rôle sémantique
- Ajouter méthode
_find_by_role()dans TargetResolver - Chercher UIElements par rôle dans ScreenState
- Appliquer selection_policy (first, last, by_similarity)
- Implémenter fallback par similarité visuelle
- Requirements: 10.1
- Ajouter méthode
-
6.4 Implémenter exécution d'actions mouse_click
- Ajouter méthode
_execute_click()dans ActionExecutor - Cliquer au centre de l'UIElement trouvé
- Appliquer click_offset si configuré
- Attendre wait_after_ms
- Logger action exécutée
- Requirements: 10.2
- Ajouter méthode
-
6.5 Implémenter exécution d'actions text_input
- Ajouter méthode
_execute_text_input()dans ActionExecutor - Taper texte dans l'UIElement trouvé
- Gérer caractères spéciaux
- Attendre wait_after_ms
- Logger action exécutée
- Requirements: 10.3
- Ajouter méthode
-
6.6 Implémenter exécution d'actions compound
- Ajouter méthode
_execute_compound()dans ActionExecutor - Exécuter séquence d'actions
- Gérer repeat policies (all, until_success)
- Logger chaque sous-action
- Requirements: 10.4
- Ajouter méthode
-
6.7 Implémenter vérification de post-conditions
- Ajouter méthode
_verify_postconditions()dans ActionExecutor - Attendre changement de fenêtre si requis
- Attendre nouveaux éléments UI si requis
- Vérifier transition vers node attendu
- Timeout si post-conditions non satisfaites
- Logger résultat de vérification
- Requirements: 10.6
- Ajouter méthode
-
* 6.8 Écrire tests unitaires pour ActionExecutor
- Tester recherche d'éléments par rôle
- Tester exécution de chaque type d'action
- Tester vérification de post-conditions
- Property 8: WorkflowEdge Pre-Condition Validation
- Property 15: Action Execution Timeout
- Validates: Requirements 10.5, 10.6
-
* 6.9 Écrire tests de performance pour exécution
- Benchmarker temps d'exécution (cible: <50ms)
- Validates: Requirements 15.4
-
6.10 Créer exemple d'exécution end-to-end
- Créer script
rpa_vision_v3/examples/test_phase6_simple.py - Tester exécution complète d'un workflow
- Valider avec workflow réel capturé
- Logger toutes les étapes
- Créer script
-
7. Checkpoint - Vérifier que tous les tests passent
- Ensure all tests pass, ask the user if questions arise.
-
8. Phase 7 : Learning System ✅ COMPLÉTÉ (23 Nov 2024)
- Gérer états d'apprentissage
- Implémenter transitions automatiques
- Système de feedback
- Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
-
8.1 Implémenter LearningManager pour états d'apprentissage
- Créer classe
LearningManagerdansrpa_vision_v3/core/learning/learning_manager.py - Gérer dictionnaire de workflows
- Implémenter méthode
update_workflow_stats() - Requirements: 8.5
- Créer classe
-
8.2 Implémenter transitions d'états d'apprentissage
- Ajouter méthode
_check_state_transition()dans LearningManager - Implémenter
_can_transition_to_coaching()(5 observations, similarité >0.90) - Implémenter
_can_transition_to_auto_candidate()(10 assists, succès >0.90) - Implémenter
_can_transition_to_auto_confirmed()(20 exécutions, succès >0.95) - Logger toutes les transitions avec raison
- Requirements: 8.1, 8.2, 8.3, 8.4, 8.5
- Ajouter méthode
-
8.3 Implémenter rollback automatique
- Ajouter méthode
_should_rollback()dans LearningManager - Détecter confiance < 0.90 en mode AUTO_CONFIRMÉ
- Rétrograder vers COACHING
- Logger le rollback
- Requirements: 8.6
- Ajouter méthode
-
8.4 Implémenter FeedbackProcessor
- Créer classe
FeedbackProcessordansrpa_vision_v3/core/learning/feedback_processor.py - Traiter feedback utilisateur (CORRECT, INCORRECT, PARTIAL, SKIP)
- Générer suggestions d'amélioration
- Calculer statistiques et accuracy
- Requirements: 8.5
- Créer classe
-
* 8.5 Écrire tests pour LearningManager
- Tester transitions d'états
- Tester calcul de métriques
- Tester rollback
- Property 9: Learning State Monotonic Progression
- Property 10: Learning State Rollback Condition
- Validates: Requirements 8.1, 8.2, 8.3, 8.4, 8.6
-
* 8.6 Écrire tests d'intégration pour apprentissage complet
- Simuler 5 observations → COACHING
- Simuler 10 assists → AUTO_CANDIDATE
- Simuler 20 exécutions → AUTO_CONFIRMÉ
- Simuler baisse de confiance → rollback
-
9. Phase 8 : Training System - Apprentissage Offline
- Collecter données d'entraînement
- Entraîner modèles offline
- Valider avant production
- Requirements: Custom (new phase)
-
9.1 Implémenter TrainingDataCollector
- Créer classe
TrainingDataCollectordansrpa_vision_v3/core/training/training_data_collector.py - Enregistrer sessions, actions, screenshots, embeddings
- Gérer corrections utilisateur
- Export en JSON structuré
- Créer classe
-
9.2 Implémenter OfflineTrainer
- Créer classe
OfflineTrainerdansrpa_vision_v3/core/training/offline_trainer.py - Entraîner prototypes de workflows
- Optimiser seuils de similarité
- Validation croisée
- Export modèle entraîné
- Créer classe
-
9.3 Implémenter ModelValidator
- Créer classe
ModelValidatordansrpa_vision_v3/core/training/model_validator.py - Valider modèle avant production
- Calculer métriques (accuracy, precision, recall, F1)
- Comparaison avec baseline
- Recommandations de déploiement
- Créer classe
-
9.4 Créer guide d'utilisation Training System
- Créer
rpa_vision_v3/TRAINING_GUIDE.md - Documenter workflow en 4 phases
- Exemples de code complets
- Bonnes pratiques
- Troubleshooting
- Créer
-
9.5 Créer tests Training System
- Créer
rpa_vision_v3/examples/test_training_system.py - Tester TrainingDataCollector
- Tester OfflineTrainer
- Tester ModelValidator
- Tester workflow complet
- Créer
-
10. Checkpoint - Vérifier que tous les tests passent
- Ensure all tests pass, ask the user if questions arise.
- Créer classe
ActionExecutordansgeniusia2/core/graph/action_executor.py - Implémenter méthode
execute_edge() - Vérifier pre-conditions avant exécution
- Requirements: 10.5
-
7.2 Implémenter recherche d'éléments par rôle sémantique
- Ajouter méthode
_find_target_element()dans ActionExecutor - Chercher UIElements par rôle dans ScreenState
- Appliquer selection_policy (first, last, by_similarity)
- Implémenter fallback strategies
- Requirements: 10.1
- Ajouter méthode
-
7.3 Implémenter exécution d'actions mouse_click
- Ajouter méthode
_execute_click()dans ActionExecutor - Cliquer au centre de l'UIElement trouvé
- Appliquer click_offset si configuré
- Attendre wait_after_ms
- Requirements: 10.2
- Ajouter méthode
-
7.4 Implémenter exécution d'actions text_input
- Ajouter méthode
_execute_text_input()dans ActionExecutor - Taper texte dans l'UIElement trouvé
- Gérer caractères spéciaux
- Requirements: 10.3
- Ajouter méthode
-
7.5 Implémenter exécution d'actions compound
- Ajouter méthode
_execute_compound()dans ActionExecutor - Exécuter séquence d'actions
- Gérer repeat policies (all, until_success)
- Requirements: 10.4
- Ajouter méthode
-
7.6 Implémenter vérification de post-conditions
- Ajouter méthode
_wait_for_postconditions()dans ActionExecutor - Attendre changement de fenêtre si requis
- Attendre nouveaux éléments UI si requis
- Vérifier transition vers node attendu
- Timeout si post-conditions non satisfaites
- Requirements: 10.6
- Ajouter méthode
-
* 7.7 Écrire tests unitaires pour ActionExecutor
- Tester recherche d'éléments par rôle
- Tester exécution de chaque type d'action
- Tester vérification de post-conditions
- Property 8: WorkflowEdge Pre-Condition Validation
- Property 15: Action Execution Timeout
- Validates: Requirements 10.5, 10.6
-
* 7.8 Écrire tests de performance pour exécution
- Benchmarker temps d'exécution (cible: <50ms)
- Validates: Requirements 15.4
-
7.9 Implémenter LearningManager pour états d'apprentissage
- Créer classe
LearningManagerdansgeniusia2/core/graph/learning_manager.py - Gérer dictionnaire de workflows
- Implémenter méthode
update_workflow_stats() - Requirements: 8.5
- Créer classe
-
8.2 Implémenter transitions d'états d'apprentissage
- Ajouter méthode
_check_state_transition()dans LearningManager - Implémenter
_can_transition_to_coaching()(5 observations, similarité >0.90) - Implémenter
_can_transition_to_auto_candidate()(10 assists, succès >0.90) - Implémenter
_can_transition_to_auto_confirmed()(20 exécutions, succès >0.95) - Logger toutes les transitions avec raison
- Requirements: 8.1, 8.2, 8.3, 8.4, 8.5
- Ajouter méthode
-
8.3 Implémenter rollback automatique
- Ajouter méthode
_should_rollback()dans LearningManager - Détecter confiance < 0.90 en mode AUTO_CONFIRMÉ
- Rétrograder vers COACHING
- Logger le rollback
- Requirements: 8.6
- Ajouter méthode
-
* 8.4 Écrire tests pour LearningManager
- Tester transitions d'états
- Tester calcul de métriques
- Tester rollback
- Property 9: Learning State Monotonic Progression
- Property 10: Learning State Rollback Condition
- Validates: Requirements 8.1, 8.2, 8.3, 8.4, 8.6
-
* 8.5 Écrire tests d'intégration pour apprentissage complet
- Simuler 5 observations → COACHING
- Simuler 10 assists → AUTO_CANDIDATE
- Simuler 20 exécutions → AUTO_CONFIRMÉ
- Simuler baisse de confiance → rollback
-
9. Checkpoint - Vérifier que tous les tests passent
- Ensure all tests pass, ask the user if questions arise.
-
10. Phase 8 : Gestion des Erreurs et Robustesse ✅ COMPLÉTÉ (24 Nov 2024)
- Gérer échecs de matching
- Gérer échecs de détection
- Gérer violations de post-conditions
- Détecter changements d'UI
- Requirements: 14.1, 14.2, 14.3, 14.4, 14.5, 14.6
-
9.1 Implémenter gestion d'échecs de matching ✅ COMPLÉTÉ
- Créé ErrorHandler centralisé dans core/execution/error_handler.py
- Logging détaillé avec screenshots et embeddings
- Calcul similarité avec tous les nodes candidats
- Génération suggestions automatiques (CREATE_NEW_NODE, UPDATE_NODE, ADJUST_THRESHOLD)
- Tracking des edges problématiques (>3 échecs)
- Requirements: 14.1
-
9.2 Implémenter stratégies de fallback pour détection UI
- Ajouter fallback par visual similarity dans ActionExecutor
- Ajouter fallback par position approximative
- Logger tentatives de fallback
- Requirements: 14.2
-
9.3 Implémenter gestion de violations de post-conditions
- Logger violations avec détails (attendu vs réel)
- Attendre timeout configuré
- Marquer exécution comme échec si timeout
- Incrémenter compteur d'échecs pour edge
- Marquer edge comme problématique si échecs répétés (>3)
- Requirements: 14.3
-
9.4 Implémenter détection de changements d'UI
- Ajouter méthode
detect_ui_change()dans NodeMatcher - Comparer similarité actuelle vs prototype
- Détecter changement si similarité < 0.70
- Capturer screenshot pour analyse
- Mettre en pause exécution automatique
- Notifier utilisateur
- Requirements: 14.4
- Ajouter méthode
-
9.5 Implémenter système de rollback
- Ajouter méthode
rollback()dans ActionExecutor - Stocker historique des 3 dernières actions
- Implémenter inverse pour chaque type d'action
- Logger tentatives de rollback
- Requirements: 14.5
- Ajouter méthode
-
* 9.6 Écrire tests pour gestion d'erreurs
- Tester échec de matching
- Tester échec de détection UI
- Tester violation de post-conditions
- Tester détection de changement UI
- Tester rollback
-
10. Phase 7 : Persistence et Storage
- Implémenter sauvegarde structurée
- Implémenter chargement avec validation
- Organiser fichiers par date et workflow
- Requirements: 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7
-
10.1 Implémenter StorageManager pour gestion de fichiers
- Créer classe
StorageManagerdansgeniusia2/core/persistence/storage_manager.py - Implémenter méthode
save_raw_session() - Implémenter méthode
save_screen_state() - Implémenter méthode
save_workflow() - Organiser par date (YYYY-MM-DD)
- Requirements: 12.1, 12.2, 12.4, 12.7
- Créer classe
-
10.2 Implémenter sauvegarde d'embeddings
- Ajouter méthode
save_embedding()dans StorageManager - Sauvegarder vecteurs en .npy
- Ajouter à FAISS index
- Sauvegarder métadonnées
- Requirements: 12.2, 12.3
- Ajouter méthode
-
10.3 Implémenter chargement avec validation
- Ajouter méthode
load_workflow()dans StorageManager - Valider schéma JSON
- Charger FAISS index
- Charger métadonnées
- Reconstruire objets Python
- Requirements: 12.5, 12.6
- Ajouter méthode
-
* 10.4 Écrire tests pour persistence
- Tester sauvegarde/chargement de tous les types
- Tester organisation de fichiers
- Tester validation de schémas
-
[-] 11. Phase 8 : Optimisation et Performance
- Optimiser embeddings (batching, caching)
- Optimiser FAISS (IVF index)
- Optimiser détection UI (ROI)
- Mesurer et valider performances
- Requirements: 15.1, 15.2, 15.3, 15.4, 15.5
-
11.1 Implémenter batch processing pour embeddings
- Ajouter méthode
compute_embeddings_batch()dans FusionEngine - Traiter multiples images en parallèle
- Optimiser utilisation GPU si disponible
- Ajouter méthode
-
11.2 Implémenter caching d'embeddings
- Ajouter cache LRU pour prototypes
- Mettre en cache derniers State Embeddings
- Invalider cache intelligemment
-
11.3 Optimiser FAISS avec index IVF
- Migrer vers index IVF pour >10k embeddings
- Optimiser périodiquement l'index
- Utiliser GPU si disponible
-
11.4 Optimiser détection UI avec ROI
- Limiter résolution des screenshots (max 1920x1080)
- Détecter régions d'intérêt avant traitement complet
- Mettre en cache résultats pour frames similaires
-
* 11.5 Écrire tests de performance complets
- Benchmarker toutes les opérations
- Valider contraintes de temps
- Property 19: Performance Constraint - State Embedding
- Property 20: Performance Constraint - End-to-End
- Validates: Requirements 15.1, 15.2, 15.3, 15.4, 15.5
-
12. Checkpoint Final - Vérifier que tous les tests passent
- Ensure all tests pass, ask the user if questions arise.
-
13. Phase 9 : Tests End-to-End et Documentation
- Tests de bout en bout complets
- Documentation utilisateur
- Guide de déploiement
-
13.1 Créer tests end-to-end pour workflow complet
- Tester capture → construction → matching → exécution
- Tester apprentissage progressif complet
- Tester robustesse aux changements UI
- Tester multi-workflows
-
* 13.2 Écrire tests de validation de qualité
- Tester qualité des embeddings
- Property 13: UIElement Role Uniqueness Per Type
- Validates: Requirements 13.1, 13.2, 13.3, 13.4, 13.5
-
13.3 Créer documentation utilisateur
- Guide de démarrage rapide
- Guide d'utilisation des 5 couches
- Exemples de workflows
- FAQ et troubleshooting
-
13.4 Créer guide de déploiement
- Instructions d'installation
- Configuration requise
- Configuration des modèles
- Optimisation de production