Accueil / Docs / Manuel Technique

Documentation Technique Complète de Docling

Résumé Rapide (TL;DR)
  • Docling est un moteur 100% gratuit et open-source (MIT) qui convertit les PDFs, DOCX, PPTX, XLSX, images et audio en Markdown, HTML et JSON structurés.
  • Intègre l'analyse visuelle de mise en page, la restauration de l'ordre de lecture et le modèle TableFormer v2 pour les tableaux complexes.
  • Supporte l'OCR multilingue via RapidOCR, Tesseract (tesserocr), EasyOCR et OcrMac.
  • Fonctionne 100% en local sans télémétrie, supportant les réseaux isolés (Air-Gapped), l'API REST (docling-serve) et le serveur MCP (docling-mcp).

1. Aperçu et Architecture

Docling est un moteur open-source de conversion de documents créé par IBM Research et hébergé sous LF AI & Data. Contrairement aux extracteurs de texte basiques, Docling utilise des pipelines modulaires pour analyser la géométrie des pages, détecter les boîtes englobantes, reconstruire les tableaux avec cellules fusionnées et ordonner logiquement le texte pour les LLM et le RAG.

2. Installation et Configuration

Docling s'installe sur Python 3.9 à 3.14 (64-bit) sous Windows, macOS et Linux via pip ou uv :

bash — installation standard
$pip install docling

2.1 Configuration Windows 10/11 et Outils C++

Sous Windows, Python 64-bit est requis. Lors de la compilation d'extensions C++ natives (comme tesserocr), Microsoft Visual C++ 14.0+ est nécessaire :

Installation de Visual C++ Build Tools
Exécutez dans PowerShell en tant qu'Administrateur :
PS>winget install Microsoft.VisualStudio.2022.BuildTools --override "--passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

Alternative recommandée (sans compilateur C++) : Utilisez Astral uv pour installer directement des binaires précompilés :

powershell — astral uv
PS>uv add docling

3. Guide de Démarrage Rapide

python — conversion de base
from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("https://arxiv.org/pdf/2408.09869")
print(result.document.export_to_markdown()[:500])
              

4. Modèle de Données DoclingDocument

L'objet principal DoclingDocument maintient une structure arborescente des titres, tableaux, blocs de code et figures avec leurs coordonnées exactes, exportable via result.document.export_to_json().

5. Pipelines de Traitement et Granite Docling VLM

5.1 Configuration de Granite Docling VLM

python — granite docling vlm
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import VlmPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption

vlm_options = VlmPipelineOptions()
vlm_options.vlm_model = "granite_docling"

converter = DocumentConverter(
    format_options={InputFormat.PDF: PdfFormatOption(pipeline_options=vlm_options)}
)
result = converter.convert("document.pdf")
              

6. Moteurs OCR et Optimisation

6.1 Désactiver l'OCR pour les PDF Numériques (10x plus rapide)

python — désactiver ocr
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import PdfPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption

pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = False  # 10x plus rapide pour les PDF numériques

converter = DocumentConverter(
    format_options={InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)}
)
result = converter.convert("rapport.pdf")
              

7. Extraction Multi-Format (Excel XLSX, PowerPoint PPTX, CAD & Audio)

python — parser excel et powerpoint
from docling.document_converter import DocumentConverter

converter = DocumentConverter()
excel_res = converter.convert("finance.xlsx")
print(excel_res.document.export_to_markdown())
              

8. Segmentation RAG avec `HybridChunker`

python — hybridchunker pour RAG
from docling.document_converter import DocumentConverter
from docling.chunking import HybridChunker

converter = DocumentConverter()
result = converter.convert("article.pdf")

chunker = HybridChunker(max_tokens=512, merge_peers=True)
for chunk in chunker.chunk(result.document):
    print(chunk.meta.headings, chunk.text[:80])
              

9. Accélération GPU et Traitement par Lots

python — accélération gpu
from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions
from docling.datamodel.pipeline_options import ThreadedPdfPipelineOptions

accel = AcceleratorOptions(device=AcceleratorDevice.CUDA)
pipe_opts = ThreadedPdfPipelineOptions(accelerator_options=accel, page_batch_size=8)
              

10. Intégrations avec Frameworks (LangChain & LlamaIndex)

python — langchain docling
from langchain_docling import DoclingLoader

loader = DoclingLoader(file_path="rapport.pdf")
docs = loader.load()
              

11. Catalogue de Modèles VLM

Modèle Fournisseur Usage Principal Paramètre CLI
granite_docling IBM Research Extraction visuelle haute précision de PDF --vlm-model granite_docling
smoldocling Hugging Face / IBM VLM léger et rapide sur CPU --vlm-model smoldocling

12. Serveur FastAPI (`docling-serve`) & Serveur MCP

bash — docker docling-serve
$docker run -p 5001:5001 ghcr.io/docling-project/docling-serve:latest

12.1 Configuration MCP pour Claude Desktop

json — claude_desktop_config.json
{
  "mcpServers": {
    "docling": {
      "command": "uvx",
      "args": ["--from=docling-mcp", "docling-mcp-server"]
    }
  }
}
              

13. Sécurité d'Entreprise et Déploiement Air-Gapped

bash — environnement hors-ligne
export DOCLING_CACHE_DIR="/opt/docling_models"
docling-tools models download --all

export HF_HUB_OFFLINE=1
export DOCLING_CACHE_DIR="/opt/docling_models"
docling document.pdf --to md
              

14. Diagnostic et Résolution des Problèmes

Erreur / Symptôme Cause Solution
cannot import name 'BoundingBox' Migration du schéma dans Docling v2. Importer depuis from docling_core.types.doc import BoundingBox.
RapidOCR : text detection result empty Résolution de scan insuffisante. Définir pipeline_options.images_scale = 2.0 pour augmenter le DPI.
Vérifier la version installée Contrôle de version. Exécuter docling --version dans le terminal.

15. Référence Complète des Paramètres CLI

Option / Argument Type Défaut Description
--to md, json, html, doctags md Format d'exportation cible du document.
--no-ocr Booléen - Désactive l'OCR pour accélérer le traitement des PDF numériques.
--version Flag - Affiche la version installée de Docling.