From 91651682a3a41be38db65d16cab4f6617b4f9d3d Mon Sep 17 00:00:00 2001 From: wangwei Date: Wed, 27 May 2026 18:24:56 +0800 Subject: [PATCH] feat: team-report PPT slides 4-5 feature demos --- generate-team-ppt.js | 187 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/generate-team-ppt.js b/generate-team-ppt.js index c06e31c..909ebdb 100644 --- a/generate-team-ppt.js +++ b/generate-team-ppt.js @@ -319,6 +319,193 @@ prs.defineLayout({ name: "LAYOUT_WIDE", width: 13.33, height: 7.5 }); }); } +// ════════════════════════════════════════════════════════ +// Slide 4 — 核心功能演示 1/2 +// ════════════════════════════════════════════════════════ +{ + const sl = prs.addSlide(); + sl.addShape("rect", { + x: 0, y: 0, w: "100%", h: "100%", + fill: { color: C.bg }, line: { color: C.bg, width: 0 }, + }); + topBar(sl); + sectionLabel(sl, "产品演示", 0.5, 0.55); + sectionTitle(sl, "核心功能一览(1/2)", 0.5, 0.85); + sectionSub(sl, "前 3 个模块已上线,功能可演示", 0.5, 1.4); + slideNum(sl, 4, 10); + + const features = [ + { + bg: ["FCE8F3", "FCD5E8"], icon: "📡", name: "法规智能感知", + tags: [{ t: "高影响", c: C.accent }, { t: "中影响", c: C.orange }, { t: "低影响", c: C.green }], + liveBadge: true, + desc: "六大法规源实时事件流,影响等级分级过滤,选中事件触发 SSE 流式 AI 影响分析", + }, + { + bg: ["EEF2FD", "DCE8FB"], icon: "📚", name: "文档知识库管理", + tags: [{ t: "LOAD", c: C.blue }, { t: "PARSE", c: C.blue }, { t: "EMBED", c: C.blue }, { t: "STORE", c: C.green }], + liveBadge: false, + desc: "PDF/Word 上传入库,5 步 Pipeline 可视化进度,双引擎解析,文档列表管理", + }, + { + bg: ["FFF5E8", "FDE8CC"], icon: "🔍", name: "合规分析审查", + tags: [{ t: "⚠ 高风险", c: C.red }, { t: "✓ 合规", c: C.green }], + liveBadge: false, + desc: "上传文件逐段风险评分,内嵌 Agent 对话针对具体条款实时问答,风险聚合仪表盘", + }, + ]; + + features.forEach((f, i) => { + const cx = 0.5 + i * 4.22; + sl.addShape("rect", { + x: cx, y: 1.85, w: 4.0, h: 5.0, + fill: { color: C.bgCard }, line: { color: C.border, width: 0.5 }, + shadow: makeShadow(), + }); + sl.addShape("rect", { + x: cx, y: 1.85, w: 4.0, h: 2.0, + fill: { type: "grad", stops: [{ position: 0, color: f.bg[0] }, { position: 100, color: f.bg[1] }] }, + line: { color: C.border, width: 0 }, + }); + sl.addText(f.icon, { + x: cx + 1.4, y: 2.0, w: 1.2, h: 0.9, + fontSize: 32, align: "center", fontFace: "Segoe UI Emoji", + }); + let tx = cx + 0.15; + f.tags.forEach(tag => { + const tw = tag.t.length > 4 ? 0.85 : 0.7; + sl.addText(tag.t, { + x: tx, y: 3.05, w: tw, h: 0.22, + fontSize: 8, bold: true, color: tag.c, + fill: { color: tag.c, transparency: 88 }, + line: { color: tag.c, width: 0.4, transparency: 70 }, + align: "center", margin: [2, 4, 2, 4], fontFace: "Calibri", + }); + tx += tw + 0.05; + }); + if (f.liveBadge) { + sl.addText("LIVE", { + x: cx + 3.15, y: 1.95, w: 0.65, h: 0.22, + fontSize: 8, bold: true, color: C.green, + fill: { color: C.green, transparency: 88 }, + line: { color: C.green, width: 0.4, transparency: 70 }, + align: "center", margin: [2, 4, 2, 4], fontFace: "Calibri", + }); + } + sl.addText(f.name, { + x: cx + 0.15, y: 3.45, w: 3.7, h: 0.35, + fontSize: 13, bold: true, color: C.text, fontFace: "Calibri", + }); + sl.addText(f.desc, { + x: cx + 0.15, y: 3.85, w: 3.7, h: 2.7, + fontSize: 11, color: C.text2, fontFace: "Calibri Light", + lineSpacingMultiple: 1.4, + }); + }); +} + +// ════════════════════════════════════════════════════════ +// Slide 5 — 核心功能演示 2/2 +// ════════════════════════════════════════════════════════ +{ + const sl = prs.addSlide(); + sl.addShape("rect", { + x: 0, y: 0, w: "100%", h: "100%", + fill: { color: C.bg }, line: { color: C.bg, width: 0 }, + }); + topBar(sl); + sectionLabel(sl, "产品演示", 0.5, 0.55); + sectionTitle(sl, "核心功能一览(2/2)", 0.5, 0.85); + sectionSub(sl, "Agent 对话核心链路真实运行(Milvus + LLM)· 监控模块已完成", 0.5, 1.4); + slideNum(sl, 5, 10); + + // 左宽卡 — Agent 对话 (w=8.3) + sl.addShape("rect", { + x: 0.5, y: 1.85, w: 8.3, h: 5.0, + fill: { color: C.bgCard }, line: { color: C.green, width: 1 }, + shadow: makeShadow(), + }); + sl.addShape("rect", { + x: 0.5, y: 1.85, w: 8.3, h: 1.8, + fill: { type: "grad", stops: [{ position: 0, color: "E8F5EF" }, { position: 100, color: "D0EDE2" }] }, + line: { color: C.border, width: 0 }, + }); + sl.addText("💬", { + x: 0.8, y: 1.95, w: 0.8, h: 0.7, + fontSize: 26, fontFace: "Segoe UI Emoji", + }); + sl.addText('"GB 18384 对我们的 BMS 设计有什么影响?" → Agent 检索 Milvus → 流式回答 + 来源引用', { + x: 0.8, y: 2.78, w: 5.7, h: 0.5, + fontSize: 10, color: C.green, + fill: { color: C.green, transparency: 90 }, + line: { color: C.green, width: 0.5, transparency: 70 }, + margin: [4, 8, 4, 8], fontFace: "Calibri Light", + }); + // 右侧组件 badges + const agentBadges = ["Milvus 向量库", "MinIO 对象库", "Embedding 引擎", "Reranker", "Sessions 会话"]; + agentBadges.forEach((b, i) => { + sl.addText(b, { + x: 6.55, y: 1.93 + i * 0.3, w: 2.05, h: 0.24, + fontSize: 8, color: C.green, + fill: { color: C.green, transparency: 90 }, + line: { color: C.green, width: 0.4, transparency: 60 }, + align: "center", margin: [2, 4, 2, 4], fontFace: "Calibri", + }); + }); + sl.addText("法规 Agent 对话", { + x: 0.7, y: 3.82, w: 4.5, h: 0.35, + fontSize: 14, bold: true, color: C.text, fontFace: "Calibri", + }); + sl.addText("● 核心链路已通", { + x: 5.0, y: 3.86, w: 2.2, h: 0.28, + fontSize: 10, color: C.green, fontFace: "Calibri", + }); + sl.addText("真实 Milvus 向量检索 + LLM 流式输出全链路贯通\n会话管理、来源归因卡片、多轮追问、法规类型筛选", { + x: 0.7, y: 4.25, w: 7.8, h: 0.9, + fontSize: 11, color: C.text2, fontFace: "Calibri Light", lineSpacingMultiple: 1.5, + }); + + // 右窄卡 — 系统监控 (w=3.9) + sl.addShape("rect", { + x: 9.0, y: 1.85, w: 3.9, h: 5.0, + fill: { color: C.bgCard }, line: { color: C.border, width: 0.5 }, + shadow: makeShadow(), + }); + sl.addShape("rect", { + x: 9.0, y: 1.85, w: 3.9, h: 1.8, + fill: { type: "grad", stops: [{ position: 0, color: "F0ECFF" }, { position: 100, color: "E2D8FF" }] }, + line: { color: C.border, width: 0 }, + }); + sl.addText("🖥️", { + x: 9.4, y: 2.0, w: 0.7, h: 0.65, + fontSize: 24, fontFace: "Segoe UI Emoji", + }); + const healthBadges = [ + { t: "Milvus ✓", c: C.green }, { t: "MinIO ✓", c: C.green }, { t: "LLM ✓", c: C.green }, + ]; + healthBadges.forEach((b, i) => { + sl.addText(b.t, { + x: 9.05 + i * 1.25, y: 3.0, w: 1.2, h: 0.22, + fontSize: 8, bold: true, color: b.c, + fill: { color: b.c, transparency: 88 }, + line: { color: b.c, width: 0.4, transparency: 70 }, + align: "center", margin: [2, 4, 2, 4], fontFace: "Calibri", + }); + }); + sl.addText("系统状态监控", { + x: 9.15, y: 3.82, w: 3.5, h: 0.35, + fontSize: 14, bold: true, color: C.text, fontFace: "Calibri", + }); + sl.addText("✓ 已完成", { + x: 9.15, y: 4.25, w: 2, h: 0.25, + fontSize: 10, bold: true, color: C.green, fontFace: "Calibri", + }); + sl.addText("五项基础设施实时健康检查,文档统计,系统配置总览(LLM / Embedding / 解析引擎)", { + x: 9.15, y: 4.6, w: 3.6, h: 2.0, + fontSize: 11, color: C.text2, fontFace: "Calibri Light", lineSpacingMultiple: 1.4, + }); +} + // ── 保存 ──────────────────────────────────────────────── const OUT = "C:/Projects/AIProjects/AIRegulations/AIRegulation-DocAnalysis-Demo/team-report.pptx"; prs.writeFile({ fileName: OUT })