mirror of
https://github.com/Ladebeze66/ragflow_preprocess.git
synced 2026-02-04 07:20:25 +01:00
174 lines
5.7 KiB
Markdown
174 lines
5.7 KiB
Markdown
# Prétraitement PDF pour Ragflow
|
|
|
|
Outil de prétraitement de documents PDF avec agents LLM modulables pour l'analyse, la traduction et le résumé.
|
|
|
|
## Fonctionnalités
|
|
|
|
- **Sélection visuelle** de zones dans les documents PDF (tableaux, schémas, formules, texte)
|
|
- **Analyse automatique** avec différents agents LLM configurables
|
|
- **Niveaux d'analyse** adaptables selon les besoins (léger, moyen, avancé)
|
|
- **Export Markdown** pour intégration dans une base Ragflow
|
|
|
|
## Installation
|
|
|
|
### Prérequis
|
|
|
|
- Python 3.8 ou supérieur
|
|
- PyQt6
|
|
- PyMuPDF (fitz)
|
|
- Tesseract OCR (pour la reconnaissance de texte)
|
|
- Ollama (pour les modèles LLM)
|
|
|
|
### Méthode 1 : Installation directe (recommandée)
|
|
|
|
Clonez ce dépôt et installez avec pip :
|
|
|
|
```bash
|
|
git clone https://github.com/votre-utilisateur/ragflow-pretraitement.git
|
|
cd ragflow_pretraitement
|
|
pip install -e .
|
|
```
|
|
|
|
Cette méthode installera automatiquement toutes les dépendances Python requises.
|
|
|
|
### Méthode 2 : Installation manuelle
|
|
|
|
Si vous préférez une installation manuelle :
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Installation de Tesseract OCR
|
|
|
|
Pour l'OCR, vous devez également installer Tesseract :
|
|
|
|
- **Windows** : Téléchargez et installez depuis [https://github.com/UB-Mannheim/tesseract/wiki](https://github.com/UB-Mannheim/tesseract/wiki)
|
|
- **Linux** : `sudo apt install tesseract-ocr tesseract-ocr-fra tesseract-ocr-eng`
|
|
- **macOS** : `brew install tesseract`
|
|
|
|
### Installation d'Ollama
|
|
|
|
Suivez les instructions d'installation d'Ollama disponibles sur [https://ollama.ai/](https://ollama.ai/)
|
|
|
|
Modèles recommandés à télécharger :
|
|
```bash
|
|
ollama pull llava:34b
|
|
ollama pull mistral
|
|
ollama pull llama3.2-vision
|
|
```
|
|
|
|
## Utilisation
|
|
|
|
### Lancement de l'application
|
|
|
|
Si vous avez utilisé l'installation avec le script setup.py :
|
|
```bash
|
|
ragflow-pretraitement
|
|
```
|
|
|
|
Ou manuellement :
|
|
```bash
|
|
cd ragflow_pretraitement
|
|
python main.py
|
|
```
|
|
|
|
### Processus typique
|
|
|
|
1. Charger un PDF avec le bouton "Charger PDF"
|
|
2. Naviguer entre les pages avec les boutons ou le sélecteur
|
|
3. Sélectionner une zone d'intérêt avec la souris
|
|
4. Choisir le type de contenu (schéma, tableau, formule...)
|
|
5. Ajouter un contexte textuel si nécessaire
|
|
6. Configurer les agents LLM dans l'onglet "Agents LLM"
|
|
7. Appliquer l'agent sur la sélection
|
|
8. Exporter le résultat en Markdown
|
|
|
|
## Configuration des agents LLM
|
|
|
|
L'application propose trois niveaux d'analyse :
|
|
|
|
| Niveau | Vision | Résumé | Traduction | Usage recommandé |
|
|
| --------- | ----------------- | ----------------- | ---------------- | --------------------------- |
|
|
| 🔹 Léger | llava:34b | mistral | mistral | Débogage, prototypes |
|
|
| ⚪ Moyen | llava | deepseek-r1 | qwen2.5 | Usage normal |
|
|
| 🔸 Avancé | llama3.2-vision | deepseek-r1 | deepseek | Documents critiques |
|
|
|
|
Vous pouvez personnaliser ces configurations dans le fichier `config/llm_profiles.json`.
|
|
|
|
## Paramètres avancés
|
|
|
|
- **Température** : Contrôle la créativité des réponses (0.1-1.0)
|
|
- **Top-p/Top-k** : Paramètres d'échantillonnage pour la génération
|
|
- **Max tokens** : Limite la longueur des réponses générées
|
|
|
|
## Résolution des problèmes courants
|
|
|
|
### Erreurs d'importation de PyQt6
|
|
|
|
Si vous rencontrez des erreurs avec PyQt6, essayez de le réinstaller :
|
|
```bash
|
|
pip uninstall PyQt6 PyQt6-Qt6 PyQt6-sip
|
|
pip install PyQt6
|
|
```
|
|
|
|
### Problèmes avec l'OCR
|
|
|
|
Si l'OCR (Tesseract) ne fonctionne pas correctement :
|
|
1. Vérifiez que Tesseract est correctement installé et disponible dans le PATH
|
|
2. Pour Windows, vous devrez peut-être décommenter et modifier la ligne `pytesseract.pytesseract.tesseract_cmd` dans `utils/ocr.py`
|
|
|
|
### Ollama introuvable
|
|
|
|
Si Ollama n'est pas détecté, vérifiez que le service est bien démarré :
|
|
```bash
|
|
# Linux/macOS
|
|
ollama serve
|
|
|
|
# Windows
|
|
# Utilisez l'interface graphique ou exécutez le service Ollama
|
|
```
|
|
|
|
## Structure du projet
|
|
|
|
```
|
|
ragflow_pretraitement/
|
|
├── main.py # Point d'entrée principal
|
|
├── ui/ # Interface utilisateur
|
|
│ ├── viewer.py # Visualisation PDF et sélection
|
|
│ └── llm_config_panel.py # Configuration des agents
|
|
├── agents/ # Agents LLM
|
|
│ ├── base.py # Classe de base
|
|
│ ├── vision.py # Agent d'analyse visuelle
|
|
│ ├── summary.py # Agent de résumé
|
|
│ ├── translation.py # Agent de traduction
|
|
│ └── rewriter.py # Agent de reformulation
|
|
├── utils/ # Utilitaires
|
|
│ ├── ocr.py # Reconnaissance de texte
|
|
│ ├── markdown_export.py # Export en Markdown
|
|
│ └── api_ollama.py # Communication avec l'API Ollama
|
|
├── config/ # Configuration
|
|
│ └── llm_profiles.json # Profils des LLM
|
|
└── data/ # Données
|
|
└── outputs/ # Résultats générés
|
|
```
|
|
|
|
## Utilisation avancée
|
|
|
|
### Personnalisation des prompts
|
|
|
|
Les prompts par défaut peuvent être modifiés directement dans le code des agents (fichiers `agents/*.py`).
|
|
|
|
### Ajouter de nouveaux modèles
|
|
|
|
Pour ajouter un nouveau modèle, ajoutez-le dans `config/llm_profiles.json` et assurez-vous qu'il est disponible via Ollama.
|
|
|
|
## Limitations
|
|
|
|
- OCR parfois imprécis sur les documents complexes
|
|
- Certains modèles nécessitent beaucoup de mémoire GPU
|
|
- Les formules mathématiques complexes peuvent être mal interprétées
|
|
|
|
## Contribution
|
|
|
|
Les contributions sont les bienvenues ! N'hésitez pas à soumettre des pull requests ou à signaler des problèmes dans l'outil de suivi. |