From 448f4a6ca3aa63419328b182e34e9856122b618c Mon Sep 17 00:00:00 2001 From: Daniel Nguyen Date: Sat, 25 Jul 2026 18:33:25 +0800 Subject: [PATCH] feat: expose PDF heading-level inference in the service API Signed-off-by: Daniel Nguyen --- docling/datamodel/service/options.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docling/datamodel/service/options.py b/docling/datamodel/service/options.py index 7766763439..e342f7cb4c 100644 --- a/docling/datamodel/service/options.py +++ b/docling/datamodel/service/options.py @@ -21,6 +21,7 @@ # Import new engine system (available in docling>=2.73.0) from docling.datamodel.pipeline_options import ( CodeFormulaVlmOptions, + HeadingHierarchyOptions, PdfBackend, PictureDescriptionBaseOptions, PictureDescriptionVlmEngineOptions, @@ -489,6 +490,23 @@ class ConvertDocumentsOptions(BaseModel): ), ] = True + heading_hierarchy_options: Annotated[ + HeadingHierarchyOptions, + Field( + description=( + "Options for inferring section-header levels, for PDF and image inputs " + "processed by the standard pipeline. Disabled by default, in which case " + "every detected heading stays at level 1 and the document hierarchy is " + "flat. When enabled, levels are inferred from the PDF bookmarks / table " + "of contents, from outline numbering and from font style." + ), + examples=[ + HeadingHierarchyOptions(enabled=True), + HeadingHierarchyOptions(enabled=True, use_bookmarks=False, max_level=4), + ], + ), + ] = HeadingHierarchyOptions() + include_images: Annotated[ bool, Field(