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 VLM :
    • Bureautique (Path B) : DOCX, XLSX (Excel), PPTX (PowerPoint) extraits nativement.
    • PDF Hybride : Extrait le calque texte natif, et bascule automatiquement sur la vision IA (Ollama) pour les pages scannées.
    • Images (Path A) : JPG, PNG traités via Qwen2.5-VL (VLM) qui comprend le layout et génère du Markdown directement.
  • Exports spécialisés : Markdown (structuré) et RAG (JSON chunké avec métadonnées).

📦 Installation

1. Prérequis Python

Installer la bibliothèque et ses dépendances :

```bash
pip install -e .
(Dépendances : python-docx, openpyxl, python-pptx, PyMuPDF, Pillow, ollama)
  1. Dépendances Système : Ollama

    Ce runtime utilise Ollama pour l'OCR et la vision.

Installez Ollama.

Téléchargez le modèle de vision Qwen :
ollama pull qwen2.5vl:7b
Assurez-vous que le serveur Ollama tourne en arrière-plan (ollama serve).

🏃 Utilisation

Le runtime s'utilise via une interface en ligne de commande ou en l'important comme une bibliothèque.

CLI

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

Bibliothèque

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)

🛠 Architecture

Le projet est construit autour de 4 piliers :

Le DOM (Document Object Model) : Des classes Python (Document, Page, Region, Block, Table, Cell) qui modélisent le document.
Les Interfaces : IDocumentLoader et IDocumentPlugin garantissent que tous les modules communiquent avec le même langage.
Les Plugins : Chaque étape (chargement, OCR) est un module interchangeable dans src/plugins/.
Le Pipeline Runner : L'orchestrateur qui détecte le type de fichier et exécute le bon chemin (A ou B) automatiquement.

🗂 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, XlsxLoader, PptxLoader
│   │   └── ocr/           # QwenOCRPlugin (Ollama VLM)
│   └── exporters/         # MarkdownExporter, RagExporter
├── main.py                 # Interface CLI
└── README.md

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.2.0.tar.gz (14.9 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.2.0-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doc_ai_runtime-0.2.0.tar.gz
  • Upload date:
  • Size: 14.9 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.2.0.tar.gz
Algorithm Hash digest
SHA256 00f3eb1bf0c6781cd7d16f093e4ea1c88f75a462de9b12b43a0b90c47447c680
MD5 cf4af2bb71882d9c023bca05cfb7597b
BLAKE2b-256 5fbfda2abb5d74213bebb40e906f3bbcd5d6a5e205dfef0f510bb14050cf4420

See more details on using hashes here.

File details

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

File metadata

  • Download URL: doc_ai_runtime-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.3 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8744d7ade2e04945ad4b2b1f326af804bd36b4d074dbfb5183a331973709547
MD5 e5597e30471b5a7bf35f52df4a62945f
BLAKE2b-256 b24360bea0d791187b4000d438f152f22596c0549151d5d7772a124fb56a6bd5

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