Agent AI nie powinien czytać tabeli. Powinien wywołać narzędzie, które zwraca tabelę, a następnie wykonać operacje arytmetyczne na wierszach. Przy uruchomionym lokalnie w Dockerze GroupDocs.Parser.Mcp, klient AI taki jak Claude Desktop lub Cursor może wyodrębniać tabele z plików PDF, Word i Excel oraz otrzymywać je w formacie JSON:

Wyodrębnij pozycje z invoice.pdf jako JSON i podsumuj kolumnę Kwota.

Wersja krok po kroku z konfiguracją i rozwiązywaniem problemów znajduje się w dokumentacji: How to extract tables from documents into structured data.

Co idzie nie tak, gdy model sam odczytuje tabelę?

Typowy przepływ pracy polega na wklejeniu PDF‑a do czatu i poproszeniu o tabelę. Model widzi spłaszczony strumień tekstu, domyśla się, gdzie były kolumny, i zapisuje wiersze ponownie. Każda komórka staje się wtedy prognozą. Brakująca kolumna, połączony wiersz lub przesunięta kropka dziesiętna nie generują błędu; generują pewną, dobrze sformatowaną tabelę, która jest nieco niepoprawna. Dla listy owoców to nieistotne. Dla sum faktur ma to ogromne znaczenie.

Błąd jest trudny do wykrycia, ponieważ wynik wygląda poprawnie. Żadna odpowiedź w czacie nie wskazuje, które komórki zostały odczytane z pliku, a które odtworzone.

Jaka jest alternatywa dla zgadywania przez model?

Przenieś odczyt poza model. Narzędzie extract_tables wykrywa tabele przy użyciu silnika dokumentu i zwraca je jako dane:

  • Markdown domyślnie, jako sekcje ### Tabela N (strona N, R×C), które renderują się bezpośrednio w czacie, VS Code i GitHub.
  • JSON z format: "json", jako tablica obiektów { tabela, strona, wiersze, kolumny, dane }, gdzie dane to siatka łańcuchów znaków.

Model nigdy nie transkrybuje komórki. Otrzymuje dane i pracuje na nich, więc jego zadanie ogranicza się do tego, co robi niezawodnie: sumowania, porównywania, filtrowania i wyjaśniania. Narzędzie obsługuje PDF, DOCX, XLSX, PPTX i HTML, więc to samo zapytanie obejmuje fakturę dostawcy, raport Worda i arkusz kalkulacyjny.

Jak uzyskać tabelę w formacie JSON?

Określ format w zapytaniu.

Wyodrębnij pozycje jako JSON i podsumuj kolumnę Kwota.

Example session (abridged)
You:    Extract the line items from invoice-014.pdf as JSON and total the amount column.
Agent:  [calls extract_tables with format "json"]
        {"table": 1, "page": 1, "rows": 4, "columns": 3,
         "data": [["Item", "Qty", "Amount"],
                  ["Paper A4", "10", "48.00"],
                  ["Toner", "2", "170.00"],
                  ["Delivery", "1", "22.00"]]}
        Total of the Amount column: 240.00 across 3 line items.

Ponieważ agent przechowuje wiersze, kolejne kroki to zwykłe pytania: który wiersz jest największy, czy suma zgadza się z wartością wydrukowaną w tekście, zapisanie wierszy do pliku CSV w folderze wyjściowym. Gdy liczy się arytmetyka, poproś agenta o wypisanie wierszy, które zsumował, abyś mógł je zweryfikować.

Kiedy wybrać Markdown zamiast JSON?

Używaj Markdown, gdy wynik ma przeczytać człowiek, a JSON, gdy ma go przetworzyć kod. Markdown jest domyślny i najszybszy do szybkiego spojrzenia na tabelę i oceny, czy została znaleziona poprawnie. Przejdź na JSON przy sumach, weryfikacjach krzyżowych i wszystkim, co zasila arkusz kalkulacyjny lub bazę danych. Jeśli wiesz, gdzie znajduje się tabela, zawęź wywołanie:

Wyodrębnij tabelę na stronie 4.

Parametr page ogranicza wykrywanie do jednej strony, co jest szybsze i, przy licencjonowaniu metrowym, tańsze.

Które przypadki nadal wymagają ludzkiego spojrzenia?

Uczciwe ograniczenia mają większe znaczenie przy tabelach niż przy zwykłym tekście.

  • Skanowane dokumenty nie zawierają tabel. Brak warstwy tekstowej oznacza brak struktury tabeli, a ekstrakcja zwraca pusty wynik. W tym serwerze nie ma OCR.
  • Złożone układy są zmienne. Połączone komórki, zagnieżdżone tabele i tabele rozciągające się na kilka stron nie zawsze zachowują się tak czysto jak prosta siatka. Przeprowadź kontrolę jednego dokumentu przed uruchomieniem dwustu.
  • Tryb ewaluacji jest ograniczony. Bez licencji ekstrakcja jest ograniczona; dokładne limity znajdują się na stronie licencjonowania biblioteki. Poproś agenta o wywołanie get_license_status przed rzeczywistym uruchomieniem.

Zainstaluj w jednym poleceniu

Serwer jest dystrybuowany wyłącznie jako obraz Docker, więc nie ma polecenia dnx. Zarejestruj go w Claude Code w następujący sposób, podmieniając ścieżkę na folder z dokumentami:

claude mcp add groupdocs-parser -- docker run --rm -i \
  -v /path/to/documents:/data ghcr.io/groupdocs-parser/parser-net-mcp:latest

Cursor, Claude Desktop, VS Code z GitHub Copilot, Windsurf, Cline i Codex używają tego samego kontenera z plikiem konfiguracyjnym specyficznym dla klienta; każdy jest wymieniony w Register in AI clients.

FAQ

Czy Claude odczytuje tabele PDF dokładnie?
To zależy od pliku i od tego, jak klient go spłaszcza, więc sprawdź, zamiast zakładać. Dzięki extract_tables wiersze pochodzą z wykrywania tabel przez silnik dokumentu, zwracane jako siatka łańcuchów znaków, a Claude pracuje na nich.

Jak wyodrębnić tabelę z PDF do Excela przy użyciu AI?
Poproś o tabelę w formacie JSON, a następnie poproś agenta o zapisanie wierszy do pliku CSV w folderze wyjściowym, który otwiera Excel. Konwersja wierszy na CSV to krok agenta; wartości komórek pochodzą z narzędzia.

Czy może wyodrębniać tabele z plików Word i Excel lokalnie?
Tak. extract_tables obsługuje DOCX i XLSX oraz PDF, a kontener odczytuje pliki z zamontowanego folderu.

Zagłęb się