90 lines
2.9 KiB
Bash
Executable File
90 lines
2.9 KiB
Bash
Executable File
#!/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" "$@" |