Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

LRriver/AIPPT

Repository files navigation

AI PPT 生成器

English | 中文

复刻 NotebookLM 的 AI PPT 功能,并进一步增强为可控、可编辑、可自定义模型的 PPT 生成工作台,支持将论文、文档等资料自动转换为精美的 PPT 图片。

AIPPT 工作台演示

查看高清演示视频

演示视频覆盖上传 doc/L9.md、填写用户要求、生成并编辑设计大纲、确认逐页设计、生成 6 页 PPT、单页编辑、确认替换、导出 PDF/PPTX;模型等待阶段已做快进剪辑。

为什么不只是复刻

NotebookLM 的 PPT 能力更像"一键生成结果",中间设计过程和单页调整空间相对有限。本项目把生成链路拆成用户可理解、可干预的工作台流程:

  • 过程可见:先展示 PPT 大纲和逐页设计说明,用户确认后再生成图片
  • 逐页可改:每一页都能单独编辑、生成新版本、回退历史并确认替换
  • 模型可控:文本规划、生图、图片编辑可分别配置不同 OpenAI-compatible 模型
  • 本地可跑:配置保存在本地 config.yaml,API Key 不会暴露给前端或浏览器
  • 结果可导出:生成后可直接导出 PDF/PPTX,适合继续汇报或二次编辑

✨ 功能特性

  • 🎨 逐页图片生成:先生成可编辑设计大纲和逐页设计,再使用 AI 模型转换为 PPT 页面图片
  • 🌐 PPT 工作台:支持资料上传、模型配置、当前页大预览、缩略图列表、编辑历史和导出
  • 📝 多格式解析:支持 .md/.txt/.pdf/.docx/.pptx 输入,统一转 Markdown 后生成
  • ✏️ 整页图像编辑:支持对每页幻灯片单独二次编辑、历史回退和确认替换
  • 🔀 三模型角色:支持 prompt_modelimage_modeledit_model 分别配置
  • 🖼️ 图像结果兼容:兼容 URL、Markdown 图片链接、data URL、b64_json 和纯 base64
  • 💾 状态持久化:自动保存工作进度,支持会话恢复

🚀 快速开始

1. 安装配置

# 克隆项目
git clone <repository-url>
cd OpenNotebookLM-AIPPT
# 配置 API 密钥
cp config.example.yaml config.yaml
# 编辑 config.yaml,填入你的 API 密钥

2. 启动服务

方式一:WebUI 界面(推荐)

# 一键启动前后端
./start.sh

启动后访问:

方式二:分别启动前后端

# 终端 1:启动后端
./start-api.sh
# 终端 2:启动前端
cd web && npm install && npm run dev

方式三:命令行使用

# 安装依赖
pip install -r requirements.txt
# 基础用法
python main.py -i doc/L9.md -n 5
# 仅生成 Prompt
python main.py -i doc/L9.md -n 5 --prompt-only -o prompts.json
# 从 Prompt 文件生成
python main.py --from-prompt prompts.json

3. WebUI 使用流程

  1. 上传文档:在左侧面板拖拽或点击上传资料文件
  2. 配置模型:在中间面板配置文本、生图和编辑模型
  3. 设置参数与要求:选择页数、清晰度、比例、语言、风格、受众,并填写用户定制要求
  4. 确认设计:先生成设计大纲,用户可编辑后确认,再生成逐页设计预览
  5. 生成 PPT:确认逐页设计后生成 PPT 图片,实时查看进度
  6. 预览编辑:在右侧面板预览生成的幻灯片,点击可进行单页编辑
  7. 导出文件:选择 PDF 或 PPTX 格式导出

仓库内置演示资料为 doc/L9.md。该路径是仓库相对路径,clone 后可直接用于 WebUI 上传或命令行示例。

📁 项目结构

OpenNotebookLM-AIPPT/
├── src/ # 核心逻辑
├── api/ # FastAPI 后端
├── web/ # React 前端
├── tests/ # 测试
├── doc/ # 输入文档目录
│ └── L9.md # 默认演示资料
├── config.yaml # 配置文件
├── start.sh # 一键启动脚本
└── main.py # 命令行入口

⚙️ 配置说明

所有配置统一在 config.yaml 中管理,包括:

  • API 配置(文本 prompt、生图、编辑三角色模型)
  • PPT 默认配置(语言、风格、页数)
  • 超时和重试配置

详细配置示例请参考 config.example.yaml

使用 OpenAI 兼容 API

api:
 models:
 prompt_model:
 adapter: "openai_chat"
 model: "gpt-4o"
 base_url: "https://api.openai.com/v1"
 api_key: "sk-xxx"
 image_model:
 adapter: "raw_chat_multimodal"
 model: "gpt-image-2"
 base_url: "https://api.example.com/v1"
 api_key: "sk-xxx"
 edit_model:
 adapter: "raw_chat_multimodal"
 model: "gpt-image-2"
 base_url: "https://api.example.com/v1"
 api_key: "sk-xxx"

📤 输出结构

output/ppt_20241201_123456/
├── source_material.txt # 原始输入资料
├── prompts.json # 生成的 Prompt
├── result.json # 生成结果
├── presentation.pdf # 导出的 PDF
└── images/ # 幻灯片图片

📋 TODO

  • 支持框选局部区域编辑
  • 增加更多 provider profile 模板

📄 许可证

Apache License 2.0

About

open-source AI PPT generator inspired by NotebookLM, supporting editable slide planning, image generation, and PPTX/PDF export.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /