feat: team-report PPT slides 4-5 feature demos
This commit is contained in:
@@ -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 })
|
||||
|
||||
Reference in New Issue
Block a user