#!/bin/bash # Script de validation Phase 3 # Vérifie que tous les composants sont en place et fonctionnels echo "==================================================" echo " RPA Vision V3 - Validation Phase 3" echo "==================================================" echo "" # Couleurs GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Compteurs PASSED=0 FAILED=0 # Fonction de test check_file() { if [ -f "$1" ]; then echo -e "${GREEN}✓${NC} $1" ((PASSED++)) else echo -e "${RED}✗${NC} $1 (manquant)" ((FAILED++)) fi } check_dir() { if [ -d "$1" ]; then echo -e "${GREEN}✓${NC} $1/" ((PASSED++)) else echo -e "${RED}✗${NC} $1/ (manquant)" ((FAILED++)) fi } echo "1. Vérification de la structure..." echo "-----------------------------------" check_dir "rpa_vision_v3/core/detection" check_dir "rpa_vision_v3/examples" check_dir "rpa_vision_v3/docs" check_dir "rpa_vision_v3/tests/unit" echo "" echo "2. Vérification des fichiers core..." echo "-------------------------------------" check_file "rpa_vision_v3/core/detection/ollama_client.py" check_file "rpa_vision_v3/core/detection/ui_detector.py" check_file "rpa_vision_v3/core/detection/__init__.py" echo "" echo "3. Vérification des tests..." echo "----------------------------" check_file "rpa_vision_v3/examples/test_ollama_integration.py" check_file "rpa_vision_v3/examples/test_real_vlm_detection.py" check_file "rpa_vision_v3/examples/test_hybrid_detection.py" check_file "rpa_vision_v3/examples/test_complete_real.py" check_file "rpa_vision_v3/examples/diagnostic_vlm.py" check_file "rpa_vision_v3/examples/create_test_screenshot.py" check_file "rpa_vision_v3/examples/test_quick.sh" echo "" echo "4. Vérification de la documentation..." echo "---------------------------------------" check_file "rpa_vision_v3/QUICK_START.md" check_file "rpa_vision_v3/HYBRID_DETECTION_SUMMARY.md" check_file "rpa_vision_v3/PHASE3_COMPLETE.md" check_file "rpa_vision_v3/PHASE3_COMPLETE_FINAL.md" check_file "rpa_vision_v3/STATUS_UPDATE.md" check_file "rpa_vision_v3/EXECUTIVE_SUMMARY.md" check_file "rpa_vision_v3/docs/OLLAMA_INTEGRATION.md" check_file "rpa_vision_v3/docs/VLM_DETECTION_IMPLEMENTATION.md" echo "" echo "5. Vérification des specs Phase 4..." echo "-------------------------------------" echo "⏳ Specs Phase 4 à créer (prochaine étape)" echo "" echo "6. Test de disponibilité Ollama..." echo "-----------------------------------" if curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then echo -e "${GREEN}✓${NC} Ollama est accessible" ((PASSED++)) # Vérifier si qwen3-vl:8b est disponible if curl -s http://localhost:11434/api/tags | grep -q "qwen3-vl:8b"; then echo -e "${GREEN}✓${NC} qwen3-vl:8b est installé" ((PASSED++)) else echo -e "${YELLOW}⚠${NC} qwen3-vl:8b n'est pas installé" echo " Installer avec: ollama pull qwen3-vl:8b" ((FAILED++)) fi else echo -e "${RED}✗${NC} Ollama n'est pas accessible" echo " Démarrer avec: ollama serve" ((FAILED++)) fi echo "" echo "7. Test Python imports..." echo "-------------------------" cd rpa_vision_v3 if python3 -c "from core.detection.ollama_client import OllamaClient" 2>/dev/null; then echo -e "${GREEN}✓${NC} OllamaClient importable" ((PASSED++)) else echo -e "${RED}✗${NC} Erreur import OllamaClient" ((FAILED++)) fi if python3 -c "from core.detection.ui_detector import UIDetector" 2>/dev/null; then echo -e "${GREEN}✓${NC} UIDetector importable" ((PASSED++)) else echo -e "${RED}✗${NC} Erreur import UIDetector" ((FAILED++)) fi cd .. echo "" echo "==================================================" echo " Résultats" echo "==================================================" echo -e "Tests réussis: ${GREEN}${PASSED}${NC}" echo -e "Tests échoués: ${RED}${FAILED}${NC}" echo "" if [ $FAILED -eq 0 ]; then echo -e "${GREEN}✓ Phase 3 validée avec succès !${NC}" echo "" echo "Prochaines étapes:" echo " 1. Tester avec: cd rpa_vision_v3/examples && bash test_quick.sh" echo " 2. Diagnostic: python3 diagnostic_vlm.py" echo " 3. Phase 4: Implémenter mode asynchrone" exit 0 else echo -e "${RED}✗ Validation échouée. Corriger les erreurs ci-dessus.${NC}" exit 1 fi