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 - начните с замены парсера, прежде чем трогать эмбеддинги. Часто дело именно в нём.