2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00
2025-03-27 14:08:10 +01:00

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 :

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

  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 :

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é :

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

Description
No description provided
Readme 151 MiB
Languages
Python 78.5%
QML 11.3%
C++ 5.7%
C 3.8%
Cython 0.4%
Other 0.2%