Щоб масово витягнути дані з документів за допомогою AI‑агента, запишіть схему у підказку, вкажіть агенту папку та вимагайте список винятків у кінці. Сервер GroupDocs.Parser.Mcp виконує читання локально в Docker‑контейнері, тому кожен файл проходить через ті самі інструменти витягування і жоден документ не залишає машину. LLM визначає порядок роботи; движок читає файли.

Для кожного PDF у моїй папці з документами: витягнути таблиці у форматі JSON, підсумувати стовпець amount і надати одну таблицю з назвою файлу, підсумком та кількістю сторінок.

Крок‑за‑кроком версія з налаштуваннями та усуненням проблем знаходиться в документації: Як витягнути дані з папки документів одразу.

Чому ручне витягування дає непослідовні дані?

Коли люди копіюють значення з документів по одному, кожен файл обробляється трохи по‑різному: хтось включає податок, хтось — ні, третій пропускає файл з незвичним макетом. Непослідовність залишається непоміченою, доки не порівняти підсумки. Робочий процес виправляє це, роблячи правила явними та застосовуючи їх до кожного файлу однаково. За допомогою агента правила живуть в одній підказці, а інструменти витягування поводяться ідентично для першого і двісті‑го файлу.

Як побудувати робочий процес?

Змонтуйте папку в контейнер як /data, встановіть GROUPDOCS_MCP_STORAGE_PATH=/data і дайте агенту такі кроки.

  1. Перевірте ліцензію. Підказка: “Run get_license_status and tell me the mode.” Неліцензоване витягування обмежене, а часткове читання папки дає тихо неправильний набір даних.
  2. Тріаж папки. Підказка: “For each file, report format, page count and whether text extraction returns anything.” get_document_info повертає тип, кількість сторінок і розмір, а односторінковий виклик extract_text показує, чи є текст.
  3. Виправте схему. Підказка: “For each readable file, extract the line-items table as JSON. Columns: item, quantity, amount. Total the amount column.” Це використовує extract_tables.
  4. Збирайте помилки явно. Підказка: “List every file that failed, was password-protected, or returned no table, with the reason.” Пакет, який повідомляє лише про успіхи, приховує винятки.
  5. Запишіть результат. Підказка: “Write one row per file to a CSV in the output folder.”

Файли розв’язуються за назвою всередині контейнера, тому агент передає invoice-014.pdf, а не шлях хоста.

Що вирішує агент, а що робить движок?

Крок Що вирішує агент Що робить движок
Тріаж Які файли витягувати Повертає тип, кількість сторінок і розмір; extract_text показує, чи є текст
Захоплення Який інструмент потрібен кожному файлу Повертає текст або рядки таблиці з файлу
Валідація Чи відповідає підсумок тексту Нічого; агент порівнює
Винятки Які файли включити до списку Повертає повідомлення про помилку для проблемного файлу
Вивід Формат CSV Нічого; агент записує його

Розподіл — це сутність. Захоплення значень — детермінована робота движка; оцінка та складання — завдання агента.

Приклад сесії (скорочений):

You:    Check the license, triage the folder, then extract line items from every readable PDF and list the exceptions.
Agent:  [calls get_license_status, get_document_info x12, extract_text, extract_tables x10]
        License mode: evaluation. Results below are a smoke test.
        12 files: 10 with a text layer, 1 scan, 1 password-protected.
        Totals written for 10 files. Exceptions: scan-007.pdf (no text layer), hr-020.pdf (password required).

Що трапляється з файлами, які не підходять?

Скан не має текстового шару, тому витягування таблиць нічого не повертає. Відкладіть їх у сторону або дозвольте агенту перейти до extract_barcodes, коли на сторінці є номер відстеження або код замовлення. Список «пройдених» одночасно слугує інвентарем сканованих частин архіву. Файл, захищений паролем, не проходить власний виклик, тому попросіть агента повідомити про нього і продовжити; інструменти приймають аргумент password, коли він у вас є.

Як зробити великий запуск доступним за вартістю?

  • Обмежте за сторінками, коли дані розташовані у відомому місці, наприклад на першій сторінці кожного рахунку.
  • Уникайте extract_images у масовому режимі. Він створює файл для кожного зображення, а папка ілюстрованих звітів генерує сотні файлів.
  • Слідкуйте за метерованим використанням. При метерованій ліцензії кожен виклик оплачується за обробку, тому цілеспрямований обхід коштує менше, ніж повний.

Які існують обмеження?

Без ліцензії витягування обмежене; точні обмеження наведені на сторінці ліцензування бібліотеки. Сервер не має OCR, тому сканований текст не може бути захоплений. Доступний лише як Docker‑образ; команди dnx немає.

Як зареєструвати сервер?

Мінімальний ручний запис для Cursor, Claude Desktop або Windsurf, використовуючи шляхи контейнера з документації конфігурації Parser:

{
  "mcpServers": {
    "groupdocs-parser": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
               "-v", "/path/to/documents:/data",
               "-e", "GROUPDOCS_MCP_STORAGE_PATH=/data",
               "ghcr.io/groupdocs-parser/parser-net-mcp:latest"]
    }
  }
}

FAQ

Чи можу я обробляти папку з рахунками за допомогою AI без їх завантаження?
Так. Контейнер читає змонтовану папку і спілкується з вашим клієнтом через stdio, тому рахунки залишаються на вашій машині.

Як здійснити пакетне витягування тексту з PDF‑файлів локально?
Попросіть агента пройти по папці та викликати extract_text для кожного файлу, сторінка за сторінкою для довгих документів, бо дуже великі результати обрізаються маркером.

Чи може агент автоматизувати введення даних з документів?
Він може зібрати витягнуті рядки у CSV або підсумкову таблицю. Перегляньте список винятків, перш ніж щось вводити в іншу систему.

Поглиблене вивчення