- 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>
6.5 KiB
Prochaines Étapes - RPA Vision V3
Date: 22 Novembre 2024
Phase Actuelle: Phase 3 ✅ Complète
Prochaine Phase: Phase 4 - Construction de Workflow Graphs
État Actuel
✅ Phases Complétées
Phase 1 : Fondations - Structures de Données
- Modèles de données (RawSession, ScreenState, UIElement, StateEmbedding, WorkflowGraph)
- Sérialisation JSON
- Tests unitaires
Phase 2 : Système d'Embeddings et FAISS
- FusionEngine (fusion multi-modale)
- FAISSManager (indexation et recherche)
- Calculs de similarité
- StateEmbeddingBuilder
Phase 3 : Détection UI Sémantique ✅ VIENT D'ÊTRE COMPLÉTÉE
- UIDetector hybride (OpenCV + VLM)
- Classification de types et rôles
- Extraction de features visuelles
- Système opérationnel et testé
🎯 Prochaine Étape : Phase 4
Phase 4 : Construction et Matching de Workflow Graphs
Objectif: Construire automatiquement des graphes de workflows depuis les sessions enregistrées et matcher les états en temps réel.
Tâches Principales
5.1 GraphBuilder - Construction Automatique
Priorité: HAUTE
Durée estimée: 2-3 jours
Créer le système qui construit automatiquement des workflow graphs depuis les RawSessions.
Sous-tâches:
- Créer classe
GraphBuilder - Implémenter
build_from_session() - Créer ScreenStates depuis RawSession
- Calculer State Embeddings pour tous les états
Fichier: rpa_vision_v3/core/graph/graph_builder.py
5.2 Pattern Detection - Détection de Répétitions
Priorité: HAUTE
Durée estimée: 2-3 jours
Détecter automatiquement les patterns répétés dans les sessions.
Sous-tâches:
- Implémenter clustering sur embeddings (DBSCAN ou K-means)
- Identifier transitions récurrentes
- Détecter séquences avec 3+ répétitions
Algorithme suggéré:
# 1. Calculer embeddings de tous les états
# 2. Clustering (DBSCAN avec distance cosinus)
# 3. Identifier transitions fréquentes entre clusters
# 4. Extraire séquences répétées
5.3 Node Construction - Création de Templates
Priorité: HAUTE
Durée estimée: 2 jours
Créer des WorkflowNodes depuis les patterns détectés.
Sous-tâches:
- Créer ScreenTemplate depuis cluster d'états
- Calculer embedding prototype (moyenne)
- Extraire contraintes (fenêtre, texte, UI requis)
5.4 Edge Construction - Transitions
Priorité: HAUTE
Durée estimée: 2 jours
Créer des WorkflowEdges depuis les transitions observées.
Sous-tâches:
- Identifier actions entre états
- Créer TargetSpec avec rôles sémantiques
- Définir pre/post-conditions
5.5 NodeMatcher - Matching en Temps Réel
Priorité: HAUTE
Durée estimée: 2-3 jours
Matcher l'état actuel contre les nodes du workflow.
Sous-tâches:
- Créer classe
NodeMatcher - Calculer State Embedding de l'état actuel
- Chercher dans FAISS les prototypes similaires
- Valider contraintes (fenêtre, texte, UI)
Algorithme:
# 1. Capturer état actuel
# 2. Calculer embedding
# 3. Recherche FAISS (top-k similaires)
# 4. Valider contraintes pour chaque candidat
# 5. Retourner meilleur match avec confiance
Ordre d'Implémentation Recommandé
1. GraphBuilder (5.1)
↓
2. Pattern Detection (5.2)
↓
3. Node Construction (5.3)
↓
4. Edge Construction (5.4)
↓
5. NodeMatcher (5.5)
↓
6. Tests d'intégration
Améliorations Optionnelles Phase 3
Avant de passer à la Phase 4, tu peux optionnellement améliorer la Phase 3 :
Option A : Mode Asynchrone (Recommandé)
Impact: Gain de vitesse 3-5x
Effort: 1-2 jours
Priorité: MOYENNE
Implémenter le traitement asynchrone des classifications VLM.
Bénéfices:
- Temps de détection : 40s → 8-12s
- Meilleure utilisation des ressources
- Expérience utilisateur améliorée
Fichiers à modifier:
core/detection/ui_detector.py- Ajouter méthode asynccore/detection/ollama_client.py- Ajouter client async
Option B : Détection Spécialisée Checkboxes
Impact: Meilleure détection petits éléments
Effort: 1 jour
Priorité: BASSE
Améliorer la détection des checkboxes et radio buttons.
Option C : Cache Intelligent
Impact: Vitesse sur frames similaires
Effort: 1 jour
Priorité: BASSE
Cacher les classifications pour éléments similaires.
Recommandation
🎯 Recommandation Principale
Passer directement à la Phase 4 pour compléter le système de bout en bout.
Raisons:
- Phase 3 est fonctionnelle et testée
- Phase 4 est critique pour le système complet
- Les optimisations Phase 3 peuvent attendre
- Mieux vaut avoir un système complet qu'un système partiel optimisé
📋 Plan d'Action
Semaine 1-2:
- Implémenter GraphBuilder (5.1)
- Implémenter Pattern Detection (5.2)
- Tests unitaires
Semaine 3:
- Implémenter Node Construction (5.3)
- Implémenter Edge Construction (5.4)
- Tests unitaires
Semaine 4:
- Implémenter NodeMatcher (5.5)
- Tests d'intégration
- Documentation
Après Phase 4:
- Revenir aux optimisations Phase 3 si nécessaire
- Implémenter Phase 5 (Exécution d'Actions)
Dépendances Techniques
Pour Phase 4, tu auras besoin de:
✅ Déjà disponible:
- UIDetector (Phase 3)
- StateEmbeddingBuilder (Phase 2)
- FAISSManager (Phase 2)
- Modèles de données (Phase 1)
❓ À vérifier:
- Bibliothèque de clustering (scikit-learn)
- Algorithme de détection de séquences
Installation Requise
# Clustering
pip install scikit-learn
# Optionnel : Visualisation
pip install matplotlib seaborn
Questions à Considérer
Avant de commencer la Phase 4 :
-
Algorithme de clustering: DBSCAN ou K-means ?
- DBSCAN : Meilleur pour patterns de taille variable
- K-means : Plus simple, nécessite nombre de clusters
-
Seuil de similarité: Quelle valeur pour matcher les nodes ?
- Recommandé : 0.85-0.90
- À ajuster selon les tests
-
Nombre de répétitions: Combien pour détecter un pattern ?
- Recommandé : 3+ répétitions
- Configurable
-
Stockage des workflows: Format et organisation ?
- JSON par workflow
- Index FAISS séparé par workflow
Conclusion
✅ Phase 3 complète et opérationnelle
🎯 Prochaine étape : Phase 4 - Construction de Workflow Graphs
⏱️ Durée estimée Phase 4 : 3-4 semaines
🚀 Objectif : Système RPA Vision V3 complet
Prêt à commencer la Phase 4 ?
Dis-moi quand tu veux démarrer et je t'aiderai à implémenter le GraphBuilder !