LlamaIndex выпускает LiteParse: CLI и нативная TypeScript-библиотека для пространственного парсинга PDF в AI-агентах
В текущей реальности Retrieval-Augmented Generation (RAG), главное узкое место для разработчиков — уже не сама большая языковая модель (LLM), а пайплайн загрузки данных. Конвертация сложных PDF-документов в понятный для модели формат остается медленной и часто дорогой задачей.
LlamaIndex представил LiteParse — open-source библиотеку для локального парсинга документов, призванную решить эти проблемы. В отличие от большинства инструментов, полагающихся на облачные API или тяжеловесные Python-библиотеки для OCR, LiteParse написан нативно на TypeScript и работает целиком на машине пользователя. Это «быстрый режим» (fast-mode) для платного сервиса LlamaParse, где в приоритете скорость, приватность и пространственная точность для agentic-воркфлоусов (рабочих процессов с ИИ-агентами).
Технический разворот: TypeScript и пространственный текст
Главное техническое отличие LiteParse — архитектура. Пока большая часть AI-экосистемы строится на Python, LiteParse написан на TypeScript и работает на Node.js. Для извлечения текста используется PDF.js (пакет pdf.js-extract), а для локального оптического распознавания символов — Tesseract.js.
Выбор TypeScript-стека обеспечил полное отсутствие Python-зависимостей. Это упрощает интеграцию в современные веб-окружения и edge-вычисления (обработку данных ближе к конечным устройствам). Инструмент доступен как в виде командной строки (CLI), так и в виде библиотеки. Он позволяет обрабатывать документы масштабно без накладных расходов от Python-рантайма.
В основе логики лежит Spatial Text Parsing (пространственный парсинг текста). Большинство традиционных парсеров пытаются конвертировать документы в Markdown. Но такая конвертация часто ломается на многоколоночной верстке или вложенных таблицах, что ведет к потере контекста. LiteParse решает это иначе: он проецирует текст на пространственную сетку. Инструмент сохраняет исходный макет страницы с помощью отступов и пробелов. Это позволяет LLM использовать свои внутренние способности к пространственному мышлению, чтобы «прочитать» документ так, как он выглядит визуально.
Проблема таблиц: сохранение макета вместо хитрых эвристик
Извлечение табличных данных — классическая боль AI-разработчиков. Стандартные методы опираются на сложные эвристики для поиска ячеек и строк. На нестандартных таблицах такие методы часто выдают бесформенную кашу из символов.
В LiteParse применяют подход, который разработчики называют «красиво ленивым». Вместо попыток собрать формальный табличный объект или Markdown-сетку, инструмент просто сохраняет горизонтальное и вертикальное выравнивание текста. Современные LLM обучены на огромном количестве ASCII-арта и отформатированных текстовых файлов. Поэтому они часто лучше справляются с интерпретацией пространственно точного текстового блока, чем с криво собранной Markdown-таблицей. Метод снижает вычислительные затраты на парсинг, сохраняя для модели логические связи между данными.
Фичи для AI-агентов: скриншоты и JSON-метаданные
LiteParse заточен именно под AI-агентов. В рабочем процессе RAG агенту может потребоваться визуально проверить контекст документа, если текст извлечен неоднозначно. Для этого LiteParse умеет генерировать скриншоты страниц прямо в процессе парсинга.
При обработке документа LiteParse выдает:
- Spatial Text: Версию документа с сохраненным макетом страницы.
- Screenshots: Картинки для каждой страницы. Они позволяют мультимодальным моделям (например, GPT-4o или Claude 3.5 Sonnet) визуально инспектировать графики, диаграммы и сложное форматирование.
- JSON Metadata: Структурированные данные с номерами страниц и путями к файлам. Они помогают агенту отслеживать происхождение извлеченной информации (chain of custody).
Такой мультимодальный вывод позволяет инженерам строить более устойчивых агентов. Агенты могут переключаться между чтением текста ради скорости и просмотром изображений для точного визуального анализа.
Интеграция и использование
LiteParse спроектирован как drop-in компонент (готовый элемент для прямой замены) внутри экосистемы LlamaIndex. Для разработчиков, уже использующих VectorStoreIndex или IngestionPipeline, библиотека предоставляет локальную альтернативу на этапе загрузки документов.
Инструмент устанавливается через npm и предлагает простой CLI:
npx @llamaindex/liteparse <path-to-pdf> --outputDir ./output
Эта команда обрабатывает PDF и заполняет выходную директорию файлами пространственного текста и, если это настроено, скриншотами страниц.
Главное
- Нативная архитектура на TypeScript: LiteParse построен на Node.js с использованием PDF.js и Tesseract.js, работает с нулевыми Python-зависимостями. Это быстрая и легковесная альтернатива для разработчиков вне традиционного Python AI-стека.
- Пространственный текст вместо Markdown: Вместо конвертации в Markdown применяется Spatial Text Parsing. Исходный макет сохраняется через точные отступы и пробелы. Это задействует естественную способность LLM интерпретировать визуальную структуру и ASCII-таблицы.
- Заточен под мультимодальных агентов: Для поддержки агентных рабочих процессов LiteParse генерирует скриншоты страниц вместе с текстом. Это позволяет агентам «видеть» и анализировать сложные элементы — диаграммы или графики, которые трудно передать простым текстом.
- Локальность и приватность: Вся обработка, включая OCR, идет на локальном CPU. Отпадает нужда в сторонних API-вызовах. Это снижает задержки и гарантирует, что чувствительные данные не покидают локальный периметр безопасности.
- Удобство для разработчика: LiteParse ставится через npm и работает как CLI или библиотека. Интегрируется напрямую в экосистему LlamaIndex, обеспечивая быстрый путь загрузки данных для production RAG-пайплайнов.
Ознакомьтесь с репозиторием и техническими деталями.
