To mengekstrak data secara massal dari dokumen dengan agen AI, tuliskan skema ke dalam prompt, arahkan agen ke folder, dan minta daftar pengecualian di akhir. Server GroupDocs.Parser.Mcp melakukan pembacaan secara lokal dalam kontainer Docker, sehingga setiap file melewati alat ekstraksi yang sama dan tidak ada dokumen yang keluar dari mesin. LLM menentukan urutan kerja; mesin membaca file.

Untuk setiap PDF di folder dokumen saya: ekstrak tabel sebagai JSON, jumlahkan kolom amount, dan berikan saya satu tabel berisi nama file, total, jumlah halaman.

Versi langkah‑demi‑langkah dengan konfigurasi dan pemecahan masalah ada di dokumentasi: Cara mengekstrak data dari folder dokumen sekaligus.

Mengapa ekstraksi manual menghasilkan data yang tidak konsisten?

Ketika orang menyalin nilai dari dokumen satu per satu, setiap file ditangani sedikit berbeda: satu orang menyertakan pajak, yang lain tidak, yang ketiga melewatkan file dengan tata letak aneh. Ketidakkonsistenan ini tidak terlihat sampai totalnya dibandingkan. Sebuah alur kerja memperbaikinya dengan membuat aturan eksplisit dan menerapkannya pada setiap file dengan cara yang sama. Dengan agen, aturan berada dalam satu prompt, dan alat ekstraksi berperilaku identik pada file pertama dan file dua ratus.

Bagaimana cara membangun alur kerja?

Mount folder ke dalam kontainer sebagai /data, set GROUPDOCS_MCP_STORAGE_PATH=/data, dan beri agen langkah‑langkah berikut.

  1. Periksa lisensi. Prompt: “Jalankan get_license_status dan beri tahu saya mode-nya.” Ekstraksi tanpa lisensi terbatas, dan pembacaan parsial pada sebuah folder menghasilkan dataset yang salah secara diam‑diam.
  2. Triase folder. Prompt: “Untuk setiap file, laporkan format, jumlah halaman, dan apakah ekstraksi teks mengembalikan apa pun.” get_document_info menyediakan tipe, jumlah halaman, dan ukuran, dan panggilan extract_text satu halaman menunjukkan apakah teks ada.
  3. Perbaiki skema. Prompt: “Untuk setiap file yang dapat dibaca, ekstrak tabel baris‑item sebagai JSON. Kolom: item, quantity, amount. Jumlahkan kolom amount.” Ini menggunakan extract_tables.
  4. Kumpulkan kegagalan secara eksplisit. Prompt: “Daftar setiap file yang gagal, dilindungi kata sandi, atau tidak mengembalikan tabel, beserta alasannya.” Sekumpulan yang hanya melaporkan keberhasilan menyembunyikan pengecualian.
  5. Tulis output. Prompt: “Tulis satu baris per file ke CSV di folder output.”

File diselesaikan berdasarkan nama di dalam kontainer, sehingga agen mengirim invoice-014.pdf, bukan jalur host.

Apa yang diputuskan agen, dan apa yang dilakukan mesin?

Langkah Keputusan agen Yang dilakukan mesin
Triase File mana yang akan diekstrak Melaporkan tipe, halaman, dan ukuran; extract_text menunjukkan apakah teks ada
Penangkapan Alat apa yang dibutuhkan setiap file Mengembalikan teks atau baris tabel dari file
Validasi Apakah total cocok dengan teks Tidak ada; agen membandingkan
Pengecualian File mana yang masuk daftar Mengembalikan pesan kegagalan untuk file yang buruk
Output Bentuk CSV Tidak ada; agen menulisnya

Pemisahan inilah titik kuncinya. Menangkap nilai adalah pekerjaan mesin yang deterministik; menilai dan menyusunnya adalah tugas agen.

Contoh sesi (dipersingkat):

You:    Periksa lisensi, triase folder, lalu ekstrak baris item dari setiap PDF yang dapat dibaca dan daftar pengecualian.
Agent:  [calls get_license_status, get_document_info x12, extract_text, extract_tables x10]
        Mode lisensi: evaluasi. Hasil di bawah adalah tes percobaan.
        12 file: 10 dengan lapisan teks, 1 pemindaian, 1 dilindungi kata sandi.
        Total ditulis untuk 10 file. Pengecualian: scan-007.pdf (tidak ada lapisan teks), hr-020.pdf (kata sandi diperlukan).

Apa yang terjadi pada file yang tidak cocok?

Pemindaian tidak memiliki lapisan teks, sehingga ekstraksi tabel tidak mengembalikan apa pun untuknya. Sisihkan file tersebut, atau biarkan agen beralih ke extract_barcodes ketika halaman memuat nomor pelacakan atau kode pesanan. Daftar jatuh‑tur ini berfungsi sebagai inventaris bagian arsip yang berupa pemindaian. File yang dilindungi kata sandi gagal pada panggilan sendiri, jadi minta agen melaporkannya dan melanjutkan; alat menerima argumen password bila Anda memilikinya.

Bagaimana menjaga proses besar tetap terjangkau?

  • Batasi per halaman ketika data memiliki lokasi yang diketahui, seperti halaman pertama setiap faktur.
  • Hindari extract_images secara massal. Ini menulis file untuk setiap gambar, dan folder laporan berilustrasi menghasilkan ratusan.
  • Pantau penggunaan bermeter. Di bawah lisensi bermeter setiap panggilan ditagih berdasarkan pemrosesan, sehingga penyaringan terarah lebih murah daripada yang menyeluruh.

Apa batasannya?

Tanpa lisensi, ekstraksi terbatas; batas tepatnya ada di halaman lisensi. Server tidak memiliki OCR, sehingga teks hasil pemindaian tidak dapat ditangkap. Server hanya disediakan sebagai gambar Docker; tidak ada perintah dnx.

Bagaimana cara mendaftarkan server?

Entri manual minimal untuk Cursor, Claude Desktop, atau Windsurf, menggunakan jalur kontainer dari dokumen konfigurasi 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

Apakah saya dapat memproses folder faktur dengan AI tanpa mengunggahnya?
Ya. Kontainer membaca folder yang dipasang dan berkomunikasi dengan klien Anda melalui stdio, sehingga faktur tetap berada di mesin Anda.

Bagaimana cara mengekstrak teks dari PDF secara batch secara lokal?
Minta agen untuk mengulang folder dan memanggil extract_text per file, halaman per halaman untuk dokumen panjang, karena output yang sangat besar dipotong dengan penanda.

Dapatkah agen mengotomatisasi entri data dari dokumen?
Ia dapat menyusun baris yang diekstrak menjadi CSV atau tabel ringkasan. Tinjau daftar pengecualian sebelum apa pun dimasukkan ke sistem lain.

Go deeper