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
-
Clonez ce dépôt ou téléchargez les fichiers dans un dossier
-
Installez les dépendances nécessaires :
pip install requests
Utilisation
Le script s'utilise en ligne de commande avec différentes options :
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
python auto_ingest.py -d /chemin/vers/documents
Injection récursive avec extensions spécifiques
python auto_ingest.py -d /chemin/vers/documents -r --extensions pdf docx txt
Injection avec paramètres avancés
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 :
- PrivateGPT est bien en cours d'exécution
- L'URL est correcte (par défaut: http://localhost:8001)
- 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
--retryet--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.