Create professional presentations using the Pyramid Principle methodology. Supports PPTX generation, Marp/Reveal.js Markdown slides, chart creation, speaker notes, and self-evaluation rubrics. Minimal intake form to rapid output workflow.
| 工具 | 用途 | 安装方式 |
|---|---|---|
| Python ≥ 3.10 | 运行生成脚本 | 系统预装 |
python-pptx | 生成 PPTX 文件 | pip install python-pptx |
| 工具 | 用途 | 安装方式 |
|---|---|---|
marp-cli |
| Markdown → PPT/PDF |
npm install -g @marp-team/marp-cli |
matplotlib | 数据图表生成 | pip install matplotlib |
Pillow | 图片处理 | pip install Pillow |
plotly | 交互式图表 | pip install plotly kaleido |
python -c "from pptx import Presentation; print('python-pptx OK')"
marp --version # 可选
本技能采用 Barbara Minto 的金字塔原理组织幻灯片结构:
┌──────────────┐
│ 核心结论 │ ← 1 句话概括
└──────┬───────┘
┌─────────┼─────────┐
┌────┴────┐ ┌──┴───┐ ┌──┴────┐
│ 论点 A │ │论点 B│ │论点 C │ ← 3 个支撑论点
└────┬────┘ └──┬───┘ └──┬────┘
证据1-3 证据1-3 证据1-3 ← 每个论点 2-3 条证据
原则:
| 幻灯片 | 内容 | 时间 |
|---|---|---|
| 封面 | 标题、副标题、演讲者、日期 | — |
| 目录/议程 | 演讲结构概览 | 30s |
| 背景/问题 | 现状描述、痛点阐述 | 45-60s |
| 核心论点 1 | 第一个支撑论点 + 数据/案例 | 45-60s |
| 核心论点 2 | 第二个支撑论点 + 数据/案例 | 45-60s |
| 核心论点 3 | 第三个支撑论点 + 数据/案例 | 45-60s |
| 方案/建议 | 具体行动方案 | 45-60s |
| 时间线/路线图 | 实施计划 | 45-60s |
| 总结 | 回扣核心结论、关键要点 | 30s |
| Q&A / 致谢 | 联系方式、讨论时间 | — |
步骤 1 — 收集关键信息
向用户询问以下 5 个要素(尽量精简):
| # | 问题 | 示例回答 |
|---|---|---|
| 1 | 演讲主题是什么? | "Q4 产品路线图汇报" |
| 2 | 目标受众是谁? | "公司管理层" |
| 3 | 核心结论/诉求? | "需要追加 30% 研发预算" |
| 4 | 有哪些关键数据或论据? | "用户增长 200%、竞品分析、技术债" |
| 5 | 幻灯片数量偏好? | "10-15 页" |
如果用户只给了主题,根据常识和金字塔原理自行推导其余要素,并在生成前确认。
步骤 2 — 构建金字塔结构
基于收集的信息,输出结构大纲:
核心结论:追加 30% 研发预算以支撑用户增长
├── 论点A:用户量爆发增长(200%)带来系统压力
│ ├── 证据:月活跃用户趋势图
│ ├── 证据:服务器负载数据
│ └── 证据:用户投诉工单增长
├── 论点B:竞品正在加速投入
│ ├── 证据:竞品融资/招聘动态
│ ├── 证据:功能对比矩阵
│ └── 证据:市场份额变化
└── 论点C:技术债已影响迭代速度
├── 证据:发布周期对比
├── 证据:Bug 趋势
└── 证据:开发者满意度调查
步骤 3 — 生成幻灯片内容
逐页编写:
步骤 4 — 输出文件
根据用户需要选择输出格式(见 Output Format 部分)。
支持的图表类型
| 图表 | 适用场景 | 库 |
|---|---|---|
| 柱状图 | 对比数据 | matplotlib / plotly |
| 折线图 | 趋势变化 | matplotlib / plotly |
| 饼图 | 占比分布 | matplotlib / plotly |
| 散点图 | 相关性分析 | matplotlib / plotly |
| 瀑布图 | 增减分解 | plotly |
| 热力图 | 矩阵数据 | matplotlib / seaborn |
| 雷达图 | 多维对比 | matplotlib |
图表设计原则
生成图表的 Python 示例
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['Microsoft YaHei', 'SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
fig, ax = plt.subplots(figsize=(10, 6))
categories = ['Q1', 'Q2', 'Q3', 'Q4']
values = [120, 180, 240, 350]
colors = ['#e0e0e0', '#e0e0e0', '#e0e0e0', '#4A90D9']
ax.bar(categories, values, color=colors, width=0.6)
ax.set_title('Q4 营收突破 350 万,环比增长 46%', fontsize=16, fontweight='bold', pad=20)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
for i, v in enumerate(values):
ax.text(i, v + 5, f'{v}万', ha='center', fontsize=12)
plt.tight_layout()
plt.savefig('chart_revenue.png', dpi=200, bbox_inches='tight')
为每张幻灯片生成 45-60 秒的演讲稿:
规则:
[停顿]、[看向观众][提问]、[举手调查]示例:
那么我们来看第一个关键发现。[停顿]
过去一个季度,我们的月活跃用户从 50 万增长到了 150 万,
同比增长了 200%。[看向观众] 这是一个非常可喜的数字,
但同时也带来了挑战。
大家可以看到右边的图表,随着用户量的激增,
我们的服务器平均响应时间从 200 毫秒上升到了 800 毫秒,
高峰期甚至出现过 5 秒的延迟。[停顿]
这意味着什么?如果我们不尽快扩容,
用户体验将会显著下降,这直接影响留存率。
生成完成后,用以下 rubric 评估质量:
| 维度 | 满分 | 评分标准 |
|---|---|---|
| 结构逻辑 | 25 | 金字塔结构完整、论点 MECE |
| 视觉设计 | 20 | 一致的配色、排版、留白 |
| 数据可视化 | 20 | 图表清晰、标题即结论 |
| 演讲备注 | 15 | 流畅、口语化、时间合适 |
| 受众适配 | 10 | 语言风格匹配目标受众 |
| 行动导向 | 10 | 明确的 CTA 和下一步 |
目标分数:≥ 80/100。低于 80 分时自动修订弱项。
使用 python-pptx 生成标准 PowerPoint 文件:
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
slide_layout = prs.slide_layouts[6] # blank layout
slide = prs.slides.add_slide(slide_layout)
title_shape = slide.shapes.add_textbox(Inches(0.8), Inches(0.5), Inches(11.7), Inches(1.2))
tf = title_shape.text_frame
tf.text = "Q4 营收同比增长 46%,超额完成目标"
tf.paragraphs[0].font.size = Pt(28)
tf.paragraphs[0].font.bold = True
notes_slide = slide.notes_slide
notes_slide.notes_text_frame.text = "演讲备注内容..."
prs.save('presentation.pptx')
---