ragflow_preprocess/README.md
2025-03-27 14:08:10 +01:00

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.