Presenton 是一款开源的 AI 演示文稿生成器和 API
1. 项目简介
Presenton 是一款开源的 AI 演示文稿生成器和 API,被视为 Gamma、Canva、Beautiful AI、Decktopus 等商业产品的替代方案。它允许你完全自托管,无需 SaaS 锁定,完全掌控模型和数据。
核心特性:
- 完全自托管:通过 Docker 包在 Web 中运行,或下载桌面应用(Mac、Windows、Linux)
- 多模型支持:兼容 Ollama、LM Studio、OpenAI、Gemini、Vertex AI、Azure OpenAI、Amazon Bedrock、Fireworks、Together AI、Anthropic 或任何 OpenAI 兼容的提供商
- AI 演示文稿生成 API:提供完整的 REST API
- 完全开源:采用 Apache 2.0 许可证
- 自定义模板:支持使用自己的设计/模板
- 完全可编辑的 PPTX 导出:导出的 PowerPoint 文件完全可编辑
系统要求:
| 组件 | 要求 |
|---|---|
| Docker(推荐) | Docker Engine + Docker Compose 插件 |
| 桌面应用 | Node.js (LTS)、npm、Python 3.11、uv |
| 操作系统 | Windows、macOS、Linux |
| 磁盘空间 | 建议预留 5GB 以上(镜像约 2.5GB) |
重要提示:Presenton 需要配置至少一个 LLM 提供商(如 OpenAI、Google、Ollama 等)才能正常生成演示文稿。
2. 部署方式概览
Presenton 提供三种主要部署方式:
| 部署方式 | 适用场景 | 优势 |
|---|---|---|
| Docker 部署 | 推荐方式 | 一条命令启动,无需配置本地开发环境 |
| Electron 桌面应用 | 离线使用/开发 | 原生应用体验,数据完全本地 |
| 源码构建 | 开发者 | 完全可控,便于定制 |
3. 方式一:Docker 部署(推荐)
这是最简单快捷的部署方式,适合大多数用户。
3.1 Linux / macOS 部署
打开终端,执行以下命令:
1 | docker run -it --name presenton -p 5001:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest |
3.2 Windows 部署
打开 PowerShell,执行以下命令:
1 | docker run -it --name presenton -p 5001:80 -v "${PWD}\app_data:/app_data" ghcr.io/presenton/presenton:latest |
3.3 访问应用
容器启动后,在浏览器中访问:
text
1 | http://localhost:5001 |
说明:你可以将
5001替换为任意其他端口号来在不同的端口上运行 Presenton。如果使用 Docker Compose,可以设置PRESENTON_HTTP_HOST_PORT,例如PRESENTON_HTTP_HOST_PORT=8080 docker compose up production。
3.4 使用 Docker Compose 部署
对于生产环境,推荐使用 Docker Compose 方式:
步骤 1:克隆仓库
1 | git clone https://github.com/presenton/presenton.git |
步骤 2:配置环境变量
在 docker-compose.yml 旁边创建 .env 文件,配置你的 LLM 提供商:
1 | PRESENTON_HTTP_HOST_PORT=5001 |
步骤 3:启动服务
1 | docker compose up --build --detach production |
3.5 GPU 加速部署
如果你使用 Ollama 本地模型并希望启用 GPU 加速,需要先安装和配置 NVIDIA Container Toolkit。
安装完成后,使用 --gpus=all 参数启动:
1 | docker run -it --name presenton --gpus=all -p 5001:80 \ |
注意:GPU 加速可显著提升 Ollama 模型的性能,尤其是较大模型 。
4. 方式二:Electron 桌面应用部署
如果你偏好原生桌面应用体验,可以运行 Electron 版本。
4.1 前置要求
- Node.js (LTS)
- npm
- Python 3.11
- uv(用于共享 FastAPI 后端)
4.2 首次设置
1 | cd electron |
该命令会安装 Node 依赖、在 FastAPI 服务器中运行 uv sync、并安装 Next.js 依赖。
4.3 开发模式运行
1 | npm run dev |
该命令会编译 TypeScript 并启动 Electron,后端和 UI 在桌面窗口中本地运行。
4.4 构建安装包(可选)
创建 Windows、macOS 或 Linux 安装程序:
1 | npm run build:all |
输出文件写入 electron/dist 目录。
5. 方式三:源码构建部署
适合需要修改源码或深度定制的开发者。
5.1 前置要求
- Git
- Docker Engine
- Docker Compose 插件
5.2 克隆并构建
1 | # 克隆仓库 |
构建完成后,访问 http://localhost:5001 。
6. 关键配置说明
6.1 LLM 提供商配置
Presenton 支持多种 LLM 提供商,以下是常用配置示例:
使用 OpenAI:
1 | docker run -it --name presenton -p 5001:80 \ |
使用 Google Gemini:
1 | docker run -it --name presenton -p 5001:80 \ |
使用 Ollama(本地模型):
1 | docker run -it --name presenton -p 5001:80 \ |
使用 OpenAI 兼容 API:
1 | docker run -it -p 5001:80 \ |
6.2 图像生成提供商配置
| 提供商 | 环境变量 | 说明 |
|---|---|---|
| Pexels | PEXELS_API_KEY |
免费库存图片 |
| Pixabay | PIXABAY_API_KEY |
免费库存图片 |
| DALL-E 3 | OPENAI_API_KEY |
OpenAI 图像生成 |
| Gemini Flash | GOOGLE_API_KEY |
Google 图像生成 |
| ComfyUI | COMFYUI_URL / COMFYUI_WORKFLOW |
自托管 ComfyUI |
| OpenAI 兼容 | OPENAI_COMPAT_IMAGE_BASE_URL 等 |
任意 OpenAI 兼容端点 |
6.3 多用户认证配置
Presenton 支持多用户工作区,每个用户拥有私有空间。首次安装时,第一个账户成为主管理员。
无人值守部署时创建管理员:
1 | docker run -it --name presenton \ |
说明:用户名至少 3 个字符,新密码至少 8 个字符 。
凭证轮换:
1 | docker stop presenton |
账户恢复:
使用 RESET_AUTH=true 替代 AUTH_OVERRIDE_FROM_ENV=true 来恢复对现有主管理员的访问权限。
7. API 使用指南
Presenton 提供完整的 REST API,可用于自动化生成演示文稿。
7.1 生成演示文稿
端点:POST /api/v1/ppt/presentation/generate
认证:管理员在 Admin → API keys 创建访问密钥后,在请求头中发送 Authorization: Bearer YOUR_KEY。
请求示例:
1 | curl \ |
响应示例:
1 | { |
7.2 MCP 集成
Presenton 暴露符合 MCP 2025-11-25 标准的 Streamable HTTP 端点:/mcp。
配置示例(VS Code .vscode/mcp.json):
1 | { |
注意:MCP 在 Electron 桌面应用中不可用(
PRESENTON_ELECTRON=true)。
8. 更新与维护
8.1 更新 Docker 部署
1 | # 拉取新镜像 |
8.2 数据持久化
./app_data 目录包含所有持久化数据,包括:
- 生成的演示文稿
- 用户配置
- 数据库(SQLite)
重要:不要删除认证字段以重置访问。Presenton 在
app_data/userConfig.json中存储了主管理员凭证的哈希恢复副本和会话签名密钥。
9. 常见问题与解决方案
9.1 容器启动失败
问题:Docker 容器无法启动。
解决方案:
- 确认 Docker 已正确安装并运行
- 检查端口 5001 是否被占用
- 确认镜像拉取成功
9.2 演示文稿生成失败
问题:API 调用返回错误或生成超时。
解决方案:
- 确认已配置至少一个 LLM 提供商
- 检查 API Key 是否有效
- 查看容器日志:
docker logs presenton
9.3 Ollama 连接问题
问题:Docker 容器内无法连接到宿主机的 Ollama。
解决方案:
- 使用
host.docker.internal替代localhost - 或配置
OLLAMA_URL=http://host.docker.internal:11434 - Linux 用户可能需要使用宿主机的实际 IP 地址
9.4 GPU 加速不生效
问题:Ollama 模型运行速度慢,GPU 未使用。
解决方案:
- 确认已安装 NVIDIA Container Toolkit
- 使用
--gpus=all参数启动容器 - 验证 GPU 在容器内可见:
docker run --gpus=all nvidia/cuda nvidia-smi
9.5 导出 PPTX 失败
问题:生成的演示文稿无法导出为 PPTX。
解决方案:
- 确认磁盘空间充足
- 检查
app_data目录权限 - 尝试导出为 PDF 格式
10. 部署架构总结
| 部署方式 | 适用场景 | 启动命令 | 特点 |
|---|---|---|---|
| Docker(单容器) | 快速体验 | docker run ... |
一条命令启动 |
| Docker Compose | 生产环境 | docker compose up production |
配置文件管理 |
| Docker + GPU | 本地模型加速 | --gpus=all |
GPU 加速推理 |
| Electron 桌面 | 离线使用 | npm run dev |
原生应用体验 |
| 源码构建 | 开发者 | docker compose up --build |
完全可控 |
Presenton 作为一款开源的 AI 演示文稿生成器,通过 Docker 可以快速完成部署。对于大多数用户,推荐使用 Docker 单容器方式,配置好 LLM 提供商后即可开始生成演示文稿。如果需要生产环境部署,建议使用 Docker Compose 配合 .env 文件管理配置。对于需要离线使用的场景,Electron 桌面应用是理想选择。部署完成后,你可以通过 Web 界面、REST API 或 MCP 协议与 Presenton 交互,生成完全可编辑的 PowerPoint 演示文稿。




