#!/bin/bash # Script d'installation pour RPA Vision V2 # Ce script installe toutes les dépendances et configure l'environnement set -e # Arrêter en cas d'erreur echo "==================================================" echo "🚀 Installation de RPA Vision V2" echo "==================================================" echo "" # Couleurs pour l'affichage GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # Fonction pour afficher les messages print_step() { echo -e "${BLUE}▶ $1${NC}" } print_success() { echo -e "${GREEN}✓ $1${NC}" } print_warning() { echo -e "${YELLOW}⚠ $1${NC}" } print_error() { echo -e "${RED}✗ $1${NC}" } # Vérifier Python print_step "Vérification de Python..." if ! command -v python3 &> /dev/null; then print_error "Python 3 n'est pas installé. Veuillez l'installer d'abord." exit 1 fi PYTHON_VERSION=$(python3 --version | cut -d' ' -f2) print_success "Python $PYTHON_VERSION trouvé" # Créer un environnement virtuel print_step "Création de l'environnement virtuel..." if [ ! -d "venv" ]; then python3 -m venv venv print_success "Environnement virtuel créé" else print_warning "Environnement virtuel existe déjà" fi # Activer l'environnement virtuel print_step "Activation de l'environnement virtuel..." source venv/bin/activate print_success "Environnement virtuel activé" # Mettre à jour pip print_step "Mise à jour de pip..." pip install --upgrade pip > /dev/null 2>&1 print_success "pip mis à jour" # Installer les dépendances Python print_step "Installation des dépendances Python..." if [ -f "requirements.txt" ]; then pip install -r requirements.txt print_success "Dépendances Python installées" else print_error "requirements.txt introuvable" exit 1 fi # Vérifier Ollama print_step "Vérification d'Ollama..." if ! command -v ollama &> /dev/null; then print_warning "Ollama n'est pas installé" echo "" echo "Pour installer Ollama:" echo " curl -fsSL https://ollama.com/install.sh | sh" echo "" read -p "Voulez-vous installer Ollama maintenant? (o/n) " -n 1 -r echo if [[ $REPLY =~ ^[Oo]$ ]]; then curl -fsSL https://ollama.com/install.sh | sh print_success "Ollama installé" else print_warning "Installation d'Ollama ignorée. Vous devrez l'installer manuellement." fi else print_success "Ollama est déjà installé" fi # Télécharger le modèle Qwen 2.5-VL if command -v ollama &> /dev/null; then print_step "Téléchargement du modèle Qwen 2.5-VL..." # Vérifier si le modèle existe déjà if ollama list | grep -q "qwen2.5-vl"; then print_warning "Le modèle qwen2.5-vl est déjà téléchargé" else echo "⏳ Téléchargement en cours (cela peut prendre plusieurs minutes)..." ollama pull qwen2.5-vl:7b print_success "Modèle Qwen 2.5-VL téléchargé" fi fi # Créer les répertoires de données print_step "Création des répertoires de données..." mkdir -p data/user_profiles mkdir -p data/logs mkdir -p data/faiss_index mkdir -p data/whitelist mkdir -p models print_success "Répertoires créés" # Générer les clés de chiffrement print_step "Génération des clés de chiffrement..." python3 << EOF from cryptography.fernet import Fernet import os key_file = "data/.encryption_key" if not os.path.exists(key_file): key = Fernet.generate_key() with open(key_file, "wb") as f: f.write(key) print("Clé de chiffrement générée") else: print("Clé de chiffrement existe déjà") EOF print_success "Clés de chiffrement prêtes" # Télécharger les modèles de vision (optionnel) print_step "Configuration des modèles de vision..." echo "" echo "Les modèles de vision seront téléchargés automatiquement au premier lancement." echo "Modèles supportés:" echo " - OWL-ViT v2 (Google)" echo " - Grounding DINO (IDEA Research)" echo " - YOLO-World (Tencent)" echo "" print_success "Configuration des modèles prête" # Créer un fichier de configuration par défaut print_step "Création de la configuration par défaut..." if [ ! -f "core/config.py" ]; then print_warning "core/config.py introuvable" else print_success "Configuration par défaut prête" fi # Vérifier les dépendances système print_step "Vérification des dépendances système..." # Vérifier xdotool (pour Linux) if [[ "$OSTYPE" == "linux-gnu"* ]]; then if ! command -v xdotool &> /dev/null; then print_warning "xdotool n'est pas installé (recommandé pour Linux)" echo " Installation: sudo apt-get install xdotool" else print_success "xdotool trouvé" fi fi # Résumé de l'installation echo "" echo "==================================================" echo "✅ Installation terminée!" echo "==================================================" echo "" echo "📋 Prochaines étapes:" echo "" echo "1. Activer l'environnement virtuel:" echo " source venv/bin/activate" echo "" echo "2. Lancer l'application:" echo " python3 main.py" echo "" echo "3. Configuration:" echo " - Modifiez core/config.py pour personnaliser" echo " - Ajoutez des fenêtres à la liste blanche via l'interface" echo "" echo "📚 Documentation:" echo " - README.md : Guide complet" echo " - core/*/README.md : Documentation des modules" echo "" echo "🎯 Modes disponibles:" echo " - 👀 Shadow : Observation et apprentissage" echo " - 🤝 Assisté : Suggestions avec validation" echo " - 🤖 Autopilot : Exécution automatique" echo "" echo "==================================================" echo "" # Demander si l'utilisateur veut lancer l'application read -p "Voulez-vous lancer l'application maintenant? (o/n) " -n 1 -r echo if [[ $REPLY =~ ^[Oo]$ ]]; then echo "" echo "🚀 Lancement de RPA Vision V2..." python3 main.py fi