# 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.