Docling : convertir des PDF pour une IA locale
Docling est une bibliothèque libre (licence MIT, projet IBM Research hébergé par la LF AI & Data Foundation) qui convertit PDF, DOCX, PPTX, XLSX, HTML, EPUB, images et audio en markdown ou JSON structuré, en reconstruisant la mise en page, l'ordre de lecture et les tableaux. Elle tourne entièrement en local, avec ou sans GPU, et se branche directement sur LangChain, LlamaIndex, Crew AI ou Haystack pour alimenter un pipeline de RAG documentaire.
Le PDF est l'entrée la plus difficile de toute chaîne documentaire locale : deux colonnes lues en travers, un en-tête qui coupe une phrase en deux, un tableau de chiffres réduit à une colonne de nombres sans leurs intitulés. Docling est une bibliothèque libre publiée par IBM Research, aujourd'hui hébergée par la LF AI & Data Foundation, qui analyse la mise en page, reconstruit l'ordre de lecture et récupère la structure des tableaux, puis exporte le tout en markdown, HTML ou JSON. Le tout sur votre machine, sans API — ce qui est précisément la contrainte quand les documents sont des contrats ou des dossiers médicaux.
#L'étape qui décide de tout le reste
Quand un assistant documentaire répond mal, on accuse le modèle. La cause est presque toujours en amont. Un rapport exporté depuis un gabarit d'entreprise, passé dans un extracteur de texte naïf, devient un flux où l'en-tête de page interrompt un paragraphe, où la mise en deux colonnes est lue horizontalement, et où un tableau de résultats se transforme en suite de nombres orphelins. Ces morceaux sont ensuite encodés, retrouvés, et présentés au modèle comme des faits : il lit une absurdité et la restitue avec assurance. Aucun modèle d'embedding, aucun reranker et aucun prompt ne rattrape une conversion ratée en amont de la chaîne — c'est le point que la plupart des tutoriels de RAG local passent sous silence en se concentrant sur le choix du modèle de langage.
Docling s'attaque directement à cette étape négligée. Le projet a été publié en open source par IBM Research en juillet 2024 sous licence MIT, ce qui autorise un usage commercial sans redevance ni copyleft. Il a rapidement dépassé 10 000 étoiles sur GitHub et figurait début 2025 parmi les dépôts les plus suivis au monde ; fin septembre 2026, le dépôt officiel comptait plus de 68 000 étoiles et sa dernière version stable, la v2.130.0, avait été publiée le 22 septembre 2026.
#Ce que fait Docling
Tes documents, ton IA : un RAG local fiable sur tes PDF, notes et mails — sans rien envoyer dans le cloud.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
- Analyse de mise en page
- Identifie les zones d'une page et leur nature, pour qu'une légende ne se colle pas à un paragraphe et qu'un pied de page n'apparaisse pas au milieu d'une phrase.
- Ordre de lecture
- Reconstitue la séquence qu'un humain suivrait, ce qui rend enfin exploitables les documents en colonnes.
- Structure des tableaux
- Retrouve lignes, colonnes et cellules fusionnées, et les exporte comme de vrais tableaux plutôt que des lignes de texte.
- Reconnaissance optique au besoin
- Les pages scannées sans couche de texte passent par l'OCR au lieu d'être ingérées à vide.
- Compréhension des graphiques
- Camemberts, histogrammes et courbes peuvent être convertis en tableaux de données ou en description textuelle, plutôt que d'être purement ignorés.
- Un modèle de document unique
- Une représentation interne commune, plusieurs formats d'export (markdown, HTML, DocTags, JSON sans perte) : le reste de la chaîne ignore si l'entrée était un PDF ou un fichier bureautique.
Au-delà du PDF, Docling prend en charge DOCX, PPTX, XLSX, HTML, EPUB, les images (PNG, TIFF, JPEG…), les emails (EML, MSG) et même l'audio (WAV, MP3) via un pipeline de transcription — ce qui compte, parce qu'un corpus réel n'est jamais homogène. Côté intégrations, la bibliothèque se branche en quelques lignes sur LangChain, LlamaIndex, Crew AI et Haystack, ce qui évite d'écrire soi-même le code de conversion dans un pipeline agentique.
#Les tableaux, la vraie raison de s'embêter
Dans un document professionnel, les chiffres vivent presque toujours dans des tableaux, et c'est là que l'extraction naïve échoue le plus durement. Une ligne qui devient « Paris 12 480 3,2 » a perdu les intitulés de colonnes qui lui donnaient un sens. La recherche renvoie ensuite un extrait d'apparence correcte, le modèle invente la relation entre les valeurs, et la réponse est fausse d'une manière difficile à repérer.
Docling confie cette tâche à un modèle dédié, TableFormer, qui encode la structure du tableau avec un vocabulaire spécialisé baptisé OTSL (Optimized Table Structure Language) et gère correctement les cellules fusionnées et les en-têtes multi-niveaux. D'après le papier de recherche à l'origine de ce format, OTSL ramène à une poignée de tokens ce qu'une représentation HTML équivalente exprime avec plus de 28 tokens, ce qui raccourcit d'environ moitié la longueur moyenne de séquence à prédire et divise par deux le temps d'inférence par rapport à un modèle qui produirait du HTML — un détail d'architecture invisible pour l'utilisateur final, mais qui explique pourquoi la reconnaissance de tableaux de Docling reste utilisable sur de gros volumes sans GPU dédié à ce seul usage. Deux modes sont disponibles dans les options du pipeline : FAST, plus rapide mais moins précis sur les tableaux complexes, et ACCURATE, recommandé dès que les tableaux comptent des cellules fusionnées ou plusieurs niveaux d'en-tête. Conserver la structure, même en markdown, maintient le lien entre chaque valeur et son intitulé. Sur un corpus où les réponses attendues sont des chiffres, cela justifie à soi seul un convertisseur plus lourd qu'un simple extracteur de texte.
#Les moteurs OCR disponibles
Docling n'embarque pas un moteur OCR unique : il orchestre plusieurs moteurs interchangeables selon le type de document. EasyOCR et Tesseract (via tesserocr ou en ligne de commande) couvrent la majorité des cas ; RapidOCR accepte des modèles personnalisés ; OcrMac exploite la reconnaissance native de macOS quand elle est disponible. Le choix se fait dans les options du pipeline, pas dans le code de votre application, ce qui permet de changer de moteur sans retoucher la logique d'ingestion.
En pratique, un pipeline d'ingestion de production commence presque toujours par tester Tesseract sur un échantillon : s'il produit un texte propre, il n'y a aucune raison de payer le coût d'EasyOCR. Le passage à EasyOCR se justifie surtout sur des scans dégradés, des formulaires manuscrits partiels ou des langues où Tesseract décroche. RapidOCR et OcrMac restent des choix de niche, réservés respectivement à un modèle OCR maison déjà entraîné et à un poste Mac isolé sans dépendance externe à installer.
| Moteur | Point fort | Cas d'usage typique |
|---|---|---|
| Tesseract | Rapide sur du texte net | Documents numériques déjà scannés proprement |
| EasyOCR | Plus robuste sur les scans dégradés et l'écriture non standard, GPU optionnel via use_gpu | Archives, formulaires, corpus hétérogènes |
| RapidOCR | Accepte des modèles personnalisés | Besoins spécifiques (langue rare, domaine spécialisé) |
| OcrMac | Utilise le moteur natif de macOS, sans dépendance supplémentaire | Poste de travail Mac, petits volumes |
#Le découpage qui suit la structure
Point que la plupart des guides de RAG local n'expliquent pas : Docling ne se contente pas de convertir, il propose aussi un découpage adapté à ce qu'il vient de reconstruire. Son HybridChunker part de la hiérarchie du document (titres, sections) puis ajuste la taille de chaque morceau sur le tokenizer réel du modèle d'embedding choisi : les blocs trop longs sont coupés au niveau des éléments plutôt qu'au milieu d'une phrase, et les blocs trop courts qui partagent le même titre sont fusionnés. Le tokenizer fourni doit être aligné sur celui du modèle d'embedding utilisé en aval, faute de quoi la taille réelle des morceaux (en tokens) ne correspond plus à ce que l'index vectoriel attend. C'est un découpage par structure, à comparer à un découpage par blocs de caractères qui ignore où tombent les phrases : voir notre guide sur les stratégies de chunking pour les compromis entre les deux approches.
#Ce que ça coûte en calcul
| Configuration | Débit | Quand ça suffit |
|---|---|---|
| Processeur seul, sans OCR | Le plus lent : quelques secondes par page complexe | Petits corpus, conversions ponctuelles |
| Processeur seul, avec OCR | Plus lent encore, l'OCR domine | Quelques documents scannés |
| Avec GPU | Nettement plus rapide sur l'analyse de page, les tableaux et l'OCR EasyOCR | Milliers de pages, ingestion répétée |
La conséquence pratique : on convertit par lots, une fois, et on garde le résultat. Réindexer n'a de sens que si la source change. Et sur une machine qui sert aussi un modèle de langage, les deux se disputent le même GPU via les options d'accélération du pipeline : ingérer un corpus pendant que des utilisateurs posent des questions ralentit les deux.
#Sa place dans la chaîne
- 01ConvertirDocling transforme vos fichiers en markdown ou JSON structuré, avec les tableaux intacts.
- 02DécouperAvec le HybridChunker, en suivant la structure retrouvée et le tokenizer du modèle d'embedding, plutôt que tous les mille caractères. C'est ici que le convertisseur est rentabilisé une deuxième fois.
- 03Encoder et stockerUn modèle d'embedding local transforme les morceaux en vecteurs, rangés dans une base vectorielle comme Qdrant.
- 04RépondreUn modèle local rédige à partir des passages retrouvés, via Ollama ou un serveur d'inférence local.
- Stocker les vecteurs dans Qdrant
- Comparer les stratégies de chunking
- Une application clé en main pour discuter avec ses documents
- Cas particulier : extraire des données de factures
- Tesseract seul : un OCR plus simple pour du texte propre
- Le kit RAG local QuelLLM : tous les composants sur une page
- Source : dépôt officiel Docling sur GitHub
- Source : options du pipeline Docling (OCR, TableFormer)
- Source : documentation du HybridChunker
#Là où ça coince encore
- Les scans de mauvaise qualité
- La précision de l'OCR sur une photocopie de travers est une limite physique, pas logicielle.
- Les mises en page très graphiques
- Magazines, texte habillant une figure, formulaires : difficiles pour tous les convertisseurs.
- L'écriture manuscrite
- Hors du périmètre de cette catégorie d'outils.
- Les graphiques complexes
- La compréhension de graphiques couvre les cas courants (camembert, barres, courbes) ; un graphique très spécifique — carte, diagramme technique, schéma d'architecture — peut encore n'être restitué que par sa légende, sans les valeurs sous-jacentes.
- Le coût d'entrée
- Installer les modèles de mise en page, de tableaux et d'OCR représente plusieurs gigaoctets de téléchargement au premier lancement ; sur une machine isolée sans accès réseau, il faut les récupérer au préalable.
#FAQ
Docling est-il gratuit ?+
Faut-il un GPU ?+
Sait-il lire les PDF scannés ?+
Quelle différence entre les modes FAST et ACCURATE de TableFormer ?+
Docling ou un simple extracteur de texte ?+
Docling s'intègre-t-il avec LangChain ou LlamaIndex ?+
Les données sortent-elles de ma machine ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.