“Make me the regional sales report from sales.csv” là một yêu cầu mà mô hình ngôn ngữ sẽ vui vẻ trả lời bằng cách gõ một bảng Markdown, làm tròn một hoặc hai số trong quá trình, và mô tả một biểu đồ mà nó không thể vẽ. Khi GroupDocs.Assembly.Mcp chạy cục bộ (dnx GroupDocs.Assembly.Mcp --yes), Claude Desktop, Cursor hoặc Copilot sẽ chuyển tệp dữ liệu cho engine thay vì: mẫu Word hoặc PowerPoint của bạn chứa bảng, tổng số và một biểu đồ thực, và máy chủ sẽ điền chúng từ CSV hoặc bảng tính mà không có bất kỳ số nào đi qua mô hình:
Xây dựng báo cáo bán hàng khu vực từ sales.xlsx với sales-report.docx thành PDF, và slide biểu đồ với sales-chart.pptx.
Phiên bản từng bước với cấu hình và khắc phục sự cố có trong tài liệu: Cách xây dựng báo cáo với bảng và biểu đồ từ tệp CSV hoặc bảng tính bằng một AI agent.
Tại sao số liệu lại phải bỏ qua mô hình?
Bởi vì mô hình là một trình tạo văn bản, còn báo cáo là phép tính cộng trừ cộng thêm bố cục. Khi một agent đọc CSV và tự viết báo cáo, mọi giá trị đều được gõ lại bằng dự đoán token tiếp theo. Hầu hết đều đúng. Giá trị sai sẽ không hiện ra cho tới khi ai đó kiểm tra với nguồn, chính là công việc mà báo cáo dự định tiết kiệm. Biểu đồ còn tệ hơn: mô hình có thể mô tả một biểu đồ, hoặc tạo mã cho một biểu đồ, nhưng biểu đồ trong bản trình bày quý của bạn là một đối tượng trong tệp PowerPoint, được thiết kế bởi người trong bộ phận marketing.
Vì vậy hãy chia công việc dựa trên điểm mạnh của mỗi bên. Mẫu quyết định báo cáo sẽ trông như thế nào. Engine đọc tệp và thực hiện tính toán. Agent chọn mẫu và dữ liệu, và cho bạn biết kết quả.
Những gì agent truyền, và những gì engine nhìn thấy
Dưới đây là sự phân chia trong một bảng:
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
Trước khi tạo, agent có thể xem tệp dữ liệu. Đối với bảng tính của chúng tôi, máy chủ báo cáo một bảng có ba cột:
-> get_document_info {"file":{"filePath":"sales.xlsx"}}
<- { "dataKind": "table",
"data": { "tableCount": 1, "tables": [ { "number": 1,
"columns": [ "Region", "Quarter", "Revenue" ] } ] } }
Báo cáo dạng bảng
Mẫu Word có một hàng bảng với <<foreach [r in sales]>> trong ô đầu tiên và <</foreach>> trong ô cuối cùng, cộng hai dòng phía dưới: <<[sales.Sum(r => r.Revenue)]>> và <<[sales.OrderByDescending(r => r.Revenue).First().Region]>>. Một lời gọi:
-> 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
Báo cáo có bốn hàng (North 182000, South 146500, East 98250, West 211900), “Total revenue: 638650 EUR” và “Best region: West”. Máy chủ đặt tên dữ liệu là sales vì đó là tên mà mẫu lặp lại; không ai cần phải nói như vậy. Cùng một mẫu với sales.csv cho ra cùng tổng số; đối với CSV, hasHeaders và csvDelimiter hỗ trợ các tệp không có hàng tiêu đề hoặc có dấu chấm phẩy.
Biểu đồ
Một biểu đồ trong mẫu GroupDocs.Assembly là một biểu đồ thông thường với các thẻ ở hai vị trí. Tiêu đề biểu đồ là Revenue by region<<foreach [r in sales]>><<x [r.Region]>>: lặp qua các hàng, mỗi khu vực một danh mục. Tên chuỗi là Revenue<<y [r.Revenue]>>: một giá trị cho mỗi hàng. Dữ liệu placeholder bên trong biểu đồ chỉ để nhà thiết kế có thể nhìn thấy.
-> 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
Chúng tôi mở kết quả: một biểu đồ cột có tiêu đề Revenue by region, các danh mục North, South, East và West, giá trị 182000, 146500, 98250 và 211900, các thẻ đã biến mất và kiểu dáng của mẫu vẫn nguyên vẹn. Các thẻ tương tự cũng hoạt động trong biểu đồ Word và Excel.
Tại sao không yêu cầu agent tạo hình ảnh biểu đồ?
Bạn có thể làm, và đối với một câu trả lời một lần trong chat thì điều đó ổn. Đối với báo cáo, nó gặp ba vấn đề: hình ảnh là một bức tranh, nên không ai có thể nhấp vào và kiểm tra giá trị; phong cách của nó là mặc định của mã vẽ, không phải phong cách nội bộ của bạn; và các số trên đó đã đi qua mô hình. Một biểu đồ mẫu là một đối tượng biểu đồ gốc, được điền từ tệp, được định dạng một lần bởi người sở hữu mẫu.
Giới hạn trung thực
- Các thẻ bảng và biểu đồ phải đã có trong mẫu; agent không thiết kế chúng.
get_template_fieldscho biết mẫu đọc dữ liệu nào. - Chế độ đánh giá: mọi đầu ra bắt đầu bằng “Evaluation Only. Created with GroupDocs.Assembly 26.7…”, và các workbook đã lưu sẽ có thêm một worksheet.
- Một danh sách trống trong dữ liệu không có kiểu cột, vì vậy các phép tính số học trên nó sẽ thất bại, ngay cả khi dùng
allowMissingMembers. Kiểm tra bộ lọc bạn yêu cầu có trả về các hàng hay không. - Các mẫu trình chiếu trên Linux cần
libgdipluskhi chạy quadnx; Docker image đã bao gồm nó. - Ngày trong tệp dữ liệu: giữ chúng dưới dạng ngày hoặc ISO đầy đủ có thời gian, và định dạng chúng trong mẫu.
Câu hỏi thường gặp
AI agent có thể tạo biểu đồ từ CSV của tôi mà không tải lên không?
Có. Máy chủ chạy cục bộ, đọc CSV hoặc bảng tính từ thư mục lưu trữ của bạn và ghi báo cáo ở đó; các số đi thẳng từ tệp vào tài liệu mà không qua mô hình.
Mẫu có thể đọc những loại tệp dữ liệu nào?
JSON, XML, CSV và TSV, và một bảng bên trong bảng tính, tài liệu Word hoặc PowerPoint; dataTable chọn bảng khi có nhiều bảng.
Báo cáo có thể là tệp Excel thay vì PDF không?
Có, dùng mẫu XLSX; các thẻ sẽ đặt vào các ô worksheet. Trong chế độ đánh giá, workbook đã lưu sẽ có thêm một worksheet.
Đi sâu hơn
- Tài liệu, hướng dẫn chuẩn: Cách xây dựng báo cáo với bảng và biểu đồ từ tệp CSV hoặc bảng tính bằng một AI agent
- Trung tâm tài liệu: GroupDocs.Assembly MCP Server
- Bắt đầu tại đây: Để mô hình điền dữ liệu, không phải viết tài liệu
- Liên quan: Một trăm PDF cá nhân hoá từ một lời nhắc: mail merge với AI agent
- Liên quan: Mẫu này cần gì? Hỏi nó.
- Liên quan: Repo của bạn đã có dữ liệu; để agent tạo PDF
- Kiến trúc và mô hình bảo mật on‑premise: 3 kiến trúc cho xử lý tài liệu AI, và kiến trúc giữ file trong mạng nội bộ của bạn
- Câu hỏi: GroupDocs Assembly forum
- Nguồn: GroupDocs.Assembly.Mcp trên GitHub