Do masowego wyodrębniania danych z dokumentów przy użyciu agenta AI, zapisz schemat w promptcie, skieruj agenta na folder i wymagaj listy wyjątków na końcu. Serwer GroupDocs.Parser.Mcp wykonuje odczyt lokalnie w kontenerze Docker, więc każdy plik przechodzi przez te same narzędzia ekstrakcji i żaden dokument nie opuszcza maszyny. LLM decyduje o kolejności pracy; silnik odczytuje pliki.

Dla każdego pliku PDF w moim folderze dokumentów: wyodrębnij tabele jako JSON, podsumuj kolumnę kwota i podaj jedną tabelę z nazwą pliku, sumą, liczbą stron.

Wersja krok po kroku z konfiguracją i rozwiązywaniem problemów znajduje się w dokumentacji: Jak wyodrębnić dane z folderu dokumentów jednocześnie.

Dlaczego ręczne wyodrębnianie powoduje niespójne dane?

Kiedy ludzie kopiują wartości z dokumentów pojedynczo, każdy plik jest obsługiwany nieco inaczej: jedna osoba uwzględnia podatek, inna nie, trzecia pomija plik o nietypowym układzie. Niespójność jest niewidoczna, dopóki nie porównamy sum. Przepływ pracy naprawia to, czyniąc zasady explicite i stosując je do każdego pliku w ten sam sposób. Z agentem zasady żyją w jednym promptcie, a narzędzia ekstrakcji zachowują się identycznie przy pliku pierwszym i dwusetnym.

Jak zbudować przepływ pracy?

Zamontuj folder w kontenerze jako /data, ustaw GROUPDOCS_MCP_STORAGE_PATH=/data i podaj agentowi następujące kroki.

  1. Sprawdź licencję. Prompt: “Run get_license_status and tell me the mode.” Wyodrębnianie bez licencji jest ograniczone, a częściowy odczyt całego folderu to cicho błędny zestaw danych.
  2. Triage folderu. Prompt: “For each file, report format, page count and whether text extraction returns anything.” get_document_info dostarcza typ, liczbę stron i rozmiar, a jednorazowe wywołanie extract_text pokazuje, czy tekst istnieje.
  3. Napraw schemat. Prompt: “For each readable file, extract the line-items table as JSON. Columns: item, quantity, amount. Total the amount column.” To używa extract_tables.
  4. Zbierz niepowodzenia explicite. Prompt: “List every file that failed, was password-protected, or returned no table, with the reason.” Zestaw, który raportuje tylko sukcesy, ukrywa wyjątki.
  5. Zapisz wynik. Prompt: “Write one row per file to a CSV in the output folder.”

Pliki są rozpoznawane po nazwie wewnątrz kontenera, więc agent przekazuje invoice-014.pdf, a nie ścieżkę hosta.

Co decyduje agent, a co robi silnik?

Krok Decyzja agenta Działanie silnika
Triagem Które pliki wyodrębnić Raportuje typ, liczbę stron i rozmiar; extract_text pokazuje, czy tekst istnieje
Przechwytywanie Jakie narzędzie potrzebuje każdy plik Zwraca tekst lub wiersze tabeli z pliku
Walidacja Czy suma zgadza się z tekstem Nic; agent porównuje
Wyjątki Które pliki trafią na listę Zwraca komunikat o błędzie dla nieprawidłowego pliku
Wyjście Kształt pliku CSV Nic; agent zapisuje go

Rozdzielenie to klucz. Przechwytywanie wartości to deterministyczna praca silnika; ocenianie i składanie ich to zadanie agenta.

Przykładowa sesja (skrócona):

You:    Sprawdź licencję, przeprowadź triage folderu, a następnie wyodrębnij pozycje z każdego czytelnego PDF i wypisz wyjątki.
Agent:  [calls get_license_status, get_document_info x12, extract_text, extract_tables x10]
        Tryb licencji: evaluation. Wyniki poniżej to test wstępny.
        12 plików: 10 z warstwą tekstową, 1 skan, 1 zabezpieczony hasłem.
        Sumy zapisane dla 10 plików. Wyjątki: scan-007.pdf (brak warstwy tekstowej), hr-020.pdf (wymagane hasło).

Co się dzieje z plikami, które nie pasują?

Skan nie ma warstwy tekstowej, więc wyodrębnianie tabel zwraca dla niego nic. Odłóż je na bok lub pozwól agentowi przejść do extract_barcodes, gdy strona zawiera numer śledzenia lub kod zamówienia. Lista „przepływu” podwaja się jako inwentaryzacja, które części archiwum są skanami. Plik zabezpieczony hasłem nie udaje się w swoim wywołaniu, więc poproś agenta, aby go zgłosił i kontynuował; narzędzia akceptują argument password, gdy go posiadasz.

Jak utrzymać dużą operację w przystępnej cenie?

  • Ogranicz według stron, gdy dane mają znaną lokalizację, np. pierwszą stronę każdej faktury.
  • Unikaj extract_images masowo. Tworzy plik dla każdego obrazu, a folder ilustrowanych raportów generuje setki plików.
  • Śledź zużycie w trybie metered. Przy licencjonowaniu metered każde wywołanie jest rozliczane jako przetwarzanie, więc celowane skanowanie kosztuje mniej niż wyczerpujące.

Jakie są limity?

Bez licencji wyodrębnianie jest ograniczone; dokładne limity znajdują się na stronie biblioteki licensing page. Serwer nie posiada OCR, więc tekst ze skanów nie może być przechwycony. Dostępny jest wyłącznie jako obraz Docker; nie ma polecenia dnx.

Jak zarejestrować serwer?

Minimalny ręczny wpis dla Cursor, Claude Desktop lub Windsurf, używając ścieżek kontenera z dokumentacji konfiguracji Parsera:

{
  "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

Czy mogę przetworzyć folder faktur przy użyciu AI bez ich przesyłania?
Tak. Kontener odczytuje zamontowany folder i komunikuje się z Twoim klientem przez stdio, więc faktury pozostają na Twoim komputerze.

Jak wyodrębnić tekst z wielu plików PDF lokalnie?
Poproś agenta o iterację po folderze i wywołanie extract_text dla każdego pliku, strona po stronie w przypadku długich dokumentów, ponieważ bardzo duże wyniki są obcinane markerem.

Czy agent może zautomatyzować wprowadzanie danych z dokumentów?
Może złożyć wyodrębnione wiersze w CSV lub tabelę podsumowującą. Przejrzyj listę wyjątków, zanim cokolwiek zostanie wprowadzone do innego systemu.

Dowiedz się więcej