Skip to content

Repository files navigation

FPPT Standard Edition

English | 中文

AI 驱动的 HTML 演示文稿生成系统 · 开源免费 (MIT)

FPPT 标准版是一款运行在 AI 助手(如 Claude Code)中的 PPT 自动生成系统。你只需用自然语言描述需求——"做一份关于量化策略的 PPT"——AI 就会按照五层创作引擎自动完成从分析到生成的完整流程。

核心理念:你说"做什么",FPPT 负责"怎么做"。


目录


快速开始

环境要求

项目 最低要求 推荐
操作系统 Windows 10+ / macOS 12+ / Linux Ubuntu 22.04+
Python 3.10+ 3.11+
AI 助手 Claude Code / 支持 Skill 的工具 Claude Code 最新版
DeepSeek API Key 需要(用户自备)

安装

方式一:一键安装

# Windows
install.bat

# macOS / Linux
bash install.sh

安装脚本自动完成:Python 环境检测 → pip 依赖安装 → Playwright 浏览器安装。

方式二:手动安装

# 1. 安装 Python 依赖
pip install -r requirements.txt

# 2. 安装 Playwright 浏览器(PPTX/PDF 导出需要)
playwright install chromium

# 3. 配置 API Key
cp .env.example .env
# 编辑 .env,填入 DEEPSEEK_API_KEY=sk-xxx

获取 DeepSeek API Key:https://platform.deepseek.com

开始使用

在 AI 助手的对话中直接输入:

快速生成一份关于 <主题> 的PPT

AI 将自动完成:需求分析 → 大纲规划 → 逐页生成 → 拼装输出。生成的 HTML 文件位于 output/<项目名>/,用浏览器打开即可翻页演示。


两种生成模式

维度 快速模式 (Fast) 标准模式 (Full)
触发词 "快速生成"、"把这个资料做成PPT" "标准模式"、"用心做"、"正式做"
适合场景 日常汇报、信息充分、时间紧迫 正式提案、投资汇报、信息不足
创作流程 理解+规划 → 逐页生成 → 拼装 五层引擎(洞察→调研→架构→呈现→打磨)
User Gates 0(全自动) 3 个确认门
目标耗时 ≤ 10 分钟 ≤ 30 分钟
目标页数 ≤ 15 页 不限
Prompt 模板 core/prompts/quick_mode.md core/prompts/L1_insight.md ~ L5_polish.md

模糊指令(只说"做一份PPT"):AI 自动判断——素材充分、常规场景走快速模式;正式场合、信息不足走标准模式或反问确认。


五层创作引擎

标准模式下的完整创作管线:

用户需求
  ↓
L1 洞察层 (Insight)  →  分析受众、场景、核心信息、关键约束
  ↓   Gate 1: 方向确认
L2 调研层 (Research) →  搜索补充数据、案例、竞品信息
  ↓
L3 架构层 (Architect)→  设计叙事结构、逻辑线、页面大纲
  ↓   Gate 2: 大纲确认
L4 呈现层 (Craft)    →  逐页生成 HTML 幻灯片,填充内容+动效
  ↓
L5 打磨层 (Polish)   →  质检(P0-P3) + 统一风格 + 打包输出
  ↓   Gate 3: 最终确认
输出: HTML / PPTX / PDF
层级 Prompt 文件 核心任务 用户确认
L1 L1_insight.md 分析受众、场景、目标、约束 Gate 1
L2 L2_research.md 搜索数据、案例、竞品信息
L3 L3_architect.md 设计叙事结构、页面大纲 Gate 2
L4 L4_craft.md 逐页生成 HTML 内容
L5 L5_polish.md P0-P3 质检 + 打包输出 Gate 3

Gate 协议core/prompts/gate_protocol.md 定义了标准模式下 AI 与用户之间的三个确认门规范。


功能概览

核心能力

  • 7 套内置主题 — 金融蓝 / 商务灰 / 科技暗 / 杂志风 / 稳健绿 / 政务红 / 经典白
  • 15 种标准布局骨架 — 封面 / 章节幕封 / 数据大字报 / 左文右图 / 图片网格 / 两列流水线 / 悬念收束 / 大引用 / 并列对比 / 图文混排 / KPI 仪表盘 / 产品卡片 / 股票分析 / 纯文本 / 结尾
  • 5 层创作引擎 — 洞察(L1) → 调研(L2) → 架构(L3) → 呈现(L4) → 打磨(L5)
  • 3 Gate 确认机制 — 方向确认 → 大纲确认 → 最终确认

输出格式

  • HTML 翻页演示 — 主输出格式,浏览器打开即可全屏演示
  • PPTX 原生可编辑 — 通过 HTML→SVG→PPTX 管线导出
  • PDF 导出 — 通过 Playwright 渲染导出

演示功能

  • 演讲者模式(P 键)— 双窗口:主屏全屏播放 + 副屏显示计时器、备注、缩略图导航
  • 键盘翻页(← →)— 方向键前进/后退,带 900ms 贝塞尔曲线过渡动效
  • 主题实时切换(T 键)— 7 套主题一键切换,无需重新生成
  • 缩略图概览(ESC)— 网格视图快速导航到任意页面
  • URL hash 恢复index.html#05 直接跳转第 5 页
  • Motion One 动效 — 基于 Motion One 库的入场/退场动画(cascade、pipeline、quote、directional 等)
  • Chart.js 图表 — 本地离线回退,无需 CDN
  • WebGL 粒子背景 — hero 页 Three.js 流体/等高线动态背景,WebGL 不可用时 CSS 渐变自动降级

质量保障

  • P0-P3 四级质检清单core/checklist.md
    • P0 阻断级(11 项):CSS 类名合法性、无 emoji、字体分工、颜色走令牌、免责声明、结构完整性、JS 语法错误、资源完整性、交互功能验证
    • P1 重要级(7 项):hero 交替、页码连续性、动效标记、图片网格一致性、金融语义色、WebGL 降级
    • P2 打磨级(5 项):WebGL 可见性、无 box-shadow、无厚边框、图片圆角、Ghost 文字层级
    • P3 细节级(5 项):图片路径、术语统一、数字格式、日期格式、中英文间距
  • 数据自洽性检查 — 同类数据在不同页面表述一致性验证
  • 金融合规检查 — 免责声明、风险提示硬要求

国际化

  • 中英文双语 — 通过 FPPT_LANG 环境变量切换(zh-CN / en-US
  • locale JSON 文件locale/zh-CN.jsonlocale/en-US.json,覆盖许可、错误、UI 文案
  • i18n 加载器scripts/fppt_i18n.py,Python 端统一加载

One-Pager 模式

输入"生成一份 One-Pager",AI 将生成单页长图而非翻页幻灯片:

  • 横屏版:1920px × 内容驱动高 → HTML + PDF + PNG
  • 竖屏版:750px × 内容驱动高 → HTML + PDF + PNG(L5 自动从横版生成)
  • 竖版自动处理:viewport 调整、vw→px 字号转换、WebGL 移除、动效移除、图片限宽

项目结构

fppt-std/
├── assets/                         ← 静态资源
│   ├── template.html               ← 种子模板(全局 CSS + WebGL + JS 运行时)
│   ├── presenter.js                ← 演讲者模式(P键双窗口+计时器+备注)
│   ├── motion.min.js               ← Motion One 动效库 (~20KB)
│   ├── chart.umd.min.js            ← Chart.js 离线回退 (~200KB)
│   ├── chart-factory.js            ← Chart.js 图表工厂(AI 调用接口)
│   ├── themes/
│   │   └── std/                    ← 7 套标准主题 CSS(每文件一个 :root 块)
│   └── layouts/
│       └── std/                    ← 15 种布局骨架 HTML(12基础 + 3金融)
│
├── core/                           ← AI 核心
│   ├── prompts/                    ← 7 个 Prompt 模板
│   │   ├── quick_mode.md           ← 快速模式 Prompt
│   │   ├── L1_insight.md           ← L1 洞察层 Prompt
│   │   ├── L2_research.md          ← L2 调研层 Prompt
│   │   ├── L3_architect.md         ← L3 架构层 Prompt
│   │   ├── L4_craft.md             ← L4 呈现层 Prompt
│   │   ├── L5_polish.md            ← L5 打磨层层 Prompt
│   │   └── gate_protocol.md        ← Gate 确认协议规范
│   ├── checklist.md                ← P0-P3 四级质检清单(28项)
│   └── spec_lock_template.md       ← 数据锁定清单模板
│
├── references/                     ← AI 参考知识库
│   ├── themes_catalog.md           ← 主题目录(标准7套 + Pro扩展)
│   ├── layouts_catalog.md          ← 布局目录(标准15种 + Pro扩展)
│   ├── components_guide.md         ← CSS 组件速查手册
│   └── authoring_guide.md          ← 创作指南(设计令牌+美学纪律+流程)
│
├── scripts/                        ← 工具脚本
│   ├── fppt_i18n.py                ← i18n 多语言加载器
│   ├── html_to_pdf.py              ← HTML → PDF 导出(Playwright)
│   ├── html_to_svg.py              ← HTML → SVG 渲染(Playwright)
│   └── svg_to_pptx.py              ← SVG → PPTX 转换(python-pptx)
│
├── desktop/                        ← 桌面客户端(可选)
│   ├── main.py                     ← PyWebView 主程序
│   ├── build_win.bat               ← Windows 打包脚本(PyInstaller)
│   ├── build_mac.sh                ← macOS 打包脚本(PyInstaller)
│   └── ui/                         ← 客户端 UI(index.html + app.js + style.css)
│
├── tests/                          ← 自动化测试(18 文件 / 159 用例)
│   ├── test_theme.py               ← 主题加载与切换
│   ├── test_navigation.py          ← 键盘翻页与 hash 恢复
│   ├── test_presenter.py           ← 演讲者模式
│   ├── test_overview.py            ← 缩略图概览
│   ├── test_chartjs_local.py       ← Chart.js 本地回退
│   ├── test_e2e_browser.py         ← 浏览器端到端测试
│   ├── test_e2e_generate_flow.py   ← 生成流程端到端测试
│   ├── test_render.py              ← 渲染与导出
│   ├── test_checklist.py           ← 质检清单
│   ├── test_content_quality.py     ← 内容质量
│   ├── test_prompt_audit.py        ← Prompt 审查
│   ├── test_gate_orchestration.py  ← Gate 编排
│   ├── test_portrait.py            ← One-Pager 竖版
│   ├── test_desktop.py             ← 桌面客户端结构
│   ├── test_i18n.py                ← 国际化
│   ├── test_install.py             ← 安装脚本
│   ├── test_skill.py               ← Skill 定义
│   ├── conftest.py                 ← pytest fixtures
│   └── fixtures/                   ← 测试用 HTML 样本
│
├── locale/                         ← 多语言
│   ├── zh-CN.json                  ← 中文语言包
│   └── en-US.json                  ← English language pack
│
├── docs/                           ← 用户文档
│   ├── user-guide.md               ← 用户操作指南
│   ├── deployment.md               ← 安装部署指南
│   └── faq.md                      ← 常见问题
│
├── .env.example                    ← 环境变量模板
├── requirements.txt                ← Python 依赖清单
├── install.bat                     ← Windows 一键安装
├── install.sh                      ← macOS/Linux 一键安装
├── start.bat / start.sh            ← 桌面客户端启动脚本
├── SKILL.md                        ← AI Skill 定义(Claude Code 自动发现)
├── LICENSE                         ← MIT License
└── README.md                       ← 本文件

主题与布局

7 套标准主题

# 主题名 色调 适用场景
1 金融蓝 Financial Blue 深蓝 + 瓷白 + 金 金融默认:投资汇报 / BP / 产品说明
2 商务灰 Business Gray 炭灰 + 米白 + 蓝 通用商务 / 工作汇报 / 项目汇报
3 科技暗 Tech Dark 纯黑 + 暖白 + 青 技术分享 / 产品发布 / 金融IT方案
4 杂志风 Editorial 墨黑 + 暖米 策略分享 / 复盘交流
5 稳健绿 Steady Green 深绿 + 象牙白 风控 / 合规 / 可持续
6 政务红 Government Red 深红 + 米白 + 金 党建 / 政务汇报
7 经典白 Classic White 纯白 + 黑 + 蓝 学术 / 培训

选择建议:不确定时选金融蓝(最保险);内部日常选商务灰或杂志风;对外正式选金融蓝或经典白;技术内容选科技暗。

15 种标准布局

# 布局名 文件 用途 动效
1 开场封面 cover-opening.html 第 1 页,标题+副标题+日期 hero
2 章节幕封 chapter-divider.html 每幕/每章开场 hero
3 数据大字报 data-big-number.html 核心数字/KPI 独立展示 cascade
4 左文右图 left-text-right-image.html 图文配合/人物介绍/产品图 cascade
5 图片网格 image-grid.html 多图展示/产品对比 cascade
6 两列流水线 two-column-pipeline.html 步骤流程/时间线 pipeline
7 悬念收束 suspense-closing.html 幕末设问/制造悬念 hero
8 大引用 big-quote.html 金句/takeaway/名人名言 quote
9 并列对比 side-by-side-compare.html 旧vs新/Before-After/方案对比 directional
10 图文混排 text-image-mixed.html 信息密集页/多模块组合 cascade
11 纯文本 text-only.html 三要点并列/概念阐述 cascade
12 结尾页 ending.html 行动号召/联系方式/感谢 hero
13 KPI 仪表盘 finance-kpi-dashboard.html AUM/收益率/夏普/回撤等指标 cascade
14 产品卡片 finance-product-card.html 金融产品要素展示 cascade
15 股票分析 finance-stock-analysis.html 基本面+估值+催化剂+风险 cascade

交互功能

打开生成的 index.html 后,所有交互通过键盘完成:

快捷键 功能 说明
← → 翻页 前进/后退,900ms 贝塞尔曲线过渡
T 主题切换 7 套主题循环切换,实时生效
ESC 缩略图概览 网格视图,显示所有页面缩略图,点击跳转
P 演讲者模式 双窗口:主屏全屏播放 + 副屏(计时器+备注+缩略图导航),窗口间实时同步
URL #NN 页面直跳 地址栏 #05 跳转第 5 页

导出格式

PPTX(可编辑 PowerPoint)

# Step 1: HTML → SVG(逐页截图)
python scripts/html_to_svg.py output/<项目名>/index.html

# Step 2: SVG → PPTX(插入为可编辑矢量图形)
python scripts/svg_to_pptx.py output/<项目名>/ output.pptx

生成的 PPTX 中,每页为独立的可编辑矢量图形,可在 PowerPoint / WPS 中进一步编辑。

PDF

python scripts/html_to_pdf.py output/<项目名>/index.html output.pdf

完整保留 HTML 的布局、字体、颜色,适合打印和分发。

导出依赖 Playwright。安装:playwright install chromium


桌面客户端

fppt-std 附带一个基于 PyWebView 的轻量桌面客户端,适合不熟悉命令行的用户:

# 安装
pip install pywebview

# 启动
python desktop/main.py
# 或双击 start.bat (Windows) / bash start.sh (macOS/Linux)
  • 窗口规格:480×680,最小 400×560
  • API 连接:通过 FPPT_API_BASE_URL 环境变量配置远程 API(默认空,纯本地模式)
  • 打包分发
    • Windows:scripts/build_win.bat(PyInstaller)
    • macOS:scripts/build_mac.sh(PyInstaller)

测试

# 全部测试(159 个用例)
pytest tests/ -v

# 按模块筛选
pytest tests/ -v -k theme              # 主题相关
pytest tests/ -v -k navigation         # 翻页导航
pytest tests/ -v -k presenter          # 演讲者模式
pytest tests/ -v -k e2e                # 端到端测试

# 覆盖率
pytest tests/ --cov=. --cov-report=term-missing
测试模块 文件 覆盖范围
主题系统 test_theme.py 主题 CSS 加载、T 键切换、背景色变化
导航翻页 test_navigation.py 方向键翻页、URL hash 恢复、过渡动效
演讲者模式 test_presenter.py P 键双窗口、计时器、备注同步
缩略图概览 test_overview.py ESC 切换、网格渲染、点击跳转
Chart.js test_chartjs_local.py 本地回退、图表创建、响应式
渲染导出 test_render.py HTML 渲染、SVG/PPTX/PDF 导出
质检清单 test_checklist.py P0-P3 检查项验证
内容质量 test_content_quality.py 数据一致性、排版约束、受众适配
Prompt 审查 test_prompt_audit.py Prompt 模板完整性、指令衰减检测
Gate 编排 test_gate_orchestration.py 三层 Gate 协议验证
竖版 One-Pager test_portrait.py 竖版自动生成规则
桌面客户端 test_desktop.py 结构完整性、纯客户端模式
i18n test_i18n.py 中英文切换、locale 完整性
安装脚本 test_install.py install.bat/sh 结构检查
Skill 定义 test_skill.py SKILL.md 格式与完整性
E2E 浏览器 test_e2e_browser.py 浏览器环境端到端
E2E 生成流 test_e2e_generate_flow.py 完整生成流程验证

升级到 Pro

FPPT Pro 为金融从业者和重度用户提供深度行业适配:

功能 标准版 Pro 版
HTML 翻页演示
PPTX / PDF 导出
7 标准主题 + 15 标准布局
5 层创作引擎 + 3 Gate
演讲者模式 + 键盘交互
Chart.js + WebGL 粒子背景
中英文双语
金融行业完整包(5主题+7布局+10+图表)
One-Pager 完整体系(6种)
Pro 专属主题(21套)
Pro 专属布局(25套)
AI 图片生成
多画布格式(4:3 / 3:4 / 1:1)
长文本预处理 + URL 抓取
金融数据保真体系

含金融行业完整包 + One-Pager 体系,详见 FPPT 官网 | 功能详解

如何升级

  1. FPPT 官网 注册并购买 Pro
  2. 从 Dashboard 下载 .fppt_license 许可文件 → 放入 fppt-std 根目录
  3. 从 Dashboard 下载 Pro 资源包 → 解压到 fppt-std 目录
  4. 运行 python scripts/license_check.py --status 验证
# 验证 Pro 是否就绪
python scripts/license_check.py
# 退出码 0 = Pro 已激活

License

FPPT Standard Edition 采用 MIT License 开源发布。

Copyright (c) 2026 FPPT


开发方式

本项目完整基于 STDD(Specification-Driven Test-first Development) 方法论开发。

STDD 是一套规约驱动的测试先行开发流程,包含 6 个阶段:

Phase 1: UNDERSTAND → Phase 2: SPEC → Phase 3: SLICE → Phase 4: BUILD → Phase 5: VERIFY → Phase 6: DELIVER

所有功能均从 proposal.md 出发,经由 spec.md(GIVEN/WHEN/THEN 行为规格)→ test-plan.md(TC 测试方案)→ TDD 切片实现 → 全量质量验证,最终归档交付。

详见 changes/ 目录中的完整变更记录。

Pro 版功能需单独获取许可。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages