Validé sur PC Windows (DESKTOP-58D5CAC, 2560x1600) : - 8 clics résolus visuellement (1 anchor_template, 1 som_text_match, 6 som_vlm) - Score moyen 0.75, temps moyen 1.6s - Texte tapé correctement (bonjour, test word, date, email) - 0 retries, 2 actions non vérifiées (OK) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
117 lines
8.8 KiB
Markdown
117 lines
8.8 KiB
Markdown
# Document d'Exigences - Système Multi-Anchor et Contraintes
|
|
|
|
**Auteur :** Dom, Alice Kiro
|
|
**Date :** 15 décembre 2024
|
|
|
|
## Introduction
|
|
|
|
Ce document spécifie les exigences pour un système de contraintes multi-anchor et de bon sens combinatoire pour RPA Vision V3. Le système permettra au bot de "comprendre" des consignes complexes en utilisant plusieurs ancres de référence, des contraintes strictes (hard constraints), et des pondérations intelligentes pour choisir le meilleur élément cible.
|
|
|
|
## Glossaire
|
|
|
|
- **Système Multi-Anchor** : Système capable d'utiliser plusieurs ancres de référence pour localiser un élément cible
|
|
- **Contraintes Strictes** : Contraintes qui filtrent les candidats (ex: "dans le conteneur Login")
|
|
- **Contraintes Souples** : Contraintes pondérées qui influencent le score final (ex: proximité, alignement)
|
|
- **Intelligence Combinatoire** : Capacité à combiner plusieurs critères pour prendre une décision optimale
|
|
- **Contexte de Conteneur** : Contexte de conteneur identifié par texte (ex: "Panneau Login", "Dialogue Paramètres")
|
|
- **Fallback d'Ancre** : Mécanisme de fallback entre plusieurs ancres possibles
|
|
- **Stabilité de Départage** : Mécanisme de départage stable et reproductible
|
|
- **Scoring Pondéré** : Système de scoring avec pondérations configurables
|
|
|
|
## Exigences
|
|
|
|
### Exigence 1
|
|
|
|
**Histoire Utilisateur :** En tant que développeur de workflow, je veux spécifier plusieurs textes d'ancrage pour la résolution de cible, afin que le système puisse trouver des éléments même quand le texte de l'interface varie.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND une spécification de cible contient plusieurs textes d'ancrage dans context_hints, LE Système Multi-Anchor DOIT tenter la résolution avec chaque texte d'ancrage
|
|
2. QUAND plusieurs ancres sont disponibles, LE Système Multi-Anchor DOIT évaluer tous les candidats d'ancrage et sélectionner la meilleure combinaison
|
|
3. QUAND un texte d'ancrage n'est pas trouvé, LE Système Multi-Anchor DOIT continuer avec les textes d'ancrage restants sans échouer
|
|
4. QUAND tous les textes d'ancrage échouent, LE Système Multi-Anchor DOIT revenir à une résolution sans ancrage
|
|
5. QUAND une ancre réussit, LE Système Multi-Anchor DOIT enregistrer quel texte d'ancrage a été réussi pour l'optimisation future
|
|
|
|
### Exigence 2
|
|
|
|
**Histoire Utilisateur :** En tant que développeur de workflow, je veux spécifier des contraintes strictes qui filtrent rigoureusement les candidats, afin que le système ne considère que les éléments dans le bon contexte.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND des contraintes strictes sont spécifiées dans la spécification de cible, LE Système de Contraintes DOIT les appliquer comme filtres stricts avant le scoring
|
|
2. QUAND une contrainte "within_container_text" est spécifiée, LE Système de Contraintes DOIT seulement considérer les éléments dans le conteneur identifié
|
|
3. QUAND une contrainte "min_area" est spécifiée, LE Système de Contraintes DOIT exclure les éléments plus petits que le seuil
|
|
4. QUAND aucun élément ne passe les contraintes strictes, LE Système de Contraintes DOIT retourner aucune correspondance plutôt que de relâcher les contraintes
|
|
5. QUAND des contraintes strictes sont appliquées, LE Système de Contraintes DOIT enregistrer quelles contraintes ont filtré combien de candidats
|
|
|
|
### Exigence 3
|
|
|
|
**Histoire Utilisateur :** En tant que développeur de workflow, je veux configurer les poids de scoring pour différents critères, afin que le système priorise ce qui compte le plus pour mon cas d'usage.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND des poids de scoring sont spécifiés dans la spécification de cible, LE Système de Scoring DOIT les appliquer pour combiner différents composants de scoring
|
|
2. QUAND un poids de proximité est spécifié, LE Système de Scoring DOIT pondérer la distance spatiale de l'ancre en conséquence
|
|
3. QUAND un poids d'alignement est spécifié, LE Système de Scoring DOIT pondérer l'alignement spatial (horizontal/vertical) en conséquence
|
|
4. QUAND un poids de conteneur est spécifié, LE Système de Scoring DOIT pondérer la préférence de conteneur en conséquence
|
|
5. QUAND les poids ne sont pas spécifiés, LE Système de Scoring DOIT utiliser des poids par défaut équilibrés
|
|
|
|
### Exigence 4
|
|
|
|
**Histoire Utilisateur :** En tant qu'utilisateur du système, je veux que le système trouve les conteneurs par leurs étiquettes de texte, afin que les contraintes puissent référencer les panneaux et dialogues d'interface par leurs noms visibles.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND un texte de conteneur est spécifié, LE Résolveur de Conteneur DOIT trouver des éléments avec un texte correspondant qui sont des conteneurs
|
|
2. QUAND l'élément correspondant est déjà un type de conteneur, LE Résolveur de Conteneur DOIT utiliser sa boîte englobante directement
|
|
3. QUAND l'élément correspondant est une étiquette, LE Résolveur de Conteneur DOIT trouver le plus petit conteneur englobant
|
|
4. QUAND plusieurs conteneurs correspondent, LE Résolveur de Conteneur DOIT préférer le plus petit conteneur (le plus spécifique)
|
|
5. QUAND aucun conteneur n'est trouvé, LE Résolveur de Conteneur DOIT retourner null et enregistrer l'échec
|
|
|
|
### Exigence 5
|
|
|
|
**Histoire Utilisateur :** En tant qu'opérateur système, je veux un départage stable quand plusieurs éléments ont des scores identiques, afin que la sélection soit prévisible et reproductible.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND plusieurs candidats ont des scores composites identiques, LE Système de Départage DOIT utiliser la confiance comme critère secondaire
|
|
2. QUAND la confiance est aussi identique, LE Système de Départage DOIT utiliser la surface de l'élément comme critère tertiaire
|
|
3. QUAND la surface est aussi identique, LE Système de Départage DOIT utiliser l'ID de l'élément comme critère final
|
|
4. QUAND le départage est appliqué, LE Système de Départage DOIT enregistrer les critères de départage utilisés
|
|
5. QUAND le même état d'interface est traité plusieurs fois, LE Système de Départage DOIT toujours sélectionner le même élément
|
|
|
|
### Exigence 6
|
|
|
|
**Histoire Utilisateur :** En tant que développeur de workflow, je veux que le système gère les variantes sémantiques dans les textes d'ancrage, afin que "Username" et "Identifiant" puissent tous deux fonctionner comme ancres.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND plusieurs textes d'ancrage sont fournis, LE Système Sémantique DOIT les traiter comme des alternatives équivalentes
|
|
2. QUAND les textes d'ancrage incluent des variantes sémantiques, LE Système Sémantique DOIT trouver des éléments correspondant à n'importe quelle variante
|
|
3. QUAND plusieurs variantes correspondent, LE Système Sémantique DOIT préférer les correspondances exactes aux correspondances floues
|
|
4. QUAND la correspondance floue est utilisée, LE Système Sémantique DOIT appliquer des seuils de similarité cohérents
|
|
5. QUAND la correspondance sémantique réussit, LE Système Sémantique DOIT enregistrer quelle variante a été réussie
|
|
|
|
### Exigence 7
|
|
|
|
**Histoire Utilisateur :** En tant qu'administrateur système, je veux un logging complet de la résolution multi-anchor, afin que je puisse déboguer des scénarios de ciblage complexes.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND une résolution multi-anchor est effectuée, LE Système de Logging DOIT enregistrer tous les textes d'ancrage tentés
|
|
2. QUAND des contraintes strictes sont appliquées, LE Système de Logging DOIT enregistrer les types de contraintes et les résultats de filtrage
|
|
3. QUAND le scoring est effectué, LE Système de Logging DOIT enregistrer les meilleurs candidats avec leurs scores
|
|
4. QUAND un départage se produit, LE Système de Logging DOIT enregistrer les critères de départage utilisés
|
|
5. QUAND la résolution se termine, LE Système de Logging DOIT fournir une piste d'audit complète dans resolution_details
|
|
|
|
### Exigence 8
|
|
|
|
**Histoire Utilisateur :** En tant qu'utilisateur soucieux des performances, je veux que la résolution multi-anchor soit efficace, afin que le ciblage complexe ne ralentisse pas significativement l'exécution du workflow.
|
|
|
|
#### Critères d'Acceptation
|
|
|
|
1. QUAND une résolution multi-anchor est effectuée, LE Système de Performance DOIT se terminer en moins de 50ms pour des états d'interface typiques
|
|
2. QUAND plusieurs ancres sont évaluées, LE Système de Performance DOIT réutiliser l'analyse des éléments d'interface entre les ancres
|
|
3. QUAND une résolution de conteneur est effectuée, LE Système de Performance DOIT mettre en cache les recherches de conteneur dans la même résolution
|
|
4. QUAND le scoring est effectué, LE Système de Performance DOIT éviter les calculs redondants
|
|
5. QUAND la résolution se termine, LE Système de Performance DOIT enregistrer les métriques de timing pour le monitoring des performances |