源码系统概览
文章正文
TL;DR SlidePilot(内部包名 banana-slides v0.3.0)是把想法变 PPT 的 AI 演示文稿生成工具。支持一句话、大纲、描述三种创作入口,提供自然语言精修、局部重绘、参考文件解析、PPTX/PDF/图片/讲解视频四类导出,前后端分离可 Docker Compose 一键部署,适合高频产出演示文稿的个人与团队。
传统 AI PPT 工具普遍存在模板固化、多轮改动难、同质化严重、素材质量低、图文排版割裂五类痛点。SlidePilot 走原生 AI 路线,把图像生成与文本模型直接接入,围绕演示文稿的创作、改稿、导出整条链路重建体验。
项目在 GitHub 由 Anionex 维护,版本 0.3.0 仓库共 450 个文件,前端 React 18 + TypeScript + Vite,后端 Flask 3.0 + SQLAlchemy + SQLite,Docker Compose 即可拉起完整前后端。下面从项目身份、场景、功能、部署四个维度展开介绍。
源码简介
SlidePilot 源自 Anionex 在 GitHub 开源的 banana-slides 项目,核心理念是 Vibe PPT,口头描述想法即可获得结构化演示文稿。当前 0.3.0 版本在原版基础上增强讲解视频导出与服务连通性测试,前端品牌统一为 SlidePilot。
仓库结构清晰,backend 目录承载 Flask API、AI 服务、导出服务、TTS 视频、文件解析、迁移脚本,frontend 目录承载 React 18 应用,cli 目录提供 banana-cli 批处理入口,skills 目录存放 AI 技能模板,scripts 目录提供翻译与作业模板,docker 目录提供镜像构建脚本。
协议方面,原版采用 AGPL-3.0,允许个人学习与科研使用,商业用途需要联系作者获取授权。源码下载与部署前请阅读 LICENSE 条款。
适用场景
方案汇报与产品发布场景,把产品亮点与客户画像写成主题,SlidePilot 在数分钟内输出含封面、目录、章节图、结尾的标准演示文稿。
销售提案与培训课件场景,需要高频出稿并保持视觉一致,系统按风格模板批量生成,避免每页排版割裂。
学术展示与行业研究场景,讲稿与数据可通过 PDF、Office、Markdown 上传解析,AI 自动提取要点并落到页面。
学生作业与个人分享场景,只需一句话描述主题即可获得一份可交付的演示文稿,把时间留给内容本身。
功能亮点
四类创作入口:一句话生成、从大纲生成、从描述生成、PDF/PPTX 翻新,覆盖从零到一与二次重制两种工作流。
页面级自然语言精修:支持整页改写、语气调整、内容扩写,框选区域做擦除、重绘、替换,所有改动写入历史版本,支持随时回滚。
素材与参考文件:支持 PDF、Office、Markdown、文本等格式上传,后端用 markitdown 与 PyMuPDF 解析文本与图片,百度 OCR 提供扫描件识别能力。
多模型路由:文本模型、图像模型、识别模型均可独立配置,支持 Gemini、OpenAI、Anthropic、Codex、LazyLLM(DeepSeek/豆包/千问/GLM)、火山引擎 Ark,适配国内外主流供应商。
多格式导出:导出 PPTX 标准演示文件、PDF 分享稿、逐页图、长短视频讲解(含 edge-tts 与 ElevenLabs 语音,自动加字幕),默认 16:9 比例适配主流投影。
服务连通性测试:设置页提供文本、图像、识别、OCR、文件解析五类自检,部署后即可在线验证能力是否正常,定位问题更直接。
| 特性 | SlidePilot(本项目) | Gamma | NotebookLM Slide Deck |
|---|---|---|---|
| 页数限制 | 无上限 | 免费层受限 | 15 页 |
| 多轮改稿 | 支持自然语言逐页改写 | 支持菜单式改稿 | 不支持 |
| 局部重绘 | 框选擦除或重绘 | 整页重生成 | 不支持 |
| 导出格式 | PPTX / PDF / 图片 / 讲解视频 | PPTX / PDF / 链接 | |
| 可编辑 PPTX | 支持(文本可二次编辑) | 图片堆叠 | 不支持 |
| 参考文件解析 | PDF / Office / Markdown / 文本 | 仅链接 | 仅源文档 |
| 自托管 | Docker Compose 一键部署 | 仅 SaaS | 仅 SaaS |
| 协议 | AGPL-3.0(非商用免费) | 闭源商业 | 闭源 |
技术架构与部署指南
技术栈与运行环境
前端:React 18 + TypeScript + Vite 5 + Zustand + TailwindCSS + @dnd-kit 拖拽 + Axios,默认监听 3000 端口。
后端:Flask 3.0 + SQLAlchemy + Alembic + SQLite,默认监听 5000 端口,任务调度用 ThreadPoolExecutor。
AI 接入:google-genai、openai、anthropic、火山引擎 Ark SDK、lazyllm 在线模型、onnxruntime 本地抠图,语音端用 edge-tts 与 ElevenLabs。
文档与导出:python-pptx 生成可编辑 PPTX,PyMuPDF 与 PyPDF2 处理 PDF,img2pdf 与 Pillow 处理图片,reportlab 兜底 PDF 生成。
部署:Python 3.10+ 与 Node 18+,Docker 20+,推荐 Linux/macOS/WSL2,Windows 原生可跑但建议使用 WSL2 减少路径问题。
安装与部署提示
推荐路径:克隆项目、复制 .env.example 为 .env、填写至少一个 AI Provider 的 API Key、docker compose up -d、前端访问 http://localhost:3000、后端访问 http://localhost:5000。
源码路径:后端用 uv 管理依赖,执行 uv sync 与 uv run alembic upgrade head 后 uv run python app.py,前端在 frontend 目录执行 npm install 与 npm run dev,前后端通过 Vite 代理联通。
CLI 批处理:banana-cli 提供 jobs 子命令,接受 JSONL 或 CSV 任务描述,可批量执行大纲生成、页面生成、导出三段任务,适合需要批量出稿的运营场景。
升级与迁移:Alembic 已维护 30+ 迁移脚本,升级前备份 backend/instance/database.db,执行 uv run alembic upgrade head 即可平滑升级数据库结构。
截图与演示说明
以下截图来自 SlidePilot 本地源码仓库 images 目录,均为无水印界面原图,展示项目实机运行效果。

首页集成一句话生成、从大纲生成、从描述生成、PPT 翻新四类创作入口,搭配风格模板选择和参考素材上传。

提供多种预设风格模板,用户可上传自有图片作为参考风格,AI 按风格批量生成一致观感的页面。

生成完成后支持对逐页标题与要点做精修,内置拖拽排序与自然语言改写入口。

预览页对单页图像做整页重绘或局部框选重绘,支持历史版本切换。

详细描述编辑器对单页内容做深度调整,支持素材库插入与参考文档引用。

导出页支持 PPTX、PDF、逐页图与含 AI 语音字幕的讲解视频,项目历史可随时回看。
常见问题
问:SlidePilot 对硬件有什么要求?
普通 2 核 4GB 云服务器即可满足开发与轻度使用,生产部署建议 4 核 8GB 并把 AI 请求外发到独立 API 服务,本地无需 GPU。
问:必须使用 Gemini 才能跑吗?
不必须。设置页可切换 Gemini、OpenAI、Anthropic、Codex、LazyLLM、火山引擎等 Provider,文本与图像模型可独立配置不同厂商。
问:支持中文输出吗?
支持。系统内置中英双语界面与多语言输出设置,大纲、页面描述、导出 PPTX/PDF 全部可指定中文。
问:讲解视频里的语音是怎么生成的?
后端集成 edge-tts 与 ElevenLabs 两种语音引擎,默认使用 edge-tts,需要更高自然度时可在设置页切换 ElevenLabs 并填入 API Key。
问:协议上能用于商业项目吗?
原版协议为 AGPL-3.0,允许个人学习与非营利科研使用,商业用途需要联系作者获取授权,二次分发需保留协议与版权声明。
安全风险提示
原版协议为 AGPL-3.0,二次开发并对外提供服务时需公开修改后源码,纯内网研究使用前请评估法务风险。
AI 调用会上传主题与素材内容到第三方 API,敏感数据建议脱敏后使用或部署本地模型替代。
默认数据库为 SQLite,生产环境建议切换为 PostgreSQL 并启用定期备份,避免单点丢失。
下载说明
下载本仓库源码后请先阅读 LICENSE 协议,根据是否商用决定是否需要联系作者授权。
部署前请准备至少一个 AI Provider 的 API Key,Gemini 免费层只支持文本,如需图像生成请使用付费层或兼容代理。
遇到问题可在 GitHub 仓库提交 Issue,或参考 docs 目录下的 configuration、quickstart、faq 三份文档做排错。
GitHub项目开源地址:https://github.com/Anionex/banana-slides
By the numbers: 450 文件 / Python 3.10+ / React 18 / Flask 3.0 / 8 类 AI Provider / 4 类创作入口 / 4 类导出格式 / 16:9 默认比例 / 30+ 数据库迁移版本