# Script d'Injection Automatique pour PrivateGPT Ce script permet d'automatiser l'injection de documents dans PrivateGPT à partir d'un répertoire local. Au lieu d'utiliser l'interface utilisateur pour télécharger les fichiers un par un, vous pouvez injecter un dossier entier en une seule commande. ## Prérequis - Python 3.7 ou supérieur - PrivateGPT installé et fonctionnel sous Docker - Accès à l'API REST de PrivateGPT (port 8001 par défaut) ## Installation 1. Clonez ce dépôt ou téléchargez les fichiers dans un dossier 2. Installez les dépendances nécessaires : ```bash pip install requests ``` ## Utilisation Le script s'utilise en ligne de commande avec différentes options : ```bash python auto_ingest.py -d REPERTOIRE [-u URL] [-r] [-t THREADS] [--retry RETRY] [--retry-delay RETRY_DELAY] [--timeout TIMEOUT] [--extensions EXT1 EXT2 ...] ``` ### Options - `-d, --directory` : Chemin du répertoire contenant les fichiers à injecter (obligatoire) - `-u, --url` : URL de l'API PrivateGPT (défaut: http://localhost:8001) - `-r, --recursive` : Parcourir récursivement les sous-répertoires - `-t, --threads` : Nombre de threads pour les injections parallèles (défaut: 5) - `--retry` : Nombre de tentatives en cas d'échec (défaut: 3) - `--retry-delay` : Délai entre les tentatives en secondes (défaut: 5) - `--timeout` : Délai d'attente pour chaque requête en secondes (défaut: 300) - `--extensions` : Liste d'extensions spécifiques à injecter (ex: pdf txt) ## Exemples d'utilisation ### Injection simple d'un répertoire ```bash python auto_ingest.py -d /chemin/vers/documents ``` ### Injection récursive avec extensions spécifiques ```bash python auto_ingest.py -d /chemin/vers/documents -r --extensions pdf docx txt ``` ### Injection avec paramètres avancés ```bash python auto_ingest.py -d /chemin/vers/documents -r -t 10 --timeout 600 --retry 5 ``` ## Formats de fichiers supportés Par défaut, le script reconnaît et traite les formats suivants : - PDF (.pdf) - Documents texte (.txt, .md) - Documents Microsoft Office (.doc, .docx, .ppt, .pptx, .xls, .xlsx) - CSV (.csv) - EPUB (.epub) - HTML (.html, .htm) ## Résolution des problèmes ### Erreur de connexion Si vous obtenez des erreurs de connexion, vérifiez que : 1. PrivateGPT est bien en cours d'exécution 2. L'URL est correcte (par défaut: http://localhost:8001) 3. Le port 8001 est accessible et n'est pas bloqué par un pare-feu ### Erreurs d'injection - Si un fichier spécifique ne peut pas être injecté, vérifiez qu'il est d'un format supporté par PrivateGPT - Pour les fichiers volumineux, vous pouvez augmenter la valeur de `--timeout` - En cas d'erreurs répétées, augmentez les valeurs de `--retry` et `--retry-delay` ## Logs Le script génère des logs dans : - La console (stdout) - Un fichier pgpt_auto_ingest.log dans le répertoire courant Ces logs contiennent des informations détaillées sur le processus d'injection.