Initial commit
This commit is contained in:
205
geniusia2/setup.sh
Executable file
205
geniusia2/setup.sh
Executable file
@@ -0,0 +1,205 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user