8.2 KiB
🤖 RPA Vision V2 - MVP
Système d'automatisation robotique à apprentissage progressif utilisant la vision par ordinateur et l'IA.
🎯 Vue d'Ensemble
RPA Vision V2 observe, apprend et rejoue les interactions avec les interfaces utilisateur de manière intelligente.
Fonctionnalités MVP
- ✅ Capture d'événements : Enregistre les actions clavier/souris avec screenshots
- ✅ Détection de patterns : Identifie les séquences répétitives (3+ fois)
- ✅ Analyse visuelle : Utilise CLIP, OWL-v2, DINO, YOLO pour comprendre l'interface
- ✅ Signatures visuelles : Crée des embeddings pour chaque action
- ✅ Descriptions intelligentes : Génère des descriptions avec Gemma3
- ✅ Rejeu intelligent : Rejoue les tâches en localisant visuellement les éléments
- ✅ Adaptation automatique : S'adapte aux variations d'interface
🚀 Installation Rapide
1. Prérequis
- Python 3.8+
- Ollama installé
- 8 GB RAM minimum
- Linux (testé sur Ubuntu)
2. Installation
# Cloner le repo
git clone <repo-url>
cd Geniusia_v2
# Installation complète
cd geniusia2
./setup.sh
# Installer FAISS (CRITIQUE)
./install_faiss.sh
# Reconstruire l'index FAISS (si des tâches existent)
cd ..
python3 rebuild_faiss_simple.py
3. Lancement
cd geniusia2
./run.sh
📖 Guide d'Utilisation
Workflow Complet
# Démonstration complète : Capture → Apprentissage → Rejeu
python3 example_complete_workflow.py
Mode Capture (Apprentissage)
- Lancer l'application :
cd geniusia2 && ./run.sh - Cliquer sur "Start"
- Effectuer des actions répétitives (3x minimum)
- Le système détecte les patterns et crée des tâches automatiquement
Mode Rejeu
# Lister les tâches disponibles
python3 read_pkl.py --list
# Rejouer une tâche
python3 test_task_replay.py
Le système va :
- Charger la tâche
- Pour chaque action :
- Capturer l'écran actuel
- Rechercher l'élément visuellement (grille 4x4 + CLIP)
- Exécuter l'action à la position trouvée
- Afficher les résultats
🏗️ Architecture
geniusia2/
├── core/ # Logique centrale
│ ├── task_replay.py # ✨ Moteur de rejeu intelligent
│ ├── event_capture.py # Capture d'événements
│ ├── learning_manager.py # Apprentissage de tâches
│ ├── embeddings_manager.py # Gestion FAISS
│ ├── logger.py # Logs (JSON simple pour MVP)
│ └── utils/
│ ├── vision_utils.py # Analyse visuelle (CLIP, OWL-v2, etc.)
│ └── input_utils.py # Contrôle souris/clavier
├── gui/ # Interface PyQt5
├── data/
│ ├── user_profiles/ # Tâches apprises
│ │ └── task_XXXXX/
│ │ ├── metadata.json # Infos de la tâche
│ │ └── signatures.pkl # Actions + embeddings
│ ├── faiss_index/ # Index de recherche
│ │ ├── embeddings.index # Index FAISS
│ │ └── metadata.pkl # Métadonnées
│ └── logs/ # Logs JSON
└── main.py # Point d'entrée
Scripts utilitaires (racine) :
├── test_task_replay.py # Test de rejeu
├── example_complete_workflow.py # Workflow complet
├── read_pkl.py # Lecture des .pkl
├── rebuild_faiss_simple.py # Reconstruction index
└── diagnostic_data.py # Diagnostic
🔧 Scripts Utilitaires
Diagnostic
python3 diagnostic_data.py
Affiche :
- État de l'index FAISS
- Nombre de tâches
- État des logs
Lecture de Tâches
# Lister toutes les tâches
python3 read_pkl.py --list
# Lire une tâche spécifique
python3 read_pkl.py task_fc1d3e52
Reconstruction de l'Index FAISS
python3 rebuild_faiss_simple.py
Extrait les embeddings de toutes les tâches et crée l'index FAISS.
🎮 Modes Opérationnels
👀 Mode Shadow (Actuel)
Fonctionnalités :
- Capture des événements utilisateur
- Détection de patterns répétitifs
- Création automatique de tâches
- Génération de signatures visuelles
Utilisation :
- Lancer l'app :
./run.sh - Cliquer "Start"
- Effectuer des actions répétitives
- Les tâches sont créées automatiquement
🎮 Mode Rejeu (Nouveau !)
Fonctionnalités :
- Chargement de tâches apprises
- Recherche visuelle d'éléments (CLIP)
- Exécution adaptative d'actions
- Monitoring en temps réel
Utilisation :
python3 test_task_replay.py
🤝 Mode Assisté (À venir)
- Suggestions d'actions
- Validation utilisateur
- Superposition visuelle
🤖 Mode Autopilot (À venir)
- Exécution automatique
- Transitions de mode
- Dashboard de métriques
📊 Données
Structure d'une Tâche
data/user_profiles/task_fc1d3e52/
├── metadata.json # Infos générales
└── signatures.pkl # Actions + embeddings
metadata.json :
{
"task_id": "task_fc1d3e52",
"task_name": "Défilement rapide",
"window_whitelist": ["Firefox"],
"observation_count": 3,
"mode": "shadow",
"confidence_score": 0.0
}
signatures.pkl (binaire) :
- Liste d'actions
- Chaque action contient :
embedding: numpy array (512,) float32action_type: "mouse_click", "scroll", etc.position: (x, y)element_type: "icon", "button", etc.window: Titre de la fenêtre
Logs
Format JSON simple (pas de chiffrement pour MVP) :
cat geniusia2/data/logs/logs_$(date +%Y-%m-%d).json | jq .
🔍 Dépendances Critiques
FAISS (CRITIQUE)
Pourquoi : Recherche de similarité pour localiser les éléments
Installation :
cd geniusia2
./install_faiss.sh
Ou manuellement :
pip install faiss-cpu
Ollama + Gemma3
Pourquoi : Génération de descriptions intelligentes
Installation :
# Installer Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Télécharger Gemma3
ollama pull gemma2:2b
# Démarrer Ollama
ollama serve
⚠️ Problèmes Courants
FAISS non installé
Symptôme : ModuleNotFoundError: No module named 'faiss'
Solution :
cd geniusia2
./install_faiss.sh
Index FAISS manquant
Symptôme : Pas de fichiers dans data/faiss_index/
Solution :
python3 rebuild_faiss_simple.py
Ollama non démarré
Symptôme : Erreurs de connexion au LLM
Solution :
ollama serve
📈 Avancement
Version actuelle : MVP 0.6
| Fonctionnalité | Avancement | Statut |
|---|---|---|
| Capture d'événements | 90% | ✅ Fonctionnel |
| Analyse visuelle | 85% | ✅ Fonctionnel |
| Mémoire FAISS | 80% | ✅ Opérationnel |
| Apprentissage | 85% | ✅ Fonctionnel |
| Rejeu intelligent | 90% | ✅ Fonctionnel |
| Mode Assisté | 5% | ❌ À faire |
| Mode Autopilot | 50% | ⚠️ Partiel |
| Transitions | 10% | ❌ À faire |
| Dashboard | 20% | ⚠️ Basique |
Avancement global : ~60%
📚 Documentation
DEMARRAGE_RAPIDE_MVP.md: Guide de démarrage completMODIFICATIONS_MVP.md: Changements récentsCHANGELOG_MVP.md: Historique des versionsétat_avancement_18_11.md: État détaillé du projetMVP_COMPLET_REJEU.md: Documentation du système de rejeugeniusia2/core/TASK_REPLAY_README.md: API de rejeu
🤝 Contribution
Le projet est en phase MVP. Les contributions sont bienvenues pour :
- Améliorer la recherche visuelle (multi-échelle)
- Implémenter le mode Assisté
- Ajouter des tests
- Optimiser les performances
📝 Licence
[À définir]
🆘 Support
En cas de problème :
- Vérifier les logs :
cat geniusia2/data/logs/logs_$(date +%Y-%m-%d).json - Diagnostic :
python3 diagnostic_data.py - Vérifier FAISS :
python -c "import faiss; print('OK')"
✅ Checklist de Démarrage
- Python 3.8+ installé
- Ollama installé et démarré
- Modèle Gemma3 téléchargé
- Environnement virtuel créé (
./setup.sh) - FAISS installé (
./install_faiss.sh) - Index FAISS créé (
python3 rebuild_faiss_simple.py) - Application testée (
./run.sh)
Prêt à l'emploi ! 🎉