mirror of
https://github.com/docling-project/docling.git
synced 2025-11-05 05:12:56 +00:00
* adding granite-docling preview Signed-off-by: Peter Staar <taa@zurich.ibm.com> * updated the model specs Signed-off-by: Peter Staar <taa@zurich.ibm.com> * typo Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * use granite-docling and add to the model downloader Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * update docs and README Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * Update final repo_ids for GraniteDocling Signed-off-by: Christoph Auer <cau@zurich.ibm.com> * Update final repo_ids for GraniteDocling Signed-off-by: Christoph Auer <cau@zurich.ibm.com> * Fix model name in CLI usage example Signed-off-by: Christoph Auer <60343111+cau-git@users.noreply.github.com> * Fix VLM model name in README.md Signed-off-by: Christoph Auer <60343111+cau-git@users.noreply.github.com> --------- Signed-off-by: Peter Staar <taa@zurich.ibm.com> Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> Signed-off-by: Christoph Auer <cau@zurich.ibm.com> Signed-off-by: Christoph Auer <60343111+cau-git@users.noreply.github.com> Co-authored-by: Peter Staar <taa@zurich.ibm.com> Co-authored-by: Michele Dolfi <dol@zurich.ibm.com>
71 lines
2.1 KiB
Python
Vendored
71 lines
2.1 KiB
Python
Vendored
# %% [markdown]
|
|
# Minimal VLM pipeline example: convert a PDF using a vision-language model.
|
|
#
|
|
# What this example does
|
|
# - Runs the VLM-powered pipeline on a PDF (by URL) and prints Markdown output.
|
|
# - Shows two setups: default (Transformers/SmolDocling) and macOS MPS/MLX.
|
|
#
|
|
# Prerequisites
|
|
# - Install Docling with VLM extras and the appropriate backend (Transformers or MLX).
|
|
# - Ensure your environment can download model weights (e.g., from Hugging Face).
|
|
#
|
|
# How to run
|
|
# - From the repository root, run: `python docs/examples/minimal_vlm_pipeline.py`.
|
|
# - The script prints the converted Markdown to stdout.
|
|
#
|
|
# Notes
|
|
# - `source` may be a local path or a URL to a PDF.
|
|
# - The second section demonstrates macOS MPS acceleration via MLX (`vlm_model_specs.SMOLDOCLING_MLX`).
|
|
# - For more configurations and model comparisons, see `docs/examples/compare_vlm_models.py`.
|
|
|
|
# %%
|
|
|
|
from docling.datamodel import vlm_model_specs
|
|
from docling.datamodel.base_models import InputFormat
|
|
from docling.datamodel.pipeline_options import (
|
|
VlmPipelineOptions,
|
|
)
|
|
from docling.document_converter import DocumentConverter, PdfFormatOption
|
|
from docling.pipeline.vlm_pipeline import VlmPipeline
|
|
|
|
# Convert a public arXiv PDF; replace with a local path if preferred.
|
|
source = "https://arxiv.org/pdf/2501.17887"
|
|
|
|
###### USING SIMPLE DEFAULT VALUES
|
|
# - GraniteDocling model
|
|
# - Using the transformers framework
|
|
|
|
converter = DocumentConverter(
|
|
format_options={
|
|
InputFormat.PDF: PdfFormatOption(
|
|
pipeline_cls=VlmPipeline,
|
|
),
|
|
}
|
|
)
|
|
|
|
doc = converter.convert(source=source).document
|
|
|
|
print(doc.export_to_markdown())
|
|
|
|
|
|
###### USING MACOS MPS ACCELERATOR
|
|
# Demonstrates using MLX on macOS with MPS acceleration (macOS only).
|
|
# For more options see the `compare_vlm_models.py` example.
|
|
|
|
pipeline_options = VlmPipelineOptions(
|
|
vlm_options=vlm_model_specs.GRANITEDOCLING_MLX,
|
|
)
|
|
|
|
converter = DocumentConverter(
|
|
format_options={
|
|
InputFormat.PDF: PdfFormatOption(
|
|
pipeline_cls=VlmPipeline,
|
|
pipeline_options=pipeline_options,
|
|
),
|
|
}
|
|
)
|
|
|
|
doc = converter.convert(source=source).document
|
|
|
|
print(doc.export_to_markdown())
|