# RPA Vision V2 Système d'automatisation robotique à apprentissage progressif utilisant la vision par ordinateur et l'IA. ## Vue d'Ensemble RPA Vision V2 observe, apprend et automatise les interactions avec les interfaces utilisateur à travers trois modes opérationnels: - **👀 Shadow**: Observation uniquement, apprentissage des actions utilisateur - **🤝 Assisté**: Suggestions avec validation utilisateur requise - **🤖 Autopilot**: Exécution autonome après atteinte des seuils de confiance ## Architecture ``` geniusia2/ ├── core/ # Logique centrale (orchestration, apprentissage) │ ├── config.py # Configuration globale │ └── utils/ # Utilitaires (image, vision, input) ├── gui/ # Interface PyQt5 │ └── dialogs/ # Dialogues de correction et tableau de bord ├── data/ # Données persistantes │ ├── user_profiles/ # Profils d'apprentissage (JSON) │ ├── logs/ # Logs chiffrés AES-256 │ └── faiss_index/ # Index de mémoire visuelle └── models/ # Modèles IA ├── openclip/ # Embeddings visuels ├── owl_v2/ # Détection UI └── qwen2.5_vl/ # Raisonnement visuel ``` ## Installation ### Prérequis - **Système**: Linux (Ubuntu 20.04+), macOS 11+, ou Windows 10+ - **Python**: 3.9 ou supérieur - **RAM**: 16GB minimum (32GB recommandé) - **GPU**: NVIDIA avec 8GB+ VRAM (optionnel mais recommandé pour meilleures performances) - **Espace disque**: 20GB minimum ### Installation Automatique (Recommandé) Le script d'installation configure automatiquement tout l'environnement: ```bash # Rendre le script exécutable chmod +x setup.sh # Lancer l'installation ./setup.sh ``` Le script va: 1. ✅ Créer un environnement virtuel Python 2. ✅ Installer toutes les dépendances Python 3. ✅ Installer Ollama (si nécessaire) 4. ✅ Télécharger le modèle Qwen 2.5-VL 5. ✅ Créer les répertoires de données 6. ✅ Générer les clés de chiffrement 7. ✅ Configurer les modèles de vision ### Installation Manuelle Si vous préférez installer manuellement: 1. **Créer un environnement virtuel**: ```bash python3 -m venv venv source venv/bin/activate # Linux/macOS # ou venv\Scripts\activate # Windows ``` 2. **Installer les dépendances Python**: ```bash pip install --upgrade pip pip install -r requirements.txt ``` 3. **Installer Ollama**: ```bash # Linux/macOS curl -fsSL https://ollama.com/install.sh | sh # Windows: Télécharger depuis https://ollama.com/download ``` 4. **Télécharger le modèle Qwen 2.5-VL**: ```bash ollama pull qwen2.5-vl:7b ``` 5. **Créer les répertoires**: ```bash mkdir -p data/{user_profiles,logs,faiss_index,whitelist} mkdir -p models ``` 6. **Générer les clés de chiffrement**: ```bash python3 -c "from cryptography.fernet import Fernet; import os; key = Fernet.generate_key(); os.makedirs('data', exist_ok=True); open('data/.encryption_key', 'wb').write(key)" ``` ## Configuration La configuration globale se trouve dans `core/config.py`: - **Modèles**: Choix des modèles de vision et LLM - **Seuils**: Critères de transition entre modes - **Performance**: Latence maximale, taux de correction - **Sécurité**: Chiffrement, liste blanche, rétention des logs ## Utilisation ### Démarrage 1. **Activer l'environnement virtuel** (si pas déjà fait): ```bash source venv/bin/activate # Linux/macOS # ou venv\Scripts\activate # Windows ``` 2. **Lancer l'application**: ```bash python3 main.py ``` ### Interface Graphique L'interface minimale affiche: - **Indicateur de mode**: 👀 Shadow / 🤝 Assisté / 🤖 Autopilot - **Boutons de contrôle**: Start, Stop, Pause - **Statut**: État actuel du système - **Métriques**: Confiance, observations, concordance ### Raccourcis Clavier | Raccourci | Action | |-----------|--------| | **Ctrl+Pause** | Arrêt d'urgence immédiat | | **Entrée** | Valider une suggestion (mode Assisté) | | **Échap** | Rejeter une suggestion (mode Assisté) | | **Alt+C** | Ouvrir le dialogue de correction | | **Ctrl+D** | Ouvrir le tableau de bord des métriques | ### Workflow Typique 1. **Mode Shadow (👀)**: - Lancez l'application - Effectuez vos tâches normalement - Le système observe et apprend silencieusement - Après ≥20 observations avec ≥95% de concordance, transition automatique proposée 2. **Mode Assisté (🤝)**: - Le système suggère des actions avec surlignage visuel - Validez avec **Entrée** ou rejetez avec **Échap** - Corrigez avec **Alt+C** si nécessaire - Après ≥20 validations avec ≥95% de concordance, passage en Autopilot proposé 3. **Mode Autopilot (🤖)**: - Exécution automatique des tâches apprises - Notifications post-action (✔️ succès / ❌ échec) - Retour automatique en Assisté si confiance <90% - Rollback possible des 3 dernières actions ### Liste Blanche Pour des raisons de sécurité, seules les applications autorisées peuvent être automatisées: 1. **Ajouter une application**: - Cliquez sur "Gérer Liste Blanche" dans l'interface - Entrez le titre de la fenêtre (ex: "Firefox", "LibreOffice") - Confirmez l'ajout 2. **Retirer une application**: - Ouvrez le gestionnaire de liste blanche - Sélectionnez l'application - Cliquez sur "Retirer" La liste blanche est sauvegardée dans `data/whitelist/whitelist.json` ## Sécurité RPA Vision V2 intègre plusieurs mécanismes de sécurité: ### Chiffrement - **Logs chiffrés**: Tous les logs sont chiffrés avec AES-256-GCM - **Clés sécurisées**: Clés de chiffrement stockées dans `data/.encryption_key` - **Données sensibles**: Aucune donnée sensible en clair sur disque ### Contrôle d'Accès - **Liste blanche**: Seules les applications autorisées peuvent être automatisées - **Validation admin**: Ajout à la liste blanche nécessite confirmation - **Audit trail**: Toutes les modifications de liste blanche sont journalisées ### Mécanismes de Sécurité - **Arrêt d'urgence**: Ctrl+Pause arrête immédiatement toute exécution - **Rollback**: Annulation des 3 dernières actions en cas d'erreur - **Failsafe**: Déplacer la souris dans le coin supérieur gauche arrête PyAutoGUI - **Détection de dérive**: Alerte si l'UI change de manière inattendue ### Confidentialité - **Données locales**: Toutes les données restent sur votre machine - **Pas de télémétrie**: Aucune donnée envoyée à des serveurs externes - **Rétention configurable**: Durée de conservation des logs paramétrable ### Bonnes Pratiques 1. Ne jamais ajouter d'applications sensibles (banque, admin système) à la liste blanche 2. Tester en mode Shadow avant de passer en Autopilot 3. Surveiller régulièrement le tableau de bord des métriques 4. Sauvegarder régulièrement `data/` pour préserver l'apprentissage ## Dépannage ### Problèmes Courants **1. Erreur "Ollama not found"** ```bash # Vérifier si Ollama est installé ollama --version # Si non installé, installer: curl -fsSL https://ollama.com/install.sh | sh ``` **2. Erreur "Model not found"** ```bash # Télécharger le modèle ollama pull qwen2.5-vl:7b # Vérifier les modèles installés ollama list ``` **3. Erreur "Permission denied" sur setup.sh** ```bash # Rendre le script exécutable chmod +x setup.sh ``` **4. Latence élevée (>400ms)** - Vérifier que le GPU est utilisé (si disponible) - Réduire la résolution de capture dans `core/config.py` - Utiliser un modèle plus léger (qwen2.5-vl:3b au lieu de 7b) **5. Détection UI imprécise** - Augmenter le seuil de confiance dans `core/config.py` - Essayer un autre modèle de vision (OWL-v2, DINO, YOLO) - Fournir plus d'exemples en mode Shadow **6. Erreur "PyAutoGUI failsafe triggered"** - La souris a été déplacée dans le coin supérieur gauche - C'est un mécanisme de sécurité - Relancez l'application et évitez ce coin ### Logs et Débogage Les logs sont stockés dans `data/logs/` (chiffrés). Pour les consulter: ```python from core.logger import Logger from core.config import Config config = Config() logger = Logger(config.get_all()) # Récupérer les logs récents logs = logger.get_logs(limit=100) for log in logs: print(log) ``` ### Support Pour signaler un bug ou demander de l'aide: 1. Vérifiez les logs dans `data/logs/` 2. Consultez la documentation des modules dans `core/*/README.md` 3. Vérifiez les métriques dans le tableau de bord ## Performance ### Métriques Cibles | Métrique | Cible | Critique | |----------|-------|----------| | **Latence** | <400ms | <1000ms | | **Concordance** | ≥95% | ≥90% | | **Taux de correction** | <3% | <10% | | **Précision détection** | ≥90% | ≥80% | ### Optimisations 1. **GPU**: Utiliser un GPU NVIDIA pour accélérer les modèles 2. **Modèles**: Choisir des modèles adaptés à votre matériel 3. **Résolution**: Réduire la résolution de capture si nécessaire 4. **Cache**: Les embeddings sont mis en cache dans FAISS 5. **Batch**: Les opérations sont groupées quand possible ## Architecture Technique ### Composants Principaux - **Orchestrator**: Boucle cognitive principale - **LearningManager**: Gestion de l'apprentissage et des transitions - **VisionUtils**: Détection d'éléments UI avec modèles vision - **LLMManager**: Raisonnement visuel avec Qwen 2.5-VL - **EmbeddingsManager**: Mémoire visuelle avec OpenCLIP + FAISS - **WhitelistManager**: Contrôle d'accès aux applications - **UIChangeDetector**: Détection de dérives d'interface - **MetricsCollector**: Surveillance des performances - **ReplayEngine**: Rejeu et rollback d'actions ### Flux de Données ``` Capture écran → Détection UI → Raisonnement LLM → Décision ↓ ↓ ↓ Embeddings → Mémoire FAISS → Apprentissage ↓ Exécution/Suggestion ``` ## Documentation Détaillée - **Exigences**: `.kiro/specs/rpa-vision-v2/requirements.md` - **Design**: `.kiro/specs/rpa-vision-v2/design.md` - **Tâches**: `.kiro/specs/rpa-vision-v2/tasks.md` - **Modules**: - `core/ORCHESTRATOR_README.md` - `core/LEARNING_MANAGER_README.md` - `core/WHITELIST_MANAGER_README.md` - `core/UI_CHANGE_DETECTOR_README.md` - `core/utils/VISION_UTILS_README.md` - `gui/README.md` - `gui/dialogs/README.md` ## Contribution Ce projet est en développement actif. Les contributions sont les bienvenues: 1. Fork le projet 2. Créer une branche feature 3. Commiter les changements 4. Pousser vers la branche 5. Ouvrir une Pull Request ## Licence Propriétaire - Amina 2025 ## Remerciements - **OpenCLIP**: Embeddings visuels - **Ollama**: Infrastructure LLM locale - **Qwen 2.5-VL**: Modèle de vision-langage - **FAISS**: Recherche de similarité vectorielle - **PyQt5**: Interface graphique - **PyAutoGUI**: Contrôle des entrées