Skip to content

About

Docling core data types and transformations

Resources

Code of conduct

Contributing

Security policy

Stars

294 stars

Watchers

8 watching

Forks

Repository files navigation

Docling Core

PyPI version Python uv Ruff Pydantic v2 prek License MIT

Docling Core is a library that defines core data types and transformations in Docling.

Installation

To use Docling Core, simply install docling-core from your package manager, e.g. pip:

pip install docling-core

Development setup

To develop for Docling Core, you need Python 3.10 through 3.14 and the uv package. You can then install it from your local clone's root directory:

uv sync --all-extras

To run the pytest suite, execute:

uv run pytest -s test

Main features

Docling Core provides the foundational DoclingDocument data model and API, as well as additional APIs for tasks like serialization and chunking, which are key to developing generative AI applications using Docling.

DoclingDocument

Docling Core defines the DoclingDocument as a Pydantic model, allowing for advanced data model control, customizability, and interoperability.

In addition to specifying the schema, it provides a handy API for building documents, as well as for basic operations, e.g. exporting to various formats, like Markdown, HTML, and others.

👉 More details:

Serialization

Different users can have varying requirements when it comes to serialization. To address this, the Serialization API introduces a design that allows easy extension, while providing feature-rich built-in implementations (on which the respective DoclingDocument helpers are actually based).

👉 More details:

Chunking

Similarly to above, the Chunking API provides built-in chunking capabilities as well as a design that enables easy extension, this way tackling customization requirements of different use cases.

👉 More details:

Profiling

The Profiling API enables extraction of comprehensive statistics from DoclingDocument objects, both for individual documents and collections. It provides metrics on document structure (pages, tables, pictures, text items) along with statistical distributions (deciles, histograms) and visualization capabilities for analyzing document collections at scale.

👉 More details:

Configuration

Runtime settings are read from environment variables with the DOCLINGCORE_ prefix, or set in code via docling_core.utils.settings.settings.

Local image files

Images in a DoclingDocument may reference a local file, either as a filesystem path or as a file:// URI. Since such documents may come from untrusted sources, docling-core does not read these files by default, and raises a ValueError instead. This affects, for example, documents saved with ImageRefMode.REFERENCED and loaded again.

For trusted documents, either enable it globally:

export DOCLINGCORE_ALLOW_IMAGE_FILE_URI=true
from docling_core.utils.settings import settings

settings.allow_image_file_uri = True

or per document, reading its local images into memory at load time:

from docling_core.types.doc import DoclingDocument

doc = DoclingDocument.load_from_json("doc.json", allow_local_images=True)
# or, for a document obtained otherwise:
doc.load_local_images(base_dir=...)

Contributing

Please read Contributing to Docling Core for details.

References

If you use Docling Core in your projects, please consider citing the following:

@techreport{Docling,
  author = "Deep Search Team",
  month = 8,
  title = "Docling Technical Report",
  url = "https://arxiv.org/abs/2408.09869",
  eprint = "2408.09869",
  doi = "10.48550/arXiv.2408.09869",
  version = "1.0.0",
  year = 2024
}

License

The Docling Core codebase is under MIT license. For individual model usage, please refer to the model licenses found in the original packages.

About

Docling core data types and transformations

Resources

Code of conduct

Contributing

Security policy

Stars

294 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages