“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; แท็กจะอยู่ในเซลล์ของแผ่นงาน. ในโหมดประเมินผลไฟล์งานที่บันทึกจะเพิ่มแผ่นงานพิเศษหนึ่งแผ่น

ไปลึกกว่า