Files
rpa_vision_v3/docs/specs/ROADMAP.md
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- 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>
2026-01-29 11:23:51 +01:00

273 lines
7.0 KiB
Markdown

# RPA Vision V3 - Roadmap Mise à Jour
**Date:** 22 Novembre 2024
**Status:** Phase 3 Complétée, Phase 2 à finaliser
---
## 📊 État Actuel
### ✅ Phase 1 : Modèles de Base - COMPLÉTÉ
- [x] RawSession, ScreenState, UIElement, StateEmbedding, WorkflowGraph
- [x] Sérialisation/désérialisation JSON
- [x] Tests unitaires de base
### ⏳ Phase 2 : Système d'Embeddings - À COMPLÉTER
**Status:** Structures créées, embedders réels manquants
#### Fait
- [x] FusionEngine (fusion pondérée)
- [x] FAISSManager (indexation)
- [x] Similarity (calculs)
- [x] StateEmbeddingBuilder (structure)
#### À Faire 🎯
- [ ] **2.8 Implémenter vrais embedders CLIP** ← PROCHAINE TÂCHE
- Copier/adapter depuis geniusia2/core/embedders/
- Créer `rpa_vision_v3/core/embedding/clip_embedder.py`
- Charger OpenCLIP
- Implémenter `embed_image()` et `embed_text()`
- [ ] **2.9 Intégrer CLIP dans StateEmbeddingBuilder**
- Remplacer vecteurs aléatoires par vrais embeddings
- Configurer embedders
- Tester avec screenshots réels
- [ ] **2.10 Tests d'intégration**
- Valider pipeline complet
- Benchmarks de performance
### ✅ Phase 3 : UI Detection avec VLM - COMPLÉTÉ (22 Nov 2024)
- [x] OllamaClient (qwen3-vl:8b)
- [x] UIDetector hybride (OpenCV + VLM)
- [x] Tests complets sur screenshots réels
- [x] Documentation complète
- [x] Précision: 88%, Vitesse: 0.8s/élément
### 🚀 Phase 3.5 : Optimisation Asynchrone - PROCHAINE
**Objectif:** Gain de vitesse 3-5x (40s → 8-12s pour 50 éléments)
#### À Faire
- [ ] **3.5.1 AsyncOllamaClient**
- Refactoriser avec asyncio/aiohttp
- Batch processing (5-10 éléments parallèles)
- Gestion concurrence avec semaphore
- [ ] **3.5.2 AsyncUIDetector**
- Intégrer AsyncOllamaClient
- Traitement parallèle des régions
- Tests de performance
- [ ] **3.5.3 Cache Intelligent**
- Cache basé sur hash visuel
- Détection de similarité
- Hit rate > 30%
- [ ] **3.5.4 Monitoring**
- Métriques temps réel
- Resource management
- Dashboard simple
### ⏳ Phase 4 : Construction de Workflow Graphs - EN ATTENTE
**Dépend de:** Phase 2 complétée
#### À Faire
- [ ] **4.1 GraphBuilder**
- Construction depuis RawSession
- Détection de patterns
- Clustering d'états
- [ ] **4.2 NodeMatcher**
- Matching par similarité
- Validation de contraintes
- Recherche FAISS
- [ ] **4.3 Tests d'intégration**
- Pipeline complet
- Validation sur données réelles
### ⏳ Phase 5-9 : Exécution, Apprentissage, etc. - EN ATTENTE
---
## 🎯 Plan d'Action Recommandé
### Option A : Finir Phase 2 d'abord (Recommandé)
```
1. Implémenter CLIP embedders (2-3h)
2. Intégrer dans StateEmbeddingBuilder (1h)
3. Tester avec données réelles (1h)
4. Puis Phase 3.5 (Async) (4-6h)
5. Puis Phase 4 (Workflow Graphs) (8-12h)
```
**Avantages:**
- Système complet et cohérent
- Embeddings réels pour Phase 4
- Pas de refactoring plus tard
### Option B : Async d'abord, Phase 2 après
```
1. Phase 3.5 (Async) (4-6h)
2. Phase 2 (CLIP) (4h)
3. Phase 4 (Workflow Graphs) (8-12h)
```
**Avantages:**
- Gain de vitesse immédiat
- Phase 3 optimisée rapidement
---
## 📋 Tâches Détaillées Phase 2
### Task 2.8 : Implémenter CLIP Embedders
**Priorité:** Haute
**Estimation:** 2-3h
**Dépendances:** Aucune
**Fichiers à créer:**
- `rpa_vision_v3/core/embedding/clip_embedder.py`
- `rpa_vision_v3/core/embedding/base_embedder.py` (interface)
**Étapes:**
1. Copier `geniusia2/core/embedders/base.py``base_embedder.py`
2. Copier `geniusia2/core/embedders/clip_embedder.py``clip_embedder.py`
3. Adapter imports et chemins
4. Tester chargement du modèle
5. Tester génération d'embeddings
**Critères d'acceptation:**
- [ ] Modèle OpenCLIP charge correctement
- [ ] `embed_image()` génère vecteur 512D normalisé
- [ ] `embed_text()` génère vecteur 512D normalisé
- [ ] Tests unitaires passent
### Task 2.9 : Intégrer CLIP dans StateEmbeddingBuilder
**Priorité:** Haute
**Estimation:** 1-2h
**Dépendances:** 2.8
**Fichiers à modifier:**
- `rpa_vision_v3/core/embedding/state_embedding_builder.py`
**Étapes:**
1. Importer CLIPEmbedder
2. Initialiser dans `__init__` avec embedders dict
3. Remplacer `np.random.randn()` par vrais embeddings
4. Tester avec screenshot réel
5. Valider dimensions et normalisation
**Critères d'acceptation:**
- [ ] Vecteurs aléatoires remplacés par CLIP
- [ ] Embeddings image/texte/titre fonctionnels
- [ ] Vecteur fusionné normalisé (L2 norm = 1)
- [ ] Tests d'intégration passent
### Task 2.10 : Tests et Validation
**Priorité:** Moyenne
**Estimation:** 1h
**Dépendances:** 2.9
**Fichiers à créer:**
- `rpa_vision_v3/tests/integration/test_embedding_pipeline.py`
- `rpa_vision_v3/examples/test_embeddings.py`
**Critères d'acceptation:**
- [ ] Pipeline complet testé (screenshot → embedding)
- [ ] Similarité entre états similaires > 0.8
- [ ] Similarité entre états différents < 0.5
- [ ] Performance < 200ms par état
---
## 📋 Tâches Détaillées Phase 3.5
### Task 3.5.1 : AsyncOllamaClient
**Priorité:** Haute
**Estimation:** 2h
**Dépendances:** Aucune
**Fichiers à créer:**
- `rpa_vision_v3/core/detection/async_ollama_client.py`
**Critères d'acceptation:**
- [ ] Client async avec aiohttp
- [ ] Batch processing 5-10 éléments
- [ ] Semaphore pour limitation concurrence
- [ ] Gestion erreurs par élément
- [ ] Tests de performance
### Task 3.5.2 : AsyncUIDetector
**Priorité:** Haute
**Estimation:** 1.5h
**Dépendances:** 3.5.1
**Fichiers à créer:**
- `rpa_vision_v3/core/detection/async_ui_detector.py`
**Critères d'acceptation:**
- [ ] Détection async complète
- [ ] Gain de vitesse ≥ 3x mesuré
- [ ] Précision maintenue ≥ 85%
- [ ] Tests d'intégration
### Task 3.5.3 : Cache Intelligent
**Priorité:** Moyenne
**Estimation:** 2h
**Dépendances:** 3.5.2
**Fichiers à créer:**
- `rpa_vision_v3/core/detection/region_cache.py`
**Critères d'acceptation:**
- [ ] Cache basé sur hash visuel
- [ ] Hit rate ≥ 30%
- [ ] TTL configurable
- [ ] Tests unitaires
### Task 3.5.4 : Monitoring
**Priorité:** Basse
**Estimation:** 2h
**Dépendances:** 3.5.2
**Fichiers à créer:**
- `rpa_vision_v3/core/detection/performance_monitor.py`
- `rpa_vision_v3/core/detection/resource_manager.py`
**Critères d'acceptation:**
- [ ] Métriques temps réel
- [ ] Adaptation dynamique batch size
- [ ] Logs structurés
- [ ] Dashboard optionnel
---
## 🎯 Recommandation Finale
**Je recommande Option A : Finir Phase 2 d'abord**
**Raison:**
1. Phase 2 est presque finie (juste embedders manquants)
2. Phase 4 a besoin d'embeddings réels
3. Évite refactoring plus tard
4. Système cohérent et complet
**Plan:**
```
Jour 1 : Phase 2 (4h)
- Matin : Implémenter CLIP (2-3h)
- Après-midi : Intégrer + tester (1-2h)
Jour 2 : Phase 3.5 (6h)
- Matin : AsyncOllamaClient + AsyncUIDetector (3-4h)
- Après-midi : Cache + Monitoring (2-3h)
Jour 3+ : Phase 4 (8-12h)
- GraphBuilder
- NodeMatcher
- Tests
```
**Qu'en pensez-vous ?** 🤔