“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 ที่ออกแบบโดยฝ่ายการตลาด
ดังนั้นให้แบ่งงานตามความเชี่ยวชาญของแต่ละฝ่าย แม่แบบกำหนดว่ารายงานควรเป็นอย่างไร เอเจนต์เลือกแม่แบบและข้อมูล, แล้วบอกคุณว่าผลลัพธ์เป็นอะไร
สิ่งที่เอเจนต์ส่งผ่าน, และสิ่งที่เอนจินเห็น
เอเจนต์ตัดสินใจ เอนจินทำ แม่แบบเป็นเจ้าของ
แม่แบบใด อ่าน sales.xlsx/.csv การจัดรูปแบบตาราง ไฟล์ข้อมูลใด พิมพ์คอลัมน์ แผนภูมิและสไตล์ของมัน รูปแบบผลลัพธ์ (pdf) รวม, เรียงลำดับ, เลือกค่าสูงสุด หัวเรื่อง, ฟอนต์, โลโก้ เติมแถวตาราง, แผนภูมิ ความหมายของ “total”
ก่อนการสร้าง, เอเจนต์สามารถดูไฟล์ข้อมูลได้ สำหรับสเปรดชีตของเรา เซิร์ฟเวอร์รายงานว่ามีตารางหนึ่งตารางที่มีสามคอลัมน์:
-> 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 เพราะแม่แบบวนลูปตามค่านั้น; ไม่มีใครต้องบอกเช่นนั้น แม่แบบเดียวกันกับ 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 image มีให้แล้ว - วันที่ในไฟล์ข้อมูล: เก็บเป็นวันที่หรือ ISO เต็มพร้อมเวลา, แล้วจัดรูปแบบในแม่แบบ
คำถามที่พบบ่อย
เอเจนต์ AI สามารถสร้างแผนภูมิจาก 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