Skip to main content

Modular Document AI Runtime for RAG and Markdown exports.

Project description

📄 Document AI Runtime

Un pipeline modulaire et extensible pour l'extraction de documents (OCR et Bureautique), conçu pour transformer des PDF, images et Word en formats structurés (Markdown et RAG).

Inspiré des capacités de solutions comme ABBYY, ce runtime repose sur une architecture de plugins indépendants manipulant un modèle de données canonique (DOM).

🚀 Fonctionnalités

  • Multi-Formats natifs et OCR :
    • Bureautique (Path B) : DOCX, XLSX (Excel), PPTX (PowerPoint) extraits nativement.
    • PDF Hybride : Extrait le calque texte natif, et bascule automatiquement sur l'OCR (Surya + Tesseract) pour les pages scannées.
    • Images (Path A) : JPG, PNG traités via IA (Surya Layout + Tesseract OCR).
  • Moteur XY-Cut : Algorithme récursif de coupe verticale/horizontale pour reconstruire l'ordre de lecture des documents multi-colonnes complexes.
  • Exports spécialisés : Markdown (structuré) et RAG (JSON chunké avec métadonnées).

📦 Installation

Installer la bibliothèque et ses dépendances :

```bash
pip install -e .

🛠 Architecture

Le projet est construit autour de 4 piliers :

  1. Le DOM (Document Object Model) : Des classes Python (Document, Page, Region, Block, Table, Cell) qui modélisent le document de bout en bout.
  2. Les Interfaces : IDocumentLoader et IDocumentPlugin garantissent que tous les modules (Surya, Tesseract, python-docx) communiquent avec le même langage.
  3. Les Plugins : Chaque étape (chargement, layout, OCR) est un module interchangeable dans src/plugins/. Remplacer Surya par un autre moteur de layout n'impacte pas le reste du code.
  4. Le Pipeline Runner : L'orchestrateur qui détecte le type de fichier et exécute le bon chemin (A ou B) automatiquement.

📦 Installation

1. Prérequis Python

Clonez le dépôt et installez les dépendances Python : ```bash pip install python-docx pytesseract Pillow PyMuPDF surya-ocr

2. Dépendances Système

Tesseract OCR :
	Windows : Téléchargez l'installeur sur UB-Mannheim et ajoutez-le au PATH.
	Linux : sudo apt install tesseract-ocr
Surya OCR (Optionnel) : Nécessite llama.cpp pour fonctionner. Le runner peut fonctionner avec Tesseract seul si Surya n'est pas configuré.

🏃 Utilisation

Le runtime s'utilise via le script test_runtime.py (ou votre propre script) qui appelle le PipelineRunner.

from src.core.pipeline.runner import PipelineRunner

runner = PipelineRunner()

Pour un PDF ou une Image -> Export Markdown

result_md = runner.process("mon_document.pdf", export_mode="markdown")
print(result_md)

Pour un Word -> Export RAG

result_rag = runner.process("mon_document.docx", export_mode="rag")
print(result_rag)

🏃 Utilisation (CLI)

python main.py --file mon_document.pdf --export markdown

🗂 Structure du dépôt

doc-ai-runtime/
├── src/
│   ├── core/               # Le cœur (DOM, Interfaces, Runner)
│   │   ├── dom/            # Modèles de données (Document, Page, Block...)
│   │   └── pipeline/       # Orchestrateur (runner.py)
│   ├── plugins/            # Les briques interchangeables
│   │   ├── loaders/        # ImageLoader, PdfLoader, DocxLoader
│   │   ├── layout/         # SuryaLayoutPlugin
│   │   └── ocr/           # TesseractOCRPlugin
│   └── exporters/         # MarkdownExporter, RagExporter
├── test_runtime.py         # Script de démonstration
└── README.md

🗺 Feuille de route (Roadmap)

 Document Object Model (DOM)
 Loaders (DOCX, Images, PDF)
 Layout Analysis (Surya) & OCR (Tesseract)
 Exporters Markdown et RAG
 Image Quality Analyzer (pré-traitement des scans)
 Amélioration du moteur d'ordre de lecture (Reading Order Engine)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doc_ai_runtime-0.1.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doc_ai_runtime-0.1.0-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file doc_ai_runtime-0.1.0.tar.gz.

File metadata

  • Download URL: doc_ai_runtime-0.1.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for doc_ai_runtime-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a62700af3b6af56ac28331266f284b694c98149f0d39970fd12b6e2409291209
MD5 c581ea094f7e03e7f47cfc6e9747740c
BLAKE2b-256 9696c1503f948d19433110d32388226b53a3afa045afd1481775f0c32c235887

See more details on using hashes here.

File details

Details for the file doc_ai_runtime-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: doc_ai_runtime-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for doc_ai_runtime-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5c24a38aa52d67733bb683c9257e17523a09fc655e5ff20ec0c5528f02e2294
MD5 c3cc7a3d2eae2be76a51b8081623600a
BLAKE2b-256 c92dcdb1256c95abacabe95c452dfa507a7dbc8bf6ccbebfc782b199845c9261

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page