“Make me the regional sales report from sales.csv” bir dil modelinin mutlu bir şekilde bir Markdown tablosu yazarak, bir iki sayıyı yuvarlayarak ve çizemediği bir grafiği tarif ederek yanıtlayacağı bir istektir. GroupDocs.Assembly.Mcp yerel olarak çalıştırıldığında (dnx GroupDocs.Assembly.Mcp --yes), Claude Desktop, Cursor ya da Copilot veri dosyasını motorun eline verir: Word ya da PowerPoint şablonunuz tabloyu, toplamları ve gerçek bir grafiği tutar ve sunucu bunları CSV ya da elektronik tablodan doldurur; sayılar modelden hiç geçmez:

Bölgesel satış raporunu sales.xlsx dosyasından sales-report.docx olarak PDF ve sales-chart.pptx slaytıyla oluştur.

Adım adım yapılandırma ve sorun giderme sürümü belgelerde bulunabilir: How to build a report with tables and charts from a CSV or spreadsheet with an AI agent.

Neden sayılar modele geçmesin?

Çünkü bir model metin üreticisidir ve bir rapor aritmetik artı yerleşimdir. Bir ajan bir CSV’yi okur ve raporu kendisi yazar ise, her değer bir sonraki token tahminiyle yeniden yazılır. Çoğu doğru çıkar. Yanlış olan ise, kaynakla karşılaştırılana kadar görünmez; bu da raporun tasarruf etmesi amaçlanan işi tam tersine yapar. Grafikler daha da kötüdür: model bir grafik tarif edebilir ya da kod üretebilir, ancak çeyreklik sunumunuzdaki grafik bir PowerPoint dosyasındaki nesnedir, pazarlama ekibi tarafından stil verilmiştir.

Bu yüzden işi her iki tarafın da iyi olduğu bölümlere ayıralım. Şablon raporun nasıl görüneceğini belirler. Motor dosyayı okur ve sayımları yapar. Ajan şablonu ve veriyi seçer ve size çıkan sonucu söyler.

Ajanın gönderdiği ve motorun gördüğü

İşte tek bir tabloda bölünme:

ajan karar verir          motor yapar                şablon sahip olur
-----------------------  -------------------------  -----------------------
hangi şablon              sales.xlsx/.csv okur       tablo yerleşimi
hangi veri dosyası       sütunları tipler           grafik ve stili
çıktı formatı (pdf)      toplar, sıralar, max bulur  başlıklar, yazı tipleri, logo
                         tablo satırlarını doldur, grafik  "total" ne demek

Oluşturma öncesinde ajan veri dosyasına bakabilir. Elektronik tablomuz için sunucu bir tablo ve üç sütun olduğunu raporladı:

-> get_document_info {"file":{"filePath":"sales.xlsx"}}
<- { "dataKind": "table",
     "data": { "tableCount": 1, "tables": [ { "number": 1,
       "columns": [ "Region", "Quarter", "Revenue" ] } ] } }

Tablo raporu

Word şablonu ilk hücresinde <<foreach [r in sales]>> ve son hücresinde <</foreach>> içeren bir tablo satırı ve altında iki satır daha barındırır: <<[sales.Sum(r => r.Revenue)]>> ve <<[sales.OrderByDescending(r => r.Revenue).First().Region]>>. Tek bir çağrı:

-> 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

Rapor dört satır içerir (North 182000, South 146500, East 98250, West 211900), “Total revenue: 638650 EUR” ve “Best region: West” ifadeleriyle. Sunucu veriye sales adını verdi çünkü şablon bu adı döngüde kullanıyor; kimsenin bunu belirtmesi gerekmedi. Aynı şablon sales.csv ile de aynı toplamları verdi; CSV için hasHeaders ve csvDelimiter başlık satırı olmayan ya da noktalı virgül kullanılan dosyaları kapsar.

Grafik

GroupDocs.Assembly şablonundaki bir grafik, iki yerde etiketler bulunan sıradan bir grafiktir. Grafik başlığı Revenue by region<<foreach [r in sales]>><<x [r.Region]>> şeklinde okunur: satırları döngüyle geç, her bölge için bir kategori. Seri adı Revenue<<y [r.Revenue]>> şeklinde okunur: her satır için bir değer. Grafiğin içindeki yer tutucu veri sadece tasarımcının görebilmesi içindir.

-> 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

Sonucu açtık: Revenue by region başlıklı bir sütun grafiği, kategoriler North, South, East ve West, değerler 182000, 146500, 98250 ve 211900; etiketler kaldırılmış ve şablonun stilizasyonu korunmuş. Aynı etiketler Word ve Excel grafiklerinde de çalışır.

Neden ajanı bir grafik resmi istemeyelim?

İsteyebilirsiniz ve sohbet içinde tek seferlik bir yanıt için bu uygundur. Bir rapor için üç sorunu vardır: resim bir fotoğrafdır, kimse üzerine tıklayıp bir değeri kontrol edemez; stili, çizim kodunun varsayılanı olur, sizin kurumsal stiliniz değildir; ve üzerindeki sayılar model üzerinden geçmiştir. Şablon grafiği ise dosyadan doldurulan, şablonu oluşturan kişi tarafından bir kez stil verilen yerel bir grafik nesnesidir.

Dürüst sınırlamalar

  • Tablo ve grafik etiketleri şablonda önceden bulunmalıdır; ajan bunları tasarlamaz. get_template_fields şablonun okuduğu verileri gösterir.
  • Değerlendirme modu: her çıktı “Evaluation Only. Created with GroupDocs.Assembly 26.7…” ile başlar ve kaydedilen çalışma kitapları ekstra bir çalışma sayfası ekler.
  • Veride boş bir liste sütun tipine sahip değildir, bu yüzden allowMissingMembers ile bile aritmetik işlem başarısız olur. Filtrelemenin satır döndürdüğünden emin olun.
  • Linux üzerindeki sunum şablonları dnx ile çalıştırıldığında libgdiplus gerektirir; Docker imajı bunu içerir.
  • Veri dosyalarındaki tarih değerleri: tarih olarak ya da zaman içeren tam ISO olarak tutun ve şablonda biçimlendirin.

SSS

Bir AI ajanı CSV’imden grafik oluşturabilir mi, yüklemeden?
Evet. Sunucu yerel olarak çalışır, CSV ya da elektronik tabloyu depolama klasörünüzden okur ve raporu oraya yazar; sayılar dosyadan belgeye modele geçmeden aktarılır.

Şablon hangi veri dosyalarını okuyabilir?
JSON, XML, CSV ve TSV, ayrıca bir elektronik tablo, Word ya da PowerPoint belgesi içindeki tablo; dataTable birden fazla tablo olduğunda tabloyu seçer.

Rapor PDF yerine Excel dosyası olabilir mi?
Evet, bir XLSX şablonu kullanın; etiketler çalışma sayfası hücrelerine konur. Değerlendirme modunda kaydedilen çalışma kitabı ekstra bir çalışma sayfası ekler.

Daha derine in