# Document d'Exigences

## Introduction

RPA Vision V2 est un système d'automatisation robotique à apprentissage progressif qui utilise la vision par ordinateur et l'IA pour observer, apprendre et automatiser les interactions avec les interfaces utilisateur. Le système évolue à travers trois modes opérationnels : Shadow (observation uniquement), Assisté (suggestion avec validation), et Autopilot (exécution autonome). Il exploite des modèles d'IA de vision (OWL-v2, Grounding DINO, YOLO-World), de raisonnement visuel (Qwen 2.5-VL), et de mémoire adaptative (embeddings OpenCLIP avec indexation FAISS) pour apprendre progressivement les flux de travail utilisateur tout en maintenant la sécurité, la traçabilité et le contrôle utilisateur.

## Glossaire

- **Système_RPA**: L'application complète RPA Vision V2 incluant tous les modules, modèles IA et interfaces utilisateur
- **Mode_Shadow**: Mode opérationnel où le Système_RPA observe les actions utilisateur sans exécuter d'actions automatisées
- **Mode_Assisté**: Mode opérationnel où le Système_RPA suggère des actions nécessitant une validation utilisateur explicite avant exécution
- **Mode_Autopilot**: Mode opérationnel où le Système_RPA exécute des actions de manière autonome après avoir atteint les seuils de confiance
- **Détecteur_Vision**: Composant IA utilisant OWL-v2, Grounding DINO ou YOLO-World pour la détection d'éléments UI
- **Raisonneur_Visuel**: Composant IA utilisant Qwen 2.5-VL ou CogVLM via Ollama pour la compréhension visuelle et la prise de décision
- **Gestionnaire_Embeddings**: Composant gérant les embeddings OpenCLIP et l'index FAISS pour la mémoire visuelle
- **Gestionnaire_Apprentissage**: Composant central suivant la progression d'apprentissage, les scores de confiance et les transitions de mode
- **Séquence_Actions**: Une série d'interactions UI effectuées par l'utilisateur que le Système_RPA apprend à répliquer
- **Score_Confiance**: Métrique calculée (0-100%) combinant détection vision, raisonnement LLM et performance historique de la tâche
- **Compteur_Observations**: Nombre de fois où le Système_RPA a observé une Séquence_Actions spécifique
- **Taux_Concordance**: Pourcentage de prédictions réussies correspondant aux actions utilisateur réelles sur les exécutions récentes
- **Liste_Blanche**: Liste des fenêtres d'application autorisées où le Système_RPA est autorisé à opérer
- **Journal_Chiffré**: Journal chiffré AES-256 enregistrant toutes les actions système, décisions et retours utilisateur
- **Événement_Correction**: Retour utilisateur indiquant que le Système_RPA a fait une prédiction ou action incorrecte
- **Opération_Rollback**: Annulation des trois dernières actions automatisées pour restaurer l'état précédent
- **Tableau_Bord**: Interface utilisateur affichant les statistiques de tâches, niveaux de confiance, corrections et historique d'exécution
- **Élément_UI**: Composant visuel à l'écran (bouton, champ, menu) que le Système_RPA peut détecter et avec lequel interagir

## Exigences

### Exigence 1

**User Story:** En tant qu'utilisateur titulaire, je veux que le système observe mes activités quotidiennes sans effectuer d'actions automatisées, afin qu'il puisse apprendre mes habitudes et séquences d'actions en toute sécurité.

#### Critères d'Acceptation

1. LORSQUE le Système_RPA fonctionne en Mode_Shadow, LE Système_RPA DOIT capturer toutes les trames d'écran et coordonnées d'Élément_UI sans exécuter d'actions automatisées.

2. TANT QUE le Système_RPA fonctionne en Mode_Shadow, LE Système_RPA DOIT enregistrer toutes les interactions utilisateur avec horodatages, titres de fenêtres et positions d'Élément_UI dans le Journal_Chiffré.

3. LE Système_RPA DOIT fournir une interface de journal accessible à l'utilisateur affichant toutes les observations capturées avec horodatages et métadonnées associées.

4. LORSQU'une interaction utilisateur est capturée en Mode_Shadow, LE Système_RPA DOIT générer et stocker des embeddings visuels via le Gestionnaire_Embeddings pour la reconnaissance de motifs future.

5. LE Système_RPA DOIT afficher un indicateur visuel montrant que le Mode_Shadow est actif (icône 👀) dans l'interface utilisateur.

### Exigence 2

**User Story:** En tant qu'utilisateur, je veux recevoir des suggestions d'actions avec un retour visuel clair et des contrôles de validation simples, afin de gagner du temps tout en gardant le contrôle total sur ce qui est exécuté.

#### Critères d'Acceptation

1. LORSQUE le Système_RPA fonctionne en Mode_Assisté, LE Système_RPA DOIT surligner les Élément_UI suggérés avec une superposition visuelle claire avant toute exécution d'action.

2. LORSQUE le Système_RPA présente une suggestion en Mode_Assisté, LE Système_RPA DOIT attendre une entrée utilisateur explicite (touche Entrée pour validation, touche Échap pour refus, ou Alt+C pour correction) avant de procéder.

3. LORSQU'un utilisateur appuie sur la touche Entrée sur une suggestion, LE Système_RPA DOIT exécuter l'action suggérée et enregistrer la validation dans le Journal_Chiffré.

4. LORSQU'un utilisateur appuie sur la touche Échap sur une suggestion, LE Système_RPA DOIT annuler l'action suggérée et enregistrer le refus dans le Journal_Chiffré.

5. LORSQU'un utilisateur appuie sur Alt+C sur une suggestion, LE Système_RPA DOIT ouvrir un dialogue de correction permettant à l'utilisateur de spécifier l'Élément_UI ou l'action correcte.

6. LORSQU'un Événement_Correction est enregistré, LE Gestionnaire_Apprentissage DOIT mettre à jour les embeddings visuels et les seuils de détection pour améliorer les prédictions futures.

7. LE Système_RPA DOIT afficher un indicateur visuel montrant que le Mode_Assisté est actif (icône 🤝) dans l'interface utilisateur.

### Exigence 3

**User Story:** En tant qu'utilisateur avancé, je veux que le système agisse automatiquement sur les séquences stables et répétitives, afin de pouvoir automatiser complètement les flux de travail que j'effectue régulièrement.

#### Critères d'Acceptation

1. LORSQU'une Séquence_Actions a un Compteur_Observations supérieur ou égal à 20 ET un Taux_Concordance supérieur ou égal à 95%, LE Système_RPA DOIT proposer la transition de cette Séquence_Actions vers le Mode_Autopilot.

2. LORSQUE le Système_RPA fonctionne en Mode_Autopilot pour une Séquence_Actions, LE Système_RPA DOIT exécuter les actions de manière autonome sans nécessiter de validation utilisateur.

3. LORSQU'un utilisateur appuie sur Ctrl+Pause à tout moment, LE Système_RPA DOIT immédiatement arrêter toutes les actions automatisées et revenir au Mode_Assisté.

4. LORSQUE le Système_RPA termine une action en Mode_Autopilot, LE Système_RPA DOIT afficher une notification post-action avec indicateur de succès (✔️) ou d'échec (❌).

5. LORSQU'une notification post-action affiche un indicateur d'échec, LE Système_RPA DOIT permettre à l'utilisateur de fournir un retour correctif dans les 5 secondes.

6. LORSQU'un retour correctif est fourni après une action en Mode_Autopilot, LE Gestionnaire_Apprentissage DOIT enregistrer l'Événement_Correction et ajuster le Score_Confiance pour cette Séquence_Actions.

7. LE Système_RPA DOIT afficher un indicateur visuel montrant que le Mode_Autopilot est actif (icône 🤖) dans l'interface utilisateur.

### Exigence 4

**User Story:** En tant que système, je veux apprendre et ajuster continuellement mes prédictions en fonction des résultats réels, afin de maintenir la fiabilité même lorsque les interfaces utilisateur changent.

#### Critères d'Acceptation

1. LORSQU'une action automatisée est exécutée, LE Gestionnaire_Apprentissage DOIT calculer le delta entre l'emplacement prédit de l'Élément_UI et l'emplacement réel confirmé par l'utilisateur.

2. LORSQUE le delta entre prédiction et emplacement réel dépasse 10 pixels, LE Gestionnaire_Apprentissage DOIT déclencher un cycle de ré-entraînement pour les embeddings visuels associés à cette Séquence_Actions.

3. LORSQU'un cycle de ré-entraînement est déclenché, LE Gestionnaire_Embeddings DOIT mettre à jour les embeddings OpenCLIP et reconstruire l'index FAISS avec les nouvelles données visuelles.

4. LORSQUE le Score_Confiance pour une Séquence_Actions en Mode_Autopilot tombe en dessous de 90%, LE Système_RPA DOIT automatiquement faire revenir cette Séquence_Actions au Mode_Assisté.

5. LORSQU'une Séquence_Actions passe du Mode_Autopilot au Mode_Assisté en raison d'une faible confiance, LE Système_RPA DOIT notifier l'utilisateur avec la raison de la transition.

6. LE Gestionnaire_Apprentissage DOIT recalculer le Score_Confiance après chaque exécution d'action en utilisant la formule : 0,6 × confiance_vision + 0,3 × score_llm + 0,1 × performance_historique_tâche.

### Exigence 5

**User Story:** En tant que superviseur ou administrateur, je veux garantir la sécurité et la traçabilité de toutes les actions système, afin de prévenir les comportements indésirables et maintenir la conformité d'audit.

#### Critères d'Acceptation

1. LE Système_RPA DOIT chiffrer toutes les entrées de journal en utilisant le chiffrement AES-256 avant d'écrire dans le Journal_Chiffré.

2. LE Système_RPA DOIT enregistrer chaque action avec horodatage, titre de fenêtre, type d'action, identifiant d'Élément_UI, Score_Confiance, mode opérationnel et résultat d'exécution dans le Journal_Chiffré.

3. LE Système_RPA DOIT appliquer une Liste_Blanche de fenêtres d'application autorisées et NE DOIT PAS exécuter d'actions dans les fenêtres absentes de la Liste_Blanche.

4. LORSQU'une action est tentée dans une fenêtre non présente dans la liste blanche, LE Système_RPA DOIT bloquer l'action et enregistrer un événement de violation de sécurité dans le Journal_Chiffré.

5. LE Système_RPA DOIT fournir une capacité d'Opération_Rollback permettant l'annulation des trois dernières actions automatisées.

6. LORSQU'une Opération_Rollback est initiée, LE Système_RPA DOIT restaurer l'état précédent en exécutant les actions inverses dans l'ordre chronologique inverse.

7. LE Tableau_Bord DOIT afficher le taux de succès, la latence moyenne, le nombre de corrections et l'horodatage de dernière exécution pour chaque Séquence_Actions apprise.

8. LE Tableau_Bord DOIT mettre à jour les métriques en temps réel au fur et à mesure que les actions sont exécutées et les retours reçus.

### Exigence 6

**User Story:** En tant que composant d'auto-surveillance du système, je veux détecter la dégradation des performances et alerter les utilisateurs, afin de prévenir la dérive comportementale après les mises à jour d'UI.

#### Critères d'Acceptation

1. LE Gestionnaire_Apprentissage DOIT maintenir des seuils de confiance dynamiques qui s'adaptent en fonction des tendances récentes du Taux_Concordance pour chaque Séquence_Actions.

2. LORSQUE le Score_Confiance pour une action en attente tombe en dessous du seuil dynamique, LE Système_RPA DOIT afficher une notification à l'utilisateur indiquant l'incertitude.

3. LORSQUE l'incertitude est détectée en Mode_Autopilot, LE Système_RPA DOIT geler l'exécution de cette Séquence_Actions jusqu'à ce qu'une validation utilisateur soit fournie.

4. LORSQUE le Taux_Concordance pour une Séquence_Actions tombe en dessous de 85% sur les 10 dernières exécutions, LE Système_RPA DOIT automatiquement faire passer cette Séquence_Actions au Mode_Assisté.

5. LORSQU'un changement d'UI est détecté (similarité d'embedding visuel inférieure à 70% par rapport aux motifs stockés), LE Système_RPA DOIT alerter l'utilisateur et demander une ré-observation de la Séquence_Actions affectée.

6. LE Système_RPA DOIT suivre le taux d'Événement_Correction par Séquence_Actions et DOIT alerter l'utilisateur lorsque le taux de correction dépasse 5% sur 20 exécutions.

## Critères d'Acceptation Globaux

1. LE Système_RPA DOIT maintenir un Taux_Concordance supérieur ou égal à 95% sur les 10 dernières actions pour toute Séquence_Actions en Mode_Autopilot.

2. LE Système_RPA DOIT exécuter zéro action dans les fenêtres absentes de la Liste_Blanche.

3. LE Système_RPA DOIT compléter le pipeline observation-vers-suggestion avec une latence inférieure à 400 millisecondes.

4. LE Système_RPA DOIT maintenir un taux d'Événement_Correction inférieur à 3% sur toutes les Séquence_Actions.

5. LE Tableau_Bord DOIT être accessible et afficher des métriques précises en temps réel à tout moment pendant l'opération du système.

6. LE Journal_Chiffré DOIT maintenir son intégrité sans perte de données ni corruption tout au long de l'opération du système.
