Суть проекта
Команда Firecrawl открыла исходный код библиотеки anydoc, созданной для преобразования офисных документов (Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, PDF) в чистый Markdown, совместимый с GitHub Flavored Markdown (GFM). Проект написан на чистом Rust, не использует ML-модели для базовой конвертации и не требует внешних сервисов, что обеспечивает максимальную скорость и безопасность обработки данных.
Библиотека поставляется с биндингами для Node.js, Python и Rust, а также доступна как Agent Skill для AI-агентов (Claude Code, Codex, Cursor). Это позволяет агентам автономно читать и обрабатывать любые вложенные файлы, преобразуя их в структурированный текст за доли секунды.
Производительность и бенчмарки
Ключевое преимущество anydoc — скорость. На тестовом стенде (Ryzen 9 9950X3D, 64 GB DDR5-6400) медианное время конвертации одного документа составляет 4.7 мс. Для сравнения, популярные аналоги работают в десятки и сотни раз медленнее, так как часто опираются на тяжелые GUI-интерфейсы (LibreOffice) или сложные пайплайны парсинга.
Качество конвертации оценивалось с помощью LLM-судьи (Claude Sonnet 5), который сравнивал выходные данные с «эталонным» рендером LibreOffice. Оценки проводились по четырем критериям: полнота, структура, форматирование и чистота текста.
| Инструмент | Форматов | Скорость (мс) | Общий балл | Полнота | Структура | Форматирование |
|---|---|---|---|---|---|---|
| anydoc | 14/14 | 4.7 | 80 | 80 | 88 | 78 |
| libreoffice | 12/14 | 1129.5 | 40 | 59 | 43 | 43 |
| unstructured | 8/14 | 572.9 | 65 | 76 | 62 | 52 |
| markitdown | 6/14 | 134.8 | 65 | 80 | 67 | 61 |
| pandoc | 5/14 | 102.1 | 57 | 75 | 57 | 58 |
| docling | 4/14 | 513.6 | 57 | 63 | 59 | 57 |
| mammoth | 1/14 | 52.5 | 85 | 68 | 74 | 55 |
Технические особенности
- Единая модель документа: Все форматы парсятся в общую внутреннюю модель (Document), которая затем сериализуется в Markdown. Это гарантирует единообразие обработки таблиц, сносок, заголовков и вложенных списков независимо от исходного файла.
- Автоопределение формата: Библиотека определяет тип файла по содержимому (магические байты, заголовки PDF/RTF, MIME-типы в ZIP-архивах), а не по расширению. Это предотвращает ошибки при переименованных файлах.
- Поддержка PDF: Текстовые PDF конвертируются локально через библиотеку
pdf-inspectorбез необходимости в OCR. Для отсканированных страниц Firecrawl предлагает отдельный хостинг API с OCR-моделями. - Встраиваемые активы: Изображения и объекты сохраняются как alt-текст в Markdown, а их сырые байты доступны в модели документа с указанием медиа-типа.
Как начать работу
Установка доступна через стандартные менеджеры пакетов. Для использования в CLI-агентах достаточно одной команды:
npx skills add firecrawl/anydoc
Для интеграции в код:
- Node.js:
npm install @firecrawl/anydoc - Python:
pip install firecrawl-anydoc - Rust:
cargo add anydoc
Проект особенно полезен для пайплайнов RAG (Retrieval-Augmented Generation), где требуется быстрая и качественная подготовка «грязных» офисных документов к индексации в векторных базах данных.
Источник: Github ↗
