Files
Geniusia_v2/docs/guides/README_MVP.md
2026-03-05 00:20:25 +01:00

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)

  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

# 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

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 :

  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 :

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,) 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) :

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 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 ! 🎉