{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

OCR и документы

Извлечение текста из PDF/сканов (pymupdf, маркер-pdf).

Метаданные навыки

Источник Встроенный (установлен по умолчанию)
Путь навыки/производительность/OCR-и-документы
Версия 2.3.0
Автор Агент Гермес
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS, Windows
Теги PDF, Документы, Исследования, Arxiv, Извлечение текста, OCR
Связанные навыки powerpoint

Справочник: полный SKILL.md:::информация

Ниже приведено полное описание навыков, которые Hermes загружает при его активации. Это то, что агент видит в качестве инструкций, когда навыки активны.

Извлечение PDF и документов

Для DOCX: используйте python-docx (анализирует реальную структуру документа, гораздо лучше OCR). Для PPTX: см. навыки powerpoint (использует python-pptx с полной поддержкой слайдов/заметок). Этот навык противоречит PDF и отсканированным документам.

Шаг 1: Доступен ли удаленный URL?

Если в документе есть URL, всегда сначала пробуйте web_extract:

web_extract(urls=["https://arxiv.org/pdf/2402.03300"])
web_extract(urls=["https://example.com/report.pdf"])

Это обрабатывает преобразование 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 (лёгкий)

pip install pymupdf pymupdf4llm

Через вспомогательный скрипт:

python scripts/extract_pymupdf.py document.pdf              # Простой текст
python scripts/extract_pymupdf.py document.pdf --markdown    # Markdown
python scripts/extract_pymupdf.py document.pdf --tables      # Таблицы
python scripts/extract_pymupdf.py document.pdf --images out/ # Извлечение изображений
python scripts/extract_pymupdf.py document.pdf --metadata    # Название, автор, страницы
python scripts/extract_pymupdf.py document.pdf --pages 0-4   # Конкретные страницы

Встроенный:

python3 -c "
import pymupdf
doc = pymupdf.open('document.pdf')
for page in doc:
    print(page.get_text())
"

marker-pdf (высококачественный OCR)

# Сначала проверьте свободное место на диске
python scripts/extract_marker.py --check

pip install marker-pdf

Через вспомогательный скрипт:

python scripts/extract_marker.py document.pdf                # Markdown
python scripts/extract_marker.py document.pdf --json         # JSON с метаданными
python scripts/extract_marker.py document.pdf --output_dir out/  # Сохранить изображения
python scripts/extract_marker.py scanned.pdf                 # Сканированный PDF (OCR)
python scripts/extract_marker.py document.pdf --use_llm      # Повышенная точность с LLM

CLI (устанавливается с маркером-pdf):

marker_single document.pdf --output_dir./output
marker /path/to/folder --workers 4    # Пакетная обработка

Статьи Архив

# Только аннотация (быстро)
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 в новый PDF
import pymupdf
doc = pymupdf.open("report.pdf")
new = pymupdf.open()
for i in range(5):
    new.insert_pdf(doc, from_page=i, to_page=i)
new.save("pages_1-5.pdf")
# Объединение нескольких PDF
import pymupdf
result = pymupdf.open()
for path in ["a.pdf", "b.pdf", "c.pdf"]:
    result.insert_pdf(pymupdf.open(path))
result.save("merged.pdf")
# Поиск текста по всем страницам
import pymupdf
doc = pymupdf.open("report.pdf")
for i, page in enumerate(doc):
    results = page.search_for("revenue")
    if results:
        print(f"Страница {i+1}: {len(results)} совпадений")
        print(page.get_text("text"))

Никаких дополнительных зависимостей не требуется — pymupdf обеспечивает разделение, объединение, поиск и извлечение текста в одном пакете.


Примечания