Docling · PDF · OCR · RAG · MCP · локальный ИИ

Docling: как локально превратить PDF, DOCX и таблицы в Markdown для LLM и RAG

Перед тем как отдавать документы локальной или облачной LLM, их нужно нормально разобрать: сохранить заголовки, таблицы, порядок блоков, формулы и структуру страниц. Docling — open-source toolkit, который конвертирует PDF, Word, PowerPoint, Excel, HTML, изображения и другие форматы в единое структурированное представление, а затем экспортирует его в Markdown, JSON, chunks и другие форматы для AI-пайплайнов.

2.129.0 актуальный Docling release на момент проверки
Python 3.10–3.14 Windows, Linux и macOS, x86_64 и arm64
MIT open-source SDK и CLI, отдельный MCP server тоже MIT
Document understanding

Docling не просто вытаскивает текст — он строит структурированное представление документа

Если просто прогнать PDF через обычный text extractor, можно потерять порядок колонок, заголовки, таблицы, подписи и связь между элементами страницы. Docling сначала строит внутренний DoclingDocument, в котором сохраняются hierarchy и layout, а уже потом экспортирует результат.

ДокументPDF · DOCX · XLSX · PPTX
→
Docling pipelinelayout · OCR · tables · structure
→
DoclingDocumentединое представление
→
Markdown / JSON / chunksдля человека и AI
01 Иерархия документа

Заголовки, списки, paragraphs и другие blocks сохраняются как структура, а не плоский текст.

02 Layout-aware

Для PDF учитывается расположение объектов на странице и reading order.

03 Table structure

Таблица распознаётся как таблица и может быть экспортирована отдельно.

04 AI-ready output

Markdown и chunks можно сразу отдавать в LLM/RAG без самодельного PDF parser.

Поддерживаемые входы и выходы

Docling давно вышел за пределы одного PDF

Office DOCX · XLSX · PPTX

Современные Microsoft Office документы.

Legacy Office DOC · XLS · PPT · RTF

Поддерживаются через LibreOffice backend.

Documents PDF · EPUB · HTML · Markdown · LaTeX

Плюс AsciiDoc, MHTML/MHT и ряд XML-форматов.

OpenDocument ODT · ODS · ODP

Текст, таблицы и презентации OpenDocument.

Images Сканы и изображения

Могут обрабатываться через OCR или VLM pipeline.

Specialized XBRL · JATS · USPTO · EBCDIC

Есть backends для специализированных enterprise/scientific форматов.

Основные output formats

mdMarkdown

Удобный формат для LLM и ручного просмотра.

jsonDocling JSON

Lossless serialization структуры документа.

chunksJSONL chunks

Готовый выход для RAG ingestion.

htmlHTML

Структурированный визуальный export.

textPlain text

Если структура Markdown не нужна.

latexLaTeX

Для scientific/document workflows.

Windows · Linux · macOS

Установка Docling 2.129.0

Официальный пакет работает на Windows, Linux и macOS. Python requirement текущей версии — 3.10–3.14.

python -m venv .venv

# Windows PowerShell
.\.venv\Scripts\Activate.ps1

pip install docling==2.129.0

Если используете uv:

uv add docling==2.129.0
Docling использует PyTorch для части моделей.

На CPU-only сервере может быть выгоднее заранее установить CPU-сборку PyTorch. На GPU-системе — подходящую CUDA/accelerator сборку под ваше железо.

Без программирования

Один PDF можно превратить в Markdown одной командой

docling convert document.pdf --to md

В актуальном CLI Markdown — output по умолчанию.

Markdown + JSON

docling convert document.pdf \
  --to md \
  --to json \
  --output ./result

Папка документов

docling convert ./documents \
  --from pdf \
  --from docx \
  --to md \
  --output ./converted

Без OCR

docling convert document.pdf --no-ocr
Не включайте тяжёлые режимы без причины.

Если PDF уже содержит хороший text layer, принудительный OCR только увеличит время и может ухудшить текст.

Python SDK

Конвертация документа из Python

from docling.document_converter import DocumentConverter

converter = DocumentConverter()

result = converter.convert("document.pdf")

markdown = result.document.export_to_markdown()

print(markdown)

В отличие от CLI здесь у вас остаётся сам DoclingDocument. Можно отдельно обходить tables, pictures, headings и другие элементы, а не работать только с финальным Markdown.

export_to_markdown()

Markdown для LLM и человека.

export_to_dict()

Структура документа в Python/JSON.

tables

Доступ к распознанным таблицам отдельно от текста.

pictures

Работа с картинками, captions и enrichment.

Одна из сильных сторон

Таблицу из PDF можно получить как DataFrame, CSV или HTML

Для технических паспортов, прайс-листов, отчётов и документации это важнее обычного «вытащить весь текст».

from docling.document_converter import DocumentConverter

result = DocumentConverter().convert("report.pdf")

for index, table in enumerate(result.document.tables):
    df = table.export_to_dataframe()

    df.to_csv(
        f"table_{index}.csv",
        index=False
    )
fast Быстрее

Когда качество table structure менее критично.

accurate Точнее

Default CLI mode для table structure recognition.

Сложные таблицы всё равно нужно проверять.

Merged cells, многоуровневые headers, повернутый текст и плохой scan способны привести к ошибкам даже у хорошего parser.

Сканированные документы

Docling поддерживает несколько OCR engines

OCR включён в стандартном PDF pipeline и применяется к bitmap content. В зависимости от системы можно использовать разные engines.

RapidOCR

ONNX-based вариант, устанавливается отдельным extra.

Tesseract / Tesserocr

Классический OCR с явным выбором языковых моделей.

EasyOCR

Отдельный optional backend.

OcrMac

Вариант для macOS.

Пример с RapidOCR

pip install "docling[rapidocr]"

docling convert scan.pdf \
  --ocr \
  --ocr-engine rapidocr \
  --ocr-lang "iso:ru,iso:en" \
  --to md
Для OCR языки нужно подбирать под конкретный backend.

CLI поддерживает как native engine tags, так и canonical BCP-47 через префикс iso:.

Vision-Language pipeline

Для сложных страниц можно использовать VLM вместо классического pipeline

pip install "docling[vlm]"

docling convert document.pdf \
  --pipeline vlm \
  --to md

VLM pipeline анализирует страницу с помощью vision-language model. Это полезно для сложного layout и визуального понимания, но заметно тяжелее обычного parsing и требует model weights.

Standard pipeline Первый выбор

Быстрее и детерминированнее для большинства обычных PDF.

VLM pipeline Сложный visual layout

Полезен, если conventional parsing/OCR недостаточно.

Документ → chunks → vector DB

Docling может сразу подготовить chunks для RAG

Вместо собственного splitter можно попросить CLI вернуть JSONL chunks. Поддерживаются hierarchical и hybrid chunking.

docling convert manual.pdf \
  --to chunks \
  --chunks-type hybrid \
  --chunks-max-tokens 512 \
  --output ./rag-data
PDF/DOCXисходные документы
→
Doclinglayout + tables + chunking
→
Embeddingsлокальные или облачные
→
Vector DBQdrant · Milvus · pgvector
→
LLMответ по найденным chunks

В официальных examples есть интеграции с LangChain, LlamaIndex и Haystack, а также vector stores вроде Qdrant, Milvus и Weaviate.

Docling MCP 3.2.0

Claude и другие MCP-клиенты могут конвертировать документы как tool

У проекта есть отдельный официальный docling-mcp. Актуальная версия на PyPI — 3.2.0, Python 3.10+, MIT.

{
  "mcpServers": {
    "docling": {
      "command": "uvx",
      "args": [
        "--from=docling-mcp",
        "docling-mcp-server"
      ]
    }
  }
}

После подключения agent получает document conversion tools и может, например, по инструкции превратить PDF в DoclingDocument, затем читать или обрабатывать его дальше.

Local conversion

Обработка документов непосредственно на машине MCP server.

Remote mode

Можно направить MCP на отдельный Docling Serve endpoint.

LlamaIndex RAG

У MCP package есть optional tools для RAG workflow.

Image handling

Можно управлять сохранением и представлением картинок в Markdown.

Начиная с docling-mcp 3.x используется MCP Python SDK v2.

Для очень старого custom MCP client на SDK v1 документация рекомендует ветку docling-mcp<3.

Приватные документы

Базовый Docling может обрабатывать локальные файлы локально

Local file Не требуется отправлять PDF в внешний OCR API

Standard parsing, OCR и локальные model pipelines могут выполняться на своей машине.

Первый запуск Модели и dependencies могут скачиваться

Полностью offline environment нужно подготовить заранее.

Remote models Могут отправлять данные наружу

Если вы специально включили remote enrichment/model backend, его privacy зависит от provider.

Remote URL input Docling сам скачивает документ

Для server deployment ограничивайте, какие внешние URL разрешено передавать.

«Open source» не означает «любой pipeline всегда offline».

Проверяйте extras и настройки конкретного enrichment/VLM backend. Для чувствительных документов используйте только явно локальные components.

Выбираем правильный инструмент

Docling, Firecrawl и AnythingLLM находятся на разных этапах pipeline

ЗадачаЛучший слойПочему
PDF/DOCX → MarkdownDoclingDocument structure, OCR и tables
Сайт → MarkdownFirecrawlWeb rendering, Map и Crawl
Хранить embeddings и задавать вопросыAnythingLLM / RAG stackRetrieval и chat layer
Кликать по веб-интерфейсуBrowser UseAction-first browser agent
Дать AI tool для обработки PDFDocling MCPAgent вызывает conversion по требованию

Эти инструменты не обязательно конкурируют. Например: Firecrawl собирает веб, Docling обрабатывает локальные PDF, Qdrant хранит chunks, а Open WebUI или AnythingLLM становятся пользовательским интерфейсом.

Недоверенные документы — это входные данные

В 2026 году у Docling были security advisories: используйте актуальную версию

Документ parser обрабатывает архивы, XML, HTML, LaTeX, URL и изображения, поэтому его attack surface больше, чем кажется. В 2026 году Docling опубликовал несколько advisories, включая unsafe HTML rendering, path traversal и XML/archive parsing issues.

HTML rendering Исправлено в 2.91.0

Старый Playwright rendering мог выполнять JavaScript и делать unrestricted network requests.

LaTeX path traversal Исправлено в 2.91.0

\input и \includegraphics раньше могли выйти за base directory.

EasyOCR Zip Slip Исправлено в 2.91.0

Model archive extraction теперь проверяет traversal.

USPTO XML XXE Исправлено в 2.74.0

Старый parser мог читать локальные файлы или делать SSRF через external entities.

Текущая 2.129.0 существенно новее перечисленных patched versions.

Но на сервере, который принимает файлы от пользователей, всё равно нужны resource limits, отдельный user/container и регулярное обновление dependencies.

Не запускайте parser недоверенных документов с широкими правами к файловой системе.

Даже исправленный parser лучше изолировать: отдельный container/user, read-only mounts и отсутствие ненужных credentials уменьшают последствия будущей неизвестной уязвимости.

Ограничения

Даже хороший document understanding не гарантирует идеальную конвертацию

01Плохой scan

Низкое разрешение и артефакты снижают OCR quality.

02Очень сложный layout

Газетные колонки, callouts и дизайнерские отчёты могут нарушать reading order.

03Таблицы бывают неоднозначны

Merged cells и visual grouping не всегда восстанавливаются идеально.

04Формулы и картинки требуют enrichment

Дополнительные models увеличивают время и resource usage.

05VLM дороже standard pipeline

Не стоит включать vision model для обычного цифрового PDF без причины.

06Chunking не универсален

512 tokens может быть отлично для одного corpus и плохо для другого.

Всегда проверяйте несколько реальных документов из своего corpus.

Один красивый demo PDF ничего не говорит о том, как pipeline справится с вашими сканами, техническими таблицами или бухгалтерскими формами.

Практические сценарии

Где Docling особенно полезен

01 Технические паспорта → RAG

Сохранить headings и tables вместо плоского PDF text.

02 Прайс-листы и отчёты

Вытащить таблицы отдельно в CSV/DataFrame.

03 Корпоративная база знаний

Пакетно конвертировать DOCX/PDF/PPTX в единый формат.

04 AI-agent + MCP

Дать Claude/Codex tool «прочитай и структурируй этот документ».

05 Scientific documents

Формулы, таблицы, hierarchy и специализированные XML formats.

06 Локальная обработка закрытых PDF

Не отправлять документы в сторонний SaaS parser.

Первоисточники

Docling: версия, форматы, CLI, MCP и security

Материал проверен 21 сентября 2026 года.

На дату проверки актуальный Docling — 2.129.0 от 18 сентября 2026 года, Python >=3.10,<4.0, MIT. Актуальный docling-mcp — 3.2.0.

Вывод

Docling нужен тогда, когда качество входного документа важнее самого чата с LLM

Если в RAG загрузить плохо разобранный PDF, большая модель не восстановит потерянную таблицу, неправильный reading order или отсутствующий OCR-текст. Docling решает проблему раньше — на этапе подготовки документа.

Особенно полезен он для локальных AI-систем: можно держать parser рядом с Ollama/Qdrant, конвертировать закрытые документы внутри своей инфраструктуры и отдавать LLM уже нормализованные Markdown/chunks.

FAQ

Частые вопросы о Docling

Что такое Docling простыми словами?

Open-source parser документов, который превращает PDF, Word, Excel, PowerPoint, изображения и другие форматы в структурированный document model, Markdown, JSON или RAG chunks.

Docling работает на Windows?

Да. Актуальный пакет официально поддерживает Windows, Linux и macOS.

Нужна ли видеокарта?

Нет для базового использования. GPU может ускорить model-based pipeline и нужен для тяжёлых VLM/enrichment сценариев.

Можно ли использовать Docling полностью локально?

Да для standard parsing/OCR/local models. Dependencies и model weights нужно заранее скачать, если среда полностью без интернета.

Docling умеет OCR?

Да. Поддерживаются несколько OCR backends, включая RapidOCR, Tesseract/Tesserocr, EasyOCR и OcrMac.

Можно ли извлекать таблицы?

Да. Таблицы становятся структурированными объектами и могут экспортироваться в DataFrame, CSV, HTML и Markdown.

Подходит ли Docling для RAG?

Да. CLI умеет напрямую экспортировать hierarchical или hybrid chunks в JSONL, а официальные examples покрывают LangChain, LlamaIndex, Haystack и разные vector databases.

Есть ли MCP?

Да. Официальный docling-mcp позволяет AI-клиентам вызывать document conversion и связанные tools.

Какая версия актуальна?

На 21 сентября 2026 года актуальный Docling — 2.129.0, а docling-mcp — 3.2.0.

Локальный ИИ и документы

Нужно разобрать PDF, технические паспорта или архив документов для локальной LLM?

Можно подобрать pipeline: Docling для parsing, OCR/table extraction, затем локальные embeddings, Qdrant и Ollama/Open WebUI/AnythingLLM для поиска и ответов.