206 lines
5.8 KiB
Bash
Executable File
206 lines
5.8 KiB
Bash
Executable File
#!/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
|