90 lines
2.9 KiB
Markdown
90 lines
2.9 KiB
Markdown
# 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. |