Licence
AGPL-3.0
Version
0.1.7
Deps
1
Size
38 kB
Vulns
0
Weekly
0
lemonPPT
一句话生成可编辑的演示文稿。
lemonPPT 是一个基于 AI 的演示文稿生成与渲染引擎。它接收自然语言需求,自动规划页面结构、选择版式与主题,输出可在浏览器中编辑、可导出为 PPTX/PDF 的演示文稿。
特性
- 自然语言生成:输入一句话需求,AI 自动输出
goal.json页面规划。 - 主题系统:内置极简白、深色科技、暖色商务三套主题,支持一键切换。
- 丰富版式:封面、目录、核心数字、图文、对比、流程、引用、结尾、SWOT、PEST、图表等 18+ 版式。
- 浏览器编辑:在线修改文字、替换图片、撤销/重做、自动保存到 localStorage。
- 导出能力:一键导出可编辑 PPTX 与 PDF。
- 可扩展:版式与主题均为插件化注册,易于新增。
技术栈
- Monorepo:pnpm workspace
- 前端渲染:React 18 + TypeScript + Tailwind CSS(主题使用纯 CSS)
- 后端服务:Express + tsx
- 导出:pptxgenjs(PPTX)、Playwright(PDF)
- AI:OpenAI-compatible LLM API
目录结构
lemonPPT/
├── apps/
│ └── server/ # Express 服务与 API
├── packages/
│ ├── agent-prompts/ # AI prompt 与 goal.json 生成
│ ├── core/ # 核心类型与协议
│ ├── renderer/ # HTML/PPTX/PDF 渲染
│ ├── templates/ # 版式组件注册
│ └── themes/ # 主题 tokens 与 CSS
├── docs/ # 项目文档
│ ├── plans/ # 规划文档
│ ├── analysis/ # 方案分析
│ └── progress.md # 进度记录
├── examples/ # 示例 goal.json
├── scripts/ # CLI 脚本
├── SKILL.md # AI Agent 使用协议
├── LICENSE # AGPL-3.0 协议
├── CONTRIBUTING.md # 贡献指南(当前暂不接受外部 PR)
└── README.md # 本文件
快速开始
环境要求
- Node.js >= 20
- pnpm(通过 corepack 启用)
- macOS / Linux / WSL(PDF 导出依赖 Playwright,首次使用会自动下载 Chromium)
安装依赖
COREPACK_INTEGRITY_KEYS=0 corepack pnpm install
通过 npm 直接使用(无需克隆仓库)
# 生成 goal.json
npx @lemonppt/cli generate "AI 产品发布会" --pages 8 --out ./goal.json
# 导出 PPTX
npx @lemonppt/cli export ./goal.json --pptx ./output.pptx
# 安装 AI Agent skill
npx @lemonppt/cli install-skill
启动服务
COREPACK_INTEGRITY_KEYS=0 corepack pnpm --filter @lemonppt/server dev
服务默认运行在 http://127.0.0.1:5300。
使用浏览器编辑器
打开 http://127.0.0.1:5300/editor。
切换主题:http://127.0.0.1:5300/editor?theme=dark-tech
生成 goal.json
OPENAI_API_KEY=your-key OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_MODEL=gpt-4o \
node scripts/generate-goal.mjs "为我的 AI 创业公司做一份 10 页融资路演 PPT"
导出 PPTX / PDF
node scripts/render.mjs examples/sample-goal.json
node scripts/export-pptx.mjs examples/sample-goal.json
node scripts/export-pdf.mjs examples/sample-goal.json
API 列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/health |
健康检查 |
| POST | /api/generate-goal |
根据需求生成 goal.json |
| POST | /api/render |
渲染为 HTML |
| POST | /api/render-editor |
渲染可编辑 HTML |
| POST | /api/export/pptx |
导出 PPTX |
| POST | /api/export/pdf |
导出 PDF |
| GET | /editor |
打开编辑器 |
新增版式
- 在
packages/templates/src/base/创建新的 React 组件。 - 定义
LayoutMeta并导出组件(theme建议使用'base')。 - 在
packages/templates/src/registry.tsx中注册。 - 在三套主题的 CSS 中添加对应样式。
新增主题
- 在
packages/themes/src/新建主题目录,包含tokens.ts与styles.css。 - 在
packages/themes/src/index.ts中导出并注册。 - 在
apps/server/src/server.ts的resolveTheme中会自动识别,无需硬编码。
环境变量
| 变量 | 说明 |
|---|---|
OPENAI_API_KEY |
LLM API Key |
OPENAI_BASE_URL |
LLM API Base URL |
OPENAI_MODEL |
模型名称,例如 gpt-4o |
许可证
本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0) 开源协议。
lemonPPT 是独立开发的 AI 演示文稿生成工具,与 Dashi PPT 无代码或资产层面的依赖关系。详见 docs/LEGAL.md。
贡献
当前阶段暂不接受外部 Pull Request。我们欢迎通过 Issue 提交建议与反馈,正式开放贡献时会提前公告贡献者协议(CLA)流程。详见 CONTRIBUTING.md。
重要提示:若你将 lemonPPT 作为网络服务部署或集成到 AI Agent 中向第三方提供服务,根据 AGPL-3.0 要求,你必须向用户公开对应版本的源代码。