Belge verilerini toplu olarak bir AI ajanı ile çıkarmak için şemayı isteme yazın, ajanı bir klasöre yönlendirin ve sonunda bir istisna listesi isteyin. GroupDocs.Parser.Mcp sunucusu okuma işlemini yerel bir Docker konteynerinde yapar, böylece her dosya aynı çıkarma araçlarından geçer ve hiçbir belge makineden çıkmaz. LLM işi sırasını belirler; motor dosyaları okur.

Belgeler klasörümdeki her PDF için: tabloları JSON olarak çıkar, miktar sütununu topla ve bana dosya adı, toplam, sayfa sayısı içeren bir tablo ver.

Adım adım sürüm, yapılandırma ve sorun giderme belgelerde bulunabilir: Bir klasörden belge verilerini toplu olarak nasıl çıkarılır.

Manuel çıkarım neden tutarsız veri üretir?

İnsanlar belgelerden değerleri tek tek kopyaladıklarında, her dosya biraz farklı şekilde işlenir: bir kişi vergiyi ekler, bir diğeri eklemez, bir üçüncü ise garip düzeni olan dosyayı atlar. Tutarsızlık, toplamlar karşılaştırılana kadar görünmez. Bir iş akışı, kuralları açıkça tanımlayarak ve her dosyaya aynı şekilde uygulayarak bunu düzeltir. Bir ajanla kurallar tek bir istemde bulunur ve çıkarma araçları birinci dosyada ve iki yüzüncü dosyada aynı şekilde davranır.

İş akışını nasıl oluşturursunuz?

Klasörü konteyner içinde /data olarak bağlayın, GROUPDOCS_MCP_STORAGE_PATH=/data ayarlayın ve ajana şu adımları verin.

  1. Lisansı kontrol edin. İstem: “Run get_license_status and tell me the mode.” Lisanssız çıkarım sınırlıdır ve bir klasör üzerinde kısmi okuma sessizce hatalı bir veri kümesi oluşturur.
  2. Klasörü sınıflandırın. İstem: “For each file, report format, page count and whether text extraction returns anything.” get_document_info tür, sayfa sayısı ve boyutu sağlar, bir sayfalık extract_text çağrısı metnin var olup olmadığını gösterir.
  3. Şemayı düzeltin. İstem: “For each readable file, extract the line-items table as JSON. Columns: item, quantity, amount. Total the amount column.” Bu, extract_tables kullanır.
  4. Başarısızlıkları açıkça toplayın. İstem: “List every file that failed, was password-protected, or returned no table, with the reason.” Sadece başarıları raporlayan bir toplu işlem istisnaları gizler.
  5. Çıktıyı yazın. İstem: “Write one row per file to a CSV in the output folder.”

Dosyalar konteyner içinde isimle çözülür, bu yüzden ajan invoice-014.pdf gönderir, bir ana bilgisayar yolu göndermez.

Ajan ne karar verir, motor ne yapar?

Adım Ajan karar verir Motor yapar
Sınıflandırma Hangi dosyalardan çıkarım yapılacağı Tür, sayfa sayısı ve boyutu raporlar; extract_text metnin var olup olmadığını gösterir
Yakalama Her dosyanın hangi araca ihtiyacı olduğu Dosyadan metin veya tablo satırlarını döndürür
Doğrulama Toplamın metinle eşleşip eşleşmediği Hiçbir şey; ajan karşılaştırır
İstisnalar Hangi dosyalar listenin içine girecek Kötü bir dosya için hata mesajını döndürür
Çıktı CSV’nin biçimi Hiçbir şey; ajan yazar

Bölünme noktası budur. Değerleri yakalamak deterministik motor işidir; yargılamak ve birleştirmek ajanın görevidir.

Örnek oturum (kısaltılmış):

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).

Uymayan dosyalar ne olur?

Bir tarama (scan) metin katmanı içermez, bu yüzden tablo çıkarımı onun için hiçbir şey döndürmez. Bunları bir kenara koyun veya sayfa bir izleme numarası ya da sipariş kodu taşıyorsa ajanı extract_barcodes çağırmaya yönlendirin. Geçiş listesi, arşivin hangi bölümlerinin tarama olduğunu gösteren bir envanter görevi görür. Şifre korumalı bir dosya kendi çağrısında başarısız olur, bu yüzden ajanı bunu raporlamasını ve devam etmesini isteyin; araçlar bir password argümanını kabul eder.

Büyük bir çalışmayı uygun maliyetli nasıl tutarsınız?

  • Sayfaya göre kısıtla verinin bilinen bir konumu olduğunda, örneğin her faturanın ilk sayfası gibi.
  • Toplu halde extract_images kullanmaktan kaçının. Her görüntü için bir dosya yazar ve görselli rapor klasörü yüzlerce dosya üretir.
  • Ölçülen kullanıma dikkat edin. Ölçülen lisanslama altında her çağrı işleme göre faturalandırılır, bu yüzden hedefli bir tarama kapsamlı bir taramadan daha ucuzdur.

Sınırlamalar nelerdir?

Lisans olmadan çıkarım sınırlıdır; kesin sınırlamalar kütüphanenin lisans sayfasında bulunur. Sunucunun OCR’ı yoktur, bu yüzden taranmış metin yakalanamaz. Sadece bir Docker görüntüsü olarak sunulur; dnx komutu yoktur.

Sunucuyu nasıl kaydederim?

Cursor, Claude Desktop veya Windsurf için Parser yapılandırma belgelerindeki konteyner yollarını kullanarak minimal manuel giriş:

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

SSS

Faturalar klasörünü AI ile yüklemeden işleyebilir miyim?
Evet. Konteyner bağlanmış klasörü okur ve istemcinizle stdio üzerinden iletişim kurar, böylece faturalar makinenizde kalır.

PDF’lerden metni yerel olarak toplu şekilde nasıl çıkarırım?
Ajanı klasör üzerinde döngü yapması ve uzun belgeler için dosya başına, sayfa sayfa extract_text çağırması için isteyin, çünkü çok büyük çıktılar bir işaretçiyle kesilir.

Ajan belgelerden veri girişini otomatikleştirebilir mi?
Çıkarılan satırları bir CSV’ye veya özet tabloya birleştirebilir. Herhangi bir şey başka bir sisteme girilmeden önce istisna listesini gözden geçirin.

Daha derine in