“Make me the regional sales report from sales.csv” هو طلب سيستجيب له نموذج اللغة بسعادة عن طريق كتابة جدول Markdown، تقريب رقم أو اثنين على الطريق، ووصف مخطط لا يستطيع رسمه. مع تشغيل GroupDocs.Assembly.Mcp محليًا (dnx GroupDocs.Assembly.Mcp --yes)، يمرر Claude Desktop أو Cursor أو Copilot ملف البيانات إلى المحرك بدلاً من ذلك: قالب Word أو PowerPoint الخاص بك يحتوي على الجدول، الإجماليات ومخطط حقيقي، ويملأ الخادم هذه العناصر من ملف CSV أو جدول البيانات دون أن تمر الأرقام عبر النموذج:
بناء تقرير المبيعات الإقليمي من sales.xlsx باستخدام sales-report.docx كملف PDF، وشريحة المخطط باستخدام sales-chart.pptx.
الإصدار خطوة بخطوة مع الإعدادات واستكشاف الأخطاء موجود في الوثائق: How to build a report with tables and charts from a CSV or spreadsheet with an AI agent.
لماذا يجب أن تتجاوز الأرقام النموذج؟
لأن النموذج هو مولد نصوص، والتقرير هو حسابيات بالإضافة إلى تنسيق. عندما يقرأ وكيل CSV ويكتب التقرير بنفسه، يتم إعادة كتابة كل قيمة عن طريق توقع الرمز التالي. معظمها يخرج صحيحًا. ما لا يحدث هو أنه يبقى غير مرئي حتى يتحقق أحد من صحته مقارنة بالمصدر، وهذا بالضبط ما كان التقرير من المفترض أن يوفره. المخططات أسوأ: يمكن للنموذج وصف مخطط، أو إصدار شفرة له، لكن المخطط في عرضك الربعي هو كائن داخل ملف PowerPoint، مصمم من قبل شخص في قسم التسويق.
لذا قسّم العمل حسب ما يجيده كل جانب. القالب يحدد شكل التقرير. المحرك يقرأ الملف ويقوم بالحسابات. الوكيل يختار القالب والبيانات، ويخبرك بما تم إنتاجه.
ما الذي يمرره الوكيل، وما يراه المحرك
إليك التقسيم في جدول واحد:
the agent decides the engine does the template owns
----------------------- ------------------------- -----------------------
which template reads sales.xlsx/.csv the table layout
which data file types the columns the chart and its style
output format (pdf) sums, sorts, picks max headings, fonts, logo
fills table rows, chart what "total" means
قبل الإنشاء، يمكن للوكيل إلقاء نظرة على ملف البيانات. بالنسبة لجدول البيانات الخاص بنا أبلغ الخادم عن جدول واحد يحتوي على ثلاثة أعمدة:
-> get_document_info {"file":{"filePath":"sales.xlsx"}}
<- { "dataKind": "table",
"data": { "tableCount": 1, "tables": [ { "number": 1,
"columns": [ "Region", "Quarter", "Revenue" ] } ] } }
تقرير الجدول
قالب Word يحتوي على صف جدول واحد مع <<foreach [r in sales]>> في خليةه الأولى و<</foreach>> في خلية الأخيرة، بالإضافة إلى سطرين تحتهما: <<[sales.Sum(r => r.Revenue)]>> و<<[sales.OrderByDescending(r => r.Revenue).First().Region]>>. استدعاء واحد:
-> assemble_document {"template":{"filePath":"sales-report.docx"},
"data":{"filePath":"sales.xlsx"},"format":"pdf"}
<- Assembled 'sales-report.docx' with 'sales.xlsx' (table 1 (3
column(s): Region, Quarter, Revenue) as 'sales') as PDF
Saved to: .../sales-report_assembled.pdf
التقرير يحتوي على أربعة صفوف (North 182000، South 146500، East 98250، West 211900)، “Total revenue: 638650 EUR” و “Best region: West”. سمى الخادم البيانات sales لأن ذلك ما ي loops القالب فوقه؛ لم يضطر أحد لذكر ذلك. نفس القالب مع sales.csv أعطى نفس الإجماليات؛ بالنسبة لـ CSV، يغطي hasHeaders و csvDelimiter الملفات بدون صف رأس أو التي تستخدم الفواصل المنقوطة.
المخطط
المخطط في قالب GroupDocs.Assembly هو مخطط عادي مع وسوم في مكانين. عنوان المخطط يقرأ Revenue by region<<foreach [r in sales]>><<x [r.Region]>>: حلقة عبر الصفوف، فئة واحدة لكل منطقة. اسم السلسلة يقرأ Revenue<<y [r.Revenue]>>: قيمة واحدة لكل صف. بيانات العنصر النائب داخل المخطط موجودة فقط لكي يتمكن المصمم من رؤيتها.
-> assemble_document {"template":{"filePath":"sales-chart.pptx"},
"data":{"filePath":"sales.xlsx"}}
<- Assembled 'sales-chart.pptx' with 'sales.xlsx' (table 1 (3
column(s): Region, Quarter, Revenue) as 'sales') as PPTX
Saved to: .../sales-chart_assembled.pptx
فتحنا النتيجة: مخطط عمودي بعنوان Revenue by region، الفئات North، South، East و West، القيم 182000، 146500، 98250 و 211900، مع إزالة الوسوم وبقاء تنسيق القالب كما هو. نفس الوسوم تعمل في مخططات Word و Excel.
لماذا لا نطلب من الوكيل صورة للمخطط؟
يمكنك ذلك، ولإجابة لمرة واحدة في الدردشة يكون ذلك مقبولًا. لكن للتقرير توجد ثلاث مشكلات: الصورة هي صورة، فلا يمكن لأحد النقر داخلها والتحقق من قيمة؛ نمطها هو ما يحدده كود الرسم الافتراضي، وليس نمطك الداخلي؛ والأرقام الموجودة فيها مرت عبر النموذج في الطريق. المخطط القالب هو كائن مخطط أصلي، يُملأ من الملف، ويُنسق مرة واحدة من قبل مالك القالب.
حدود صريحة
- يجب أن تكون وسوم الجدول والمخطط موجودة بالفعل في القالب؛ الوكيل لا يصممها.
get_template_fieldsيظهر أي بيانات يقرأها القالب. - وضع التقييم: كل مخرجات تبدأ بـ “Evaluation Only. Created with GroupDocs.Assembly 26.7…"، وتضيف المصنفات المحفوظة ورقة عمل إضافية.
- القائمة التي تكون فارغة في البيانات لا تحتوي على أنواع أعمدة، لذا فشل الحساب عليها، حتى مع
allowMissingMembers. تحقق من أن الفلتر الذي تطلبه يعيد صفوفًا. - قوالب العروض التقديمية على Linux تحتاج إلى
libgdiplusعند تشغيلها عبرdnx؛ صورة Docker تتضمنها. - التواريخ في ملفات البيانات: احتفظ بها كتاريخ أو ISO كامل مع وقت، وقم بتنسيقها في القالب.
الأسئلة المتكررة
هل يمكن لوكيل الذكاء الاصطناعي إنشاء مخطط من ملف CSV دون رفعه؟
نعم. الخادم يعمل محليًا، يقرأ CSV أو جدول البيانات من مجلد التخزين الخاص بك ويكتب التقرير هناك؛ الأرقام تنتقل من الملف إلى المستند دون المرور عبر النموذج.
ما هي ملفات البيانات التي يمكن للقالب قراءتها؟
JSON، XML، CSV و TSV، وجدول داخل جدول بيانات أو مستند Word أو PowerPoint؛ dataTable يختار الجدول عندما يكون هناك عدة جداول.
هل يمكن أن يكون التقرير ملف Excel بدلاً من PDF؟
نعم، استخدم قالب XLSX؛ توضع الوسوم في خلايا ورقة العمل. في وضع التقييم يضيف المصنف المحفوظ ورقة عمل إضافية.
تعمق أكثر
- الوثائق، دليل الاستخدام الرسمي: How to build a report with tables and charts from a CSV or spreadsheet with an AI agent
- مركز الوثائق: GroupDocs.Assembly MCP Server
- ابدأ هنا: Let the model fill in the data, not write the document
- ذات صلة: A hundred personalised PDFs from one prompt: mail merge with an AI agent
- ذات صلة: What does this template need? Ask it.
- ذات صلة: Your repo already has the data; let the agent make the PDF
- النموذج الداخلي وأمانه: 3 architectures for AI document processing, and the one that keeps files inside your network
- أسئلة: GroupDocs Assembly forum
- المصدر: GroupDocs.Assembly.Mcp on GitHub