Статьи ·

Docling: превращаем PDF в markdown одной командой

Docling от IBM Research - open-source парсер документов: PDF, DOCX, PPTX и сканы превращаются в markdown или JSON с сохранением таблиц и структуры. Локально, без API.

Мусор на входе - мусор в RAG. Типичный PDF-парсер отдаёт плоский текст: таблицы рассыпаются, порядок чтения ломается, колонтитулы лезут в чанки. Потом вы удивляетесь, почему бот несёт чушь про цифры из отчёта. Docling - open-source toolkit от IBM Research - разбирает документ как документ: раскладка, таблицы, формулы. На выходе - чистый markdown или JSON.

Как это работает

Внутри - конвейер из специализированных моделей. DocLayNet находит блоки раскладки, TableFormer восстанавливает структуру таблиц, для сканов подключается OCR - EasyOCR или Tesseract. Всё собирается в единый DoclingDocument: иерархическое представление с метаданными происхождения - номера страниц, bounding boxes. Дальше - экспорт в markdown, JSON, текст или токены документа. Для тяжёлых случаев есть VLM-пайплайн на компактной Granite-Docling. Установка - pip install docling. Конвертация - docling report.pdf или три строки на Python.

Структура из коробки

Таблицы и порядок чтения работают сразу - то, ради чего обычно пишут костыли поверх PyPDF, здесь дефолт. Второй плюс - локальность: всё считается на вашей машине, документы никуда не уезжают. Для чувствительных данных это часто решающий аргумент. Плюс нативные интеграции с LangChain и LlamaIndex: распарсенное сразу едет в RAG-пайплайн.

Подводные камни

Модели пайплайна качаются при первом запуске - готовьтесь к гигабайтам и ожиданию; для офлайна есть model_downloader, скачайте заранее. Сложные сканы, рукописные пометки и экзотические раскладки всё равно ошибаются - выдачу проверяйте глазами, хотя бы выборочно. VLM-пайплайн на GPU заметно быстрее; на CPU - терпимо лишь для небольших объёмов. И помните: Docling - парсер, а не экстрактор смыслов. Семантику сущностей поверх докиньте сами, например тем же LangExtract.

Кому подходит

Всем, кто кормит RAG реальными документами: отчёты, договоры, презентации, сканы. Если документы уже лежат в чистом markdown или тексте - Docling избыточен, не тащите лишний инструмент. А когда RAG отвечает ерунду на вопросы по таблицам из PDF - начните с замены парсера, прежде чем трогать эмбеддинги. Часто дело именно в нём.