للاستخراج الجماعي للبيانات من المستندات باستخدام وكيل ذكاء اصطناعي، اكتب المخطط في الموجه، وجه الوكيل إلى مجلد، واطلب قائمة استثناءات في النهاية. خادم GroupDocs.Parser.Mcp يقوم بالقراءة محليًا داخل حاوية Docker، لذا كل ملف يمر عبر نفس أدوات الاستخراج ولا يخرج أي مستند من الجهاز. يحدد نموذج اللغة الكبيرة (LLM) ترتيب العمل؛ وتقوم الآلية بقراءة الملفات.

لكل ملف PDF في مجلد المستندات الخاص بي: استخرج الجداول كـ JSON، احسب مجموع عمود المبلغ، وامنحني جدولًا واحدًا يحتوي على اسم الملف، المجموع، وعدد الصفحات.

الإصدار خطوة بخطوة مع الإعدادات واستكشاف الأخطاء موجود في الوثائق: كيفية استخراج البيانات من مجلد المستندات مرة واحدة.

لماذا ينتج عن الاستخراج اليدوي بيانات غير متسقة؟

عندما ينسخ الأشخاص القيم من المستندات واحدة تلو الأخرى، يتم التعامل مع كل ملف بشكل مختلف قليلاً: شخص يضيف الضريبة، وآخر لا يضيفها، وثالث يتخطى الملف ذو التخطيط الغريب. تكون عدم الاتساق غير مرئية حتى يتم مقارنة المجاميع. يُصلح سير العمل ذلك بجعل القواعد صريحة وتطبيقها على كل ملف بنفس الطريقة. مع الوكيل، تعيش القواعد في موجه واحد، وتتصرف أدوات الاستخراج بشكل متماثل على الملف الأول والملف المئتين.

كيف تبني سير العمل؟

قم بتركيب المجلد داخل الحاوية كـ /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"]
    }
  }
}

الأسئلة المتكررة

هل يمكنني معالجة مجلد من الفواتير باستخدام الذكاء الاصطناعي دون رفعها؟
نعم. الحاوية تقرأ المجلد المركب وتتواصل مع عميلك عبر stdio، لذا تبقى الفواتير على جهازك.

كيف أستخرج النص من ملفات PDF دفعةً محليًا؟
اطلب من الوكيل التكرار عبر المجلد واستدعاء extract_text لكل ملف، صفحة بصفحة للوثائق الطويلة، لأن المخرجات الكبيرة جدًا تُقصّ بعلامة.

هل يمكن للوكيل أتمتة إدخال البيانات من المستندات؟
يمكنه تجميع الصفوف المستخرجة في ملف CSV أو جدول ملخص. راجع قائمة الاستثناءات قبل إدخال أي شيء في نظام آخر.

تعمق أكثر