Docling

Active
GitHub Python MIT

Description

Docling is an open-source document processing tool by IBM that converts PDF, Word, PPT, HTML and more into structured data for AI, purpose-built for GenAI and RAG pipelines.

Key Features

  • Multi-format document parsing — Supports PDF, DOCX, PPTX, XLSX, HTML, WAV, MP3, email, images, LaTeX, and more
  • Advanced PDF understanding — Page layout analysis, reading order detection, table structure extraction, formula recognition, and image classification
  • Unified DoclingDocument format — Expressive representation with export to Markdown, HTML, WebVTT, DocTags, and lossless JSON
  • Local execution capabilities — Runs locally for sensitive data and air-gapped environments with no external service dependencies
  • AI framework integrations — Plug-and-play integrations with LangChain, LlamaIndex, Crew AI, and Haystack for agentic AI workflows
  • OCR & VLM support — Extensive OCR for scanned PDFs and images, plus Visual Language Models like GraniteDocling

Use Cases

💡 Convert PDF academic papers to structured Markdown for direct import into RAG knowledge bases
💡 Batch process enterprise contract documents to extract tables, clauses, and key information in structured format
💡 Preprocess multi-format documents for LLM pipelines with unified AI-ready text output
💡 Parse specialized documents like patents, academic articles, and financial reports for structured data extraction
💡 Process sensitive documents in offline environments ensuring data never leaves local infrastructure

Strengths & Limitations

Strengths

  • Actively maintained, recent updates
  • High community interest (64.9k stars)
  • Permissive open-source license (MIT)
  • Established track record (2 years in production)

Categories

Quick Start

pip install docling

from docling.document_converter import DocumentConverter

# Convert a local file or URL
source = "https://arxiv.org/pdf/2408.09869"
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())

# CLI usage
docling https://arxiv.org/pdf/2206.01062

Related Projects

RAGatouille

4.0k · Python
Stale C

Easily use and train state of the art late-interaction retrieval methods (ColBERT) in any RAG pipeline. Designed for modularity and ease-of-use, backed by research.

ragpythonembedding +1
  • · ColBERT late-interaction retrieval: wraps advanced ColBERT models into simple APIs, enabling late-interaction retrieval methods in RAG pipelines without deep IR research knowledge
  • · End-to-end training and fine-tuning: built-in RAGTrainer and TrainingDataProcessor with automatic deduplication, positive/negative pairing and hard negative mining, supporting training from scratch or fine-tuning pretrained models
  • · Modular composable architecture: DataProcessor, NegativeMiner and other components can be used independently, with support for custom NegativeMiner integration into training pipelines

MemAgent

1.1k · Python
Stale B

A MemAgent framework that can extrapolate to 3.5M context tokens, along with a training framework for RL training of any agent workflow.

memoryagentrag +2
  • · Ultra-Long Context Processing: Extrapolate from 8K training context to 3.5M tokens with performance loss under 5%
  • · Reinforcement Learning Driven: Trained with RLVR (Reinforcement Learning from Verifiable Rewards), extends DAPO algorithm for end-to-end multi-turn conversation optimization
  • · Linear Time Complexity: Breaks through computational bottlenecks in long-text processing with linear resource scaling