# 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