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 :
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 :
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
- 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/
Modèles recommandés à télécharger :
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 :
ragflow-pretraitement
Ou manuellement :
cd ragflow_pretraitement
python main.py
Processus typique
- Charger un PDF avec le bouton "Charger PDF"
- Naviguer entre les pages avec les boutons ou le sélecteur
- Sélectionner une zone d'intérêt avec la souris
- Choisir le type de contenu (schéma, tableau, formule...)
- Ajouter un contexte textuel si nécessaire
- Configurer les agents LLM dans l'onglet "Agents LLM"
- Appliquer l'agent sur la sélection
- 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 :
pip uninstall PyQt6 PyQt6-Qt6 PyQt6-sip
pip install PyQt6
Problèmes avec l'OCR
Si l'OCR (Tesseract) ne fonctionne pas correctement :
- Vérifiez que Tesseract est correctement installé et disponible dans le PATH
- Pour Windows, vous devrez peut-être décommenter et modifier la ligne
pytesseract.pytesseract.tesseract_cmddansutils/ocr.py
Ollama introuvable
Si Ollama n'est pas détecté, vérifiez que le service est bien démarré :
# 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.