v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
204
examples/README.md
Normal file
204
examples/README.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# Exemples RPA Vision V3
|
||||
|
||||
Ce dossier contient des exemples d'utilisation des différents composants de RPA Vision V3.
|
||||
|
||||
## Prérequis
|
||||
|
||||
### Installation d'Ollama
|
||||
|
||||
```bash
|
||||
# Linux
|
||||
curl -fsSL https://ollama.ai/install.sh | sh
|
||||
|
||||
# macOS
|
||||
brew install ollama
|
||||
|
||||
# Démarrer Ollama
|
||||
ollama serve
|
||||
|
||||
# Télécharger le modèle VLM
|
||||
ollama pull qwen3-vl:8b
|
||||
```
|
||||
|
||||
## Exemples Disponibles
|
||||
|
||||
### 1. Test d'Intégration Ollama
|
||||
|
||||
**Fichier:** `test_ollama_integration.py`
|
||||
|
||||
Test basique de la connexion à Ollama et des fonctionnalités du client.
|
||||
|
||||
```bash
|
||||
python rpa_vision_v3/examples/test_ollama_integration.py
|
||||
```
|
||||
|
||||
### 2. Test de Détection VLM Réelle
|
||||
|
||||
**Fichier:** `test_real_vlm_detection.py`
|
||||
|
||||
Test complet de la détection d'éléments UI avec le VLM. Crée un screenshot de test et détecte automatiquement les éléments.
|
||||
|
||||
```bash
|
||||
python rpa_vision_v3/examples/test_real_vlm_detection.py
|
||||
```
|
||||
|
||||
**Résultat attendu:**
|
||||
- ✅ Détection de 4 éléments UI
|
||||
- ✅ Classification correcte des types (button, text_input, checkbox)
|
||||
- ✅ Classification correcte des rôles (primary_action, cancel, form_input)
|
||||
|
||||
### 3. Détection Simple sur Screenshot
|
||||
|
||||
**Fichier:** `simple_vlm_detection.py`
|
||||
|
||||
Exemple simple pour analyser vos propres screenshots.
|
||||
|
||||
```bash
|
||||
python rpa_vision_v3/examples/simple_vlm_detection.py /path/to/screenshot.png
|
||||
```
|
||||
|
||||
**Exemple de sortie:**
|
||||
```
|
||||
✓ Ollama est disponible
|
||||
✓ UIDetector initialisé avec qwen3-vl:8b
|
||||
|
||||
Analyse du screenshot: screenshot.png
|
||||
✓ Détection terminée: 5 éléments trouvés
|
||||
|
||||
================================================================================
|
||||
ÉLÉMENTS UI DÉTECTÉS
|
||||
================================================================================
|
||||
|
||||
1. BUTTON - primary_action
|
||||
Label: Submit
|
||||
Position: x=300, y=200
|
||||
Taille: w=150, h=50
|
||||
Centre: (375, 225)
|
||||
Confiance: 85.00%
|
||||
|
||||
2. TEXT_INPUT - form_input
|
||||
Label: Enter text...
|
||||
Position: x=300, y=100
|
||||
Taille: w=200, h=40
|
||||
Centre: (400, 120)
|
||||
Confiance: 85.00%
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
## Structure des Exemples
|
||||
|
||||
```
|
||||
examples/
|
||||
├── README.md # Ce fichier
|
||||
├── test_ollama_integration.py # Test de connexion Ollama
|
||||
├── test_real_vlm_detection.py # Test complet de détection
|
||||
└── simple_vlm_detection.py # Exemple simple d'utilisation
|
||||
```
|
||||
|
||||
## Utilisation Programmatique
|
||||
|
||||
### Détection Basique
|
||||
|
||||
```python
|
||||
from rpa_vision_v3.core.detection.ui_detector import UIDetector
|
||||
|
||||
# Créer le détecteur
|
||||
detector = UIDetector()
|
||||
|
||||
# Détecter les éléments
|
||||
elements = detector.detect("screenshot.png")
|
||||
|
||||
# Utiliser les éléments
|
||||
for elem in elements:
|
||||
print(f"{elem.type} at {elem.center}")
|
||||
```
|
||||
|
||||
### Configuration Personnalisée
|
||||
|
||||
```python
|
||||
from rpa_vision_v3.core.detection.ui_detector import UIDetector, DetectionConfig
|
||||
|
||||
# Configuration personnalisée
|
||||
config = DetectionConfig(
|
||||
vlm_model="qwen3-vl:8b",
|
||||
confidence_threshold=0.8, # Plus strict
|
||||
max_elements=100
|
||||
)
|
||||
|
||||
detector = UIDetector(config)
|
||||
elements = detector.detect("screenshot.png")
|
||||
```
|
||||
|
||||
### Classification d'Élément Individuel
|
||||
|
||||
```python
|
||||
from PIL import Image
|
||||
|
||||
# Charger une image d'élément
|
||||
element_img = Image.open("button.png")
|
||||
|
||||
# Classifier le type
|
||||
elem_type, confidence = detector.classify_type(element_img)
|
||||
print(f"Type: {elem_type} ({confidence:.2%})")
|
||||
|
||||
# Classifier le rôle
|
||||
elem_role, confidence = detector.classify_role(element_img, elem_type)
|
||||
print(f"Rôle: {elem_role} ({confidence:.2%})")
|
||||
```
|
||||
|
||||
## Modèles VLM Supportés
|
||||
|
||||
| Modèle | Taille | Vitesse | Précision | Recommandé |
|
||||
|--------|--------|---------|-----------|------------|
|
||||
| **qwen3-vl:8b** | 6.1GB | ⚡⚡⚡ | ⭐⭐⭐⭐⭐ | ✅ **Meilleur** |
|
||||
| granite3.2-vision:2b | 2.4GB | ⚡⚡⚡⚡ | ⭐⭐⭐⭐ | ✅ Rapide |
|
||||
| pixtral | ~12GB | ⚡⚡ | ⭐⭐⭐⭐⭐ | ⚠️ Si RAM OK |
|
||||
|
||||
## Dépannage
|
||||
|
||||
### Ollama n'est pas disponible
|
||||
|
||||
```
|
||||
❌ Ollama n'est pas disponible!
|
||||
```
|
||||
|
||||
**Solution:**
|
||||
1. Vérifier qu'Ollama est installé: `ollama --version`
|
||||
2. Démarrer Ollama: `ollama serve`
|
||||
3. Vérifier que le port 11434 est libre
|
||||
|
||||
### Modèle non trouvé
|
||||
|
||||
```
|
||||
Warning: Model 'qwen3-vl:8b' not found in Ollama
|
||||
```
|
||||
|
||||
**Solution:**
|
||||
```bash
|
||||
ollama pull qwen3-vl:8b
|
||||
```
|
||||
|
||||
### Détection lente
|
||||
|
||||
La première détection peut être lente (chargement du modèle). Les détections suivantes sont plus rapides grâce au cache d'Ollama.
|
||||
|
||||
**Optimisations:**
|
||||
- Utiliser un modèle plus petit (granite3.2-vision:2b)
|
||||
- Réduire la résolution des screenshots
|
||||
- Activer `detect_regions=True` pour analyser par zones
|
||||
|
||||
## Support
|
||||
|
||||
Pour plus d'informations, consultez :
|
||||
- [Documentation Ollama](../docs/OLLAMA_INTEGRATION.md)
|
||||
- [Implémentation VLM](../docs/VLM_DETECTION_IMPLEMENTATION.md)
|
||||
- [Architecture complète](../docs/specs/design.md)
|
||||
|
||||
## Contribution
|
||||
|
||||
Pour ajouter de nouveaux exemples :
|
||||
1. Créer un nouveau fichier Python dans ce dossier
|
||||
2. Ajouter une section dans ce README
|
||||
3. Inclure des commentaires explicatifs dans le code
|
||||
4. Tester avec différents screenshots
|
||||
Reference in New Issue
Block a user