Initial commit

This commit is contained in:
Dom
2026-03-05 00:20:25 +01:00
commit dcd4de9945
1954 changed files with 669380 additions and 0 deletions

353
docs/guides/README_MVP.md Normal file
View File

@@ -0,0 +1,353 @@
# 🤖 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
```bash
# 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
```bash
cd geniusia2
./run.sh
```
## 📖 Guide d'Utilisation
### Workflow Complet
```bash
# Démonstration complète : Capture → Apprentissage → Rejeu
python3 example_complete_workflow.py
```
### Mode Capture (Apprentissage)
1. Lancer l'application : `cd geniusia2 && ./run.sh`
2. Cliquer sur "Start"
3. Effectuer des actions répétitives (3x minimum)
4. Le système détecte les patterns et crée des tâches automatiquement
### Mode Rejeu
```bash
# Lister les tâches disponibles
python3 read_pkl.py --list
# Rejouer une tâche
python3 test_task_replay.py
```
Le système va :
1. Charger la tâche
2. Pour chaque action :
- Capturer l'écran actuel
- Rechercher l'élément visuellement (grille 4x4 + CLIP)
- Exécuter l'action à la position trouvée
3. 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
```bash
python3 diagnostic_data.py
```
Affiche :
- État de l'index FAISS
- Nombre de tâches
- État des logs
### Lecture de Tâches
```bash
# 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
```bash
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** :
1. Lancer l'app : `./run.sh`
2. Cliquer "Start"
3. Effectuer des actions répétitives
4. 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** :
```bash
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** :
```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,) float32
- `action_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) :
```bash
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** :
```bash
cd geniusia2
./install_faiss.sh
```
Ou manuellement :
```bash
pip install faiss-cpu
```
### Ollama + Gemma3
**Pourquoi** : Génération de descriptions intelligentes
**Installation** :
```bash
# 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** :
```bash
cd geniusia2
./install_faiss.sh
```
### Index FAISS manquant
**Symptôme** : Pas de fichiers dans `data/faiss_index/`
**Solution** :
```bash
python3 rebuild_faiss_simple.py
```
### Ollama non démarré
**Symptôme** : Erreurs de connexion au LLM
**Solution** :
```bash
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 complet
- **`MODIFICATIONS_MVP.md`** : Changements récents
- **`CHANGELOG_MVP.md`** : Historique des versions
- **`état_avancement_18_11.md`** : État détaillé du projet
- **`MVP_COMPLET_REJEU.md`** : Documentation du système de rejeu
- **`geniusia2/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 :
1. Vérifier les logs : `cat geniusia2/data/logs/logs_$(date +%Y-%m-%d).json`
2. Diagnostic : `python3 diagnostic_data.py`
3. 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 ! 🎉**