🏠 Главная › user guide › productivity ocr and documents
{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}
OCR и документы
Извлечение текста из PDF/сканов (pymupdf, маркер-pdf).
Ниже приведено полное описание навыков, которые Hermes загружает при его активации. Это то, что агент видит в качестве инструкций, когда навыки активны.
Извлечение PDF и документов
Для DOCX: используйте python-docx (анализирует реальную структуру документа, гораздо лучше OCR).
Для PPTX: см. навыки powerpoint (использует python-pptx с полной поддержкой слайдов/заметок).
Этот навык противоречит PDF и отсканированным документам.
Шаг 1: Доступен ли удаленный URL?
Если в документе есть URL, всегда сначала пробуйте web_extract:
Это обрабатывает преобразование PDF в Markdown через Firecrawl без локальных зависимостей.
Используйте локальное извлечение только тогда, когда: локальный файл, web_extract не сработал или вам нужна пакетная обработка.
Шаг 2: Выбор локального экстрактора
Особенность
pymupdf (~25 МБ)
маркер-pdf (~3-5ГБ)
Текстовый PDF
✅
✅
Сканированный PDF (OCR)
❌
✅ (90+ языков)
Таблицы
✅ (базовые)
✅ (высокая точность)
Уравнения / LaTeX
❌
✅
Блоки кода
❌
✅
Формы
❌
✅
Удаление верхних/нижних колонтитулов
❌
✅
Определение порядка чтения
❌
✅
Извлечение изображений
✅ (встроенные)
✅ (с контекстом)
Изображения → текст (OCR)
❌
✅
EPUB
✅
✅
Вывод в Markdown
✅ (через pymupdf4llm)
✅ (родной, более высокое качество)
Размер установки
~25 МБ
~3–5 ГБ (PyTorch + модели)
Скорость
Мгновенно
~1-14 с/стр (CPU), ~0,2 с/стр (GPU)
Решение: используйте pymupdf, если не нужны OCR, уравнения или формы анализа дисковых разметок.
Если пользователю нужен маркер возможностей, но в системе не хватает ~5 ГБ свободного места:
«Этот документ требует OCR/расширенного извлечения (marker-pdf), для которого требуется ~5 ГБ для PyTorch и моделей. В вашей системе [X] ГБ свободно. Варианты: уменьшить место, указать URL, чтобы я мог использовать web_extract, или я могу попробовать pymupdf, который работает для текстовых PDF, но не для сканированных документов или результатов».
pymupdf (лёгкий)
pipinstallpymupdfpymupdf4llm
Через вспомогательный скрипт:
pythonscripts/extract_pymupdf.pydocument.pdf# Простой текст
pythonscripts/extract_pymupdf.pydocument.pdf--markdown# Markdown
pythonscripts/extract_pymupdf.pydocument.pdf--tables# Таблицы
pythonscripts/extract_pymupdf.pydocument.pdf--imagesout/# Извлечение изображений
pythonscripts/extract_pymupdf.pydocument.pdf--metadata# Название, автор, страницы
pythonscripts/extract_pymupdf.pydocument.pdf--pages0-4# Конкретные страницы
Встроенный:
python3-c"import pymupdfdoc = pymupdf.open('document.pdf')for page in doc: print(page.get_text())"
marker-pdf (высококачественный OCR)
# Сначала проверьте свободное место на диске
pythonscripts/extract_marker.py--check
pipinstallmarker-pdf
Через вспомогательный скрипт:
pythonscripts/extract_marker.pydocument.pdf# Markdown
pythonscripts/extract_marker.pydocument.pdf--json# JSON с метаданными
pythonscripts/extract_marker.pydocument.pdf--output_dirout/# Сохранить изображения
pythonscripts/extract_marker.pyscanned.pdf# Сканированный PDF (OCR)
pythonscripts/extract_marker.pydocument.pdf--use_llm# Повышенная точность с LLM
# Только аннотация (быстро)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])
# Полная статья
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])
# Поиск
web_search(query="arxiv GRPO reinforcement learning 2026")
Разделение, объединение и поиск
pymupdf обрабатывает это изначально — воспользуйтесь execute_code или встроенным Python:
# Разделение: извлечь страницы 1-5 в новый PDFimportpymupdfdoc=pymupdf.open("report.pdf")new=pymupdf.open()foriinrange(5):new.insert_pdf(doc,from_page=i,to_page=i)new.save("pages_1-5.pdf")
# Объединение нескольких PDFimportpymupdfresult=pymupdf.open()forpathin["a.pdf","b.pdf","c.pdf"]:result.insert_pdf(pymupdf.open(path))result.save("merged.pdf")
# Поиск текста по всем страницамimportpymupdfdoc=pymupdf.open("report.pdf")fori,pageinenumerate(doc):results=page.search_for("revenue")ifresults:print(f"Страница {i+1}: {len(results)} совпадений")print(page.get_text("text"))
Никаких дополнительных зависимостей не требуется — pymupdf обеспечивает разделение, объединение, поиск и извлечение текста в одном пакете.
Примечания
web_extract всегда является первым выбором для URL-адреса.
pymupdf — безопасный вариант по умолчанию: мгновенно, без моделей, работает везде
маркер-pdf, предназначенный для оптического распознавания символов, сканированных документов, образцов, сложных макетов — устанавливайте только при необходимости.
Оба вспомогательных скрипта используют --help для полного описания использования.
маркер-pdf загружает ~2,5 ГБ моделей в ~/.cache/huggingface/ при первом использовании
Для Word-документов: pip install python-docx (лучше, чем OCR — анализирует реальную структуру)
Для PowerPoint: см. навыки powerpoint (использует python-pptx)