#!/bin/bash # Script d'exécution pour auto_ingest.py # Vérification des dépendances check_dependencies() { # Vérifier Python if ! command -v python3 &> /dev/null; then echo "Erreur: Python 3 n'est pas installé ou n'est pas dans le PATH" exit 1 fi # Vérifier pip et requests if ! python3 -c "import requests" &> /dev/null; then echo "Installation de la bibliothèque requests..." pip3 install requests if [ $? -ne 0 ]; then echo "Erreur: Impossible d'installer la bibliothèque requests" echo "Exécutez manuellement: pip3 install requests" exit 1 fi fi } # Fonction d'aide show_help() { echo "Script d'injection automatique pour PrivateGPT" echo "" echo "Usage: $0 [options] -d RÉPERTOIRE" echo "" echo "Options:" echo " -d, --directory RÉPERTOIRE Répertoire contenant les fichiers à injecter (obligatoire)" echo " -u, --url URL URL de l'API PrivateGPT (défaut: http://localhost:8001)" echo " -r, --recursive Parcourir récursivement les sous-répertoires" echo " -t, --threads N Nombre de threads pour les injections parallèles (défaut: 5)" echo " --retry N Nombre de tentatives en cas d'échec (défaut: 3)" echo " --retry-delay N Délai entre les tentatives en secondes (défaut: 5)" echo " --timeout N Délai d'attente pour chaque requête en secondes (défaut: 300)" echo " --extensions EXT1 EXT2 ... Liste d'extensions spécifiques à injecter" echo " -h, --help Afficher cette aide" echo "" echo "Exemple: $0 -d /documents -r --extensions pdf docx" } # Vérifier si aucun argument n'est fourni if [ $# -eq 0 ]; then show_help exit 1 fi # Vérifier l'argument d'aide for arg in "$@"; do if [ "$arg" = "-h" ] || [ "$arg" = "--help" ]; then show_help exit 0 fi done # Vérifier la présence de l'argument obligatoire (-d ou --directory) directory_specified=false for ((i=1; i<=$#; i++)); do if [ "${!i}" = "-d" ] || [ "${!i}" = "--directory" ]; then directory_specified=true break fi done if [ "$directory_specified" = false ]; then echo "Erreur: L'option -d/--directory est obligatoire" echo "Utilisez -h ou --help pour afficher l'aide" exit 1 fi # Vérifier les dépendances check_dependencies # Chemin au script Python SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PYTHON_SCRIPT="${SCRIPT_DIR}/auto_ingest.py" # Vérifier que le script Python existe if [ ! -f "$PYTHON_SCRIPT" ]; then echo "Erreur: Le script auto_ingest.py n'existe pas dans $SCRIPT_DIR" exit 1 fi # Rendre le script Python exécutable chmod +x "$PYTHON_SCRIPT" # Exécuter le script Python avec tous les arguments python3 "$PYTHON_SCRIPT" "$@"