Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

335 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LandPPT - AI 驱动的 PPT 生成平台

GitHub stars GitHub forks GitHub issues License Python FastAPI Docker Ask DeepWiki

中文 | English

LandPPT Logo

主题 / 文档 → 大纲 → HTML PPT → 讲稿 / 配音 / 导出

一句话: LandPPT 是基于大语言模型的智能演示文稿平台——输入主题或上传文档,自动生成可编辑的专业 PPT,并支持讲稿、讲解视频与多格式导出。

核心能力:

能力 说明
一键生成 主题到完整 PPT,支持并行生成
智能配图 本地图库 / 网络图库 / AI 生成三源融合
深度研究 Tavily + SearXNG,实时抓取并摘要网络信息
讲稿与视频 演讲稿 + Edge-TTS 逐页讲解,可导出 1080p 视频
多格式导出 PDF / HTML / PPTX / 图片 / DOCX / Markdown
自动化 OpenAI 兼容 API + REST API,支持 API Key 鉴权

文档指南 · Docker Hub · Issues


目录


项目简介

LandPPT 将「写大纲 → 做版式 → 配图 → 写讲稿 → 导出」整合成一条 AI 工作流:

  1. 输入:主题描述,或 PDF / Word / Markdown / Excel / PPT 等文档
  2. 规划:生成可编辑大纲,可选深度研究补充最新信息
  3. 生成:并行产出 HTML 幻灯片,支持模板与 AI 自适应布局
  4. 打磨:侧边栏 AI 对话编辑、换图、视觉参考
  5. 交付:导出多格式,或生成公开分享链接(含讲解音频与字幕)

本地默认: SQLite + 内存缓存,一条命令即可试用,无需 PostgreSQL / Valkey。
生产推荐: docker compose 编排 Web + Worker + PostgreSQL + Valkey + MinIO。


功能特性

多 AI 提供商

  • OpenAI GPT、Anthropic Claude、Google Gemini、Azure OpenAI
  • 兼容 DeepSeek、Moonshot、Qwen 等 OpenAI 协议接口
  • 支持 Ollama 本地模型;按角色(大纲 / 幻灯片 / 编辑 / 模板 / 讲稿)路由模型,便于控成本

文件处理与深度研究

  • 多格式:PDF / Word / Markdown / TXT / Excel / PowerPoint
  • MinerU + MarkItDown 高质量解析
  • Tavily + SearXNG 多引擎检索与网页摘要

智能图像

  • 三源:本地图库 / Pixabay、Unsplash / DALL·E、SiliconFlow、Pollinations、OpenAI、Gemini
  • AI 自动匹配;尺寸、格式与质量自动处理
  • 图像服务默认关闭,按需开启(ENABLE_IMAGE_SERVICE

模板与项目

  • 全局主模板 + 场景模板(通用 / 旅游 / 教育等)
  • 上传参考 PPTX 抽取版式;项目级 AI 自适应模板
  • 四阶段工作流:需求确认 → 大纲 → 任务追踪 → PPT 生成
  • 阶段重跑与恢复;可视化大纲;一键公开分享

平台与运维

  • Docker 单容器 / Compose 多服务;后台任务(PDF / PPTX / 讲解视频)异步执行
  • 本地账号、GitHub / Linux Do OAuth、邮件验证、注册限流
  • 可选积分系统、SMTP / Resend、Cloudflare Turnstile

界面预览

主界面

主界面

大纲与生成效果

大纲

生成效果

更多截图(在线编辑 / 讲稿 / 导出 / 模板)

主界面(备选)

主界面 2

生成效果(备选)

生成效果 2

在线编辑

编辑 1

编辑 2

编辑 3

编辑 4

讲稿生成

讲稿

导出效果

导出

模板生成

模板


依赖与能力边界

请先分清「最小可跑」和「完整能力」,避免跑通后才发现缺 Key。

能力 依赖 说明
基础生成(大纲 / HTML PPT) 至少一个 AI Provider Key 必需
本地模型 Ollama 等 可选,可完全离线推理
深度研究 TAVILY_API_KEY 或 SearXNG 可选
网络 / AI 配图 对应图库或生图 Key + ENABLE_IMAGE_SERVICE=true 可选,默认关闭
标准可编辑 PPTX APRYSE_LICENSE_KEY(商业许可) 可选但导出可编辑 PPTX 时必需
图片型 PPTX 无 Apryse 保真高,页内元素通常不可再编辑
讲解视频 ffmpeg;可选 ComfyUI TTS 可选
生产多用户 / 后台任务 PostgreSQL + Valkey + MinIO + Worker 推荐 Compose 一键起

安全提示(生产必读)

  • 修改 SECRET_KEY、管理员密码,勿使用默认 admin / admin123
  • 生产编排默认关闭管理员自动初始化;首次部署再显式打开 LANDPPT_BOOTSTRAP_ADMIN_ENABLED
  • 配置强随机 LANDPPT_API_KEY / LANDPPT_API_KEYS
  • 勿将真实密钥提交到 Git

快速开始

系统要求

  • Python 3.11+
  • SQLite 3(本地默认)
  • ffmpeg(讲解视频导出需要)
  • Docker(可选)

数据库迁移

  • 默认启动时自动检测并执行迁移;可用 LANDPPT_AUTO_MIGRATE_ON_STARTUP=false 关闭
  • 本地默认 SQLite;仅在设置 DATABASE_URL 时切换到 PostgreSQL 等
  • 多节点共享同一数据库时,建议关闭自动迁移,改为单独跑一次迁移作业

方式一:uv(推荐本地)

git clone https://github.com/sligter/LandPPT.git
cd LandPPT

# 安装 uv(如未安装)
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

uv sync --extra dev
cp .env.example .env
# 编辑 .env,至少配置一个 AI API Key

# 默认 :8000,SQLite + 内存缓存
uv run python run.py

方式二:pip

git clone https://github.com/sligter/LandPPT.git
cd LandPPT

python -m venv venv
# Windows: venv\Scripts\activate
# macOS / Linux: source venv/bin/activate

pip install -e .
cp .env.example .env
# 编辑 .env,配置 AI API Key

python run.py

方式三:Docker 单容器

docker pull bradleylzh/landppt:latest

docker run -d \
  --name landppt \
  -p 8000:8000 \
  -v $(pwd)/.env:/app/.env \
  -v landppt_data:/app/data \
  -v landppt_uploads:/app/uploads \
  -v landppt_reports:/app/research_reports \
  -v landppt_cache:/app/temp \
  -v landppt_lib:/app/lib \
  bradleylzh/landppt:latest

docker logs -f landppt

运行前请先创建并配置 .env(至少包含 AI API Key)。

方式四:Docker Compose(推荐生产)

仓库内 docker-compose.yml 会启动 landppt(Web)+ worker + PostgreSQL + Valkey + MinIOminio-init 自动建桶),适合多用户与后台任务。本地轻量体验仍推荐直接 python run.py

cp .env.example .env
# 至少配置:AI Key、SECRET_KEY、POSTGRES_PASSWORD

docker compose up -d
docker compose logs -f landppt
  • 访问:http://localhost:8000(可用 LANDPPT_PORT 修改)
  • MinIO 控制台:http://localhost:9001
  • 生产默认关闭管理员自动初始化;首次部署请设置 LANDPPT_BOOTSTRAP_ADMIN_ENABLED=true 及对应账号密码
  • 镜像默认 bradleylzh/landppt:latest,可用 LANDPPT_IMAGE 覆盖

方式五:开发热重载

cp .env.example .env
docker compose -f docker-compose-dev.yaml up -d --build
docker compose -f docker-compose-dev.yaml logs -f landppt

开发编排基于本地 Dockerfile 构建,挂载源码并热重载;默认初始化管理员 admin / admin123


使用指南

1. 访问服务

启动后:

入口 地址
Web 界面 http://localhost:8000
API 文档 http://localhost:8000/docs
健康检查 http://localhost:8000/health

本地 / 开发环境常会自动初始化管理员(admin / admin123),由 LANDPPT_BOOTSTRAP_ADMIN_* 控制。生产请务必改密或关闭自动初始化。

2. 配置 AI 提供商

在设置页或 .env 中配置:

  • OpenAI API Key(兼容 DeepSeek、Moonshot、Qwen 等 OpenAI 协议接口)
  • Anthropic / Google API Key
  • 或本地 Ollama

3. 创建 PPT 项目

  1. 需求确认:主题、受众、页数、场景模板
  2. 大纲生成:结构化大纲 + 可视化编辑
  3. 内容研究(可选):深度研究补充最新信息
  4. 图像配置(可选):本地 / 网络 / AI 生成
  5. PPT 生成:基于大纲生成 HTML 演示文稿

4. 编辑与导出

  • 侧边栏 AI 对话改内容与样式,可上传图像作视觉参考
  • 生成演讲稿(DOCX / Markdown / PPT 备注)
  • 逐页讲解音频:Edge-TTS 或 ComfyUI Qwen3-TD(可上传参考音频)
  • 导出讲解视频(MP4,1080p,30/60fps,可选字幕)
  • 导出 PDF、HTML、标准 PPTX图片型 PPTX、讲稿等
  • 一键公开分享(分享页支持讲解音频与字幕)

5. 自动化接口

  • API Key 鉴权,便于接入 CI、脚本、n8n 等
  • OpenAI 兼容:/v1/chat/completions/v1/completions/v1/models
  • 项目级导出 / 分享 / 讲稿接口,适合非浏览器工作流

配置说明

完整变量见 .env.example,高级项见 src/landppt/core/config.py。下面只列最小可跑生产必改

最小可跑(本地)

# 至少一个 AI 提供商
DEFAULT_AI_PROVIDER=openai
OPENAI_API_KEY=your_openai_api_key_here
# 或 ANTHROPIC_API_KEY / GOOGLE_API_KEY / 本地 Ollama

HOST=0.0.0.0
PORT=8000

# 本地默认(可省略)
# DATABASE_URL=sqlite:///./landppt.db
# CACHE_BACKEND=memory

生产必改 / 强烈建议

SECRET_KEY=replace-with-long-random-string
POSTGRES_PASSWORD=replace-with-strong-password   # Compose 生产栈

LANDPPT_BOOTSTRAP_ADMIN_ENABLED=false            # 或 true + 自定义账号密码
# LANDPPT_BOOTSTRAP_ADMIN_USERNAME=...
# LANDPPT_BOOTSTRAP_ADMIN_PASSWORD=...

LANDPPT_API_KEY=replace-with-strong-random-key
# 或多密钥:LANDPPT_API_KEYS=admin:prod-key,robot:n8n-key

# 生产存储示例
# DATABASE_URL=postgresql://landppt:password@localhost:5432/landppt
# CACHE_BACKEND=valkey
# VALKEY_URL=valkey://localhost:6379

按需开启

# 角色级模型路由(控成本)
OUTLINE_MODEL_NAME=gpt-4o-mini
SLIDE_GENERATION_MODEL_NAME=gpt-4o
SPEECH_SCRIPT_MODEL_NAME=gpt-4o-mini

# 深度研究
TAVILY_API_KEY=...
# SEARXNG_HOST=http://localhost:8888
# RESEARCH_PROVIDER=tavily   # tavily | searxng | both

# 图像服务(默认关闭)
ENABLE_IMAGE_SERVICE=true
PIXABAY_API_KEY=...
UNSPLASH_ACCESS_KEY=...
SILICONFLOW_API_KEY=...

# 标准可编辑 PPTX(商业许可)
APRYSE_LICENSE_KEY=...

# 讲解 TTS(可选 ComfyUI)
# COMFYUI_BASE_URL=http://127.0.0.1:8188
# COMFYUI_TTS_WORKFLOW_PATH=tests/Qwen3-TD-TTS.json

# 注册 / OAuth / 邮件 / 积分 / Turnstile
# ENABLE_USER_REGISTRATION=true
# GITHUB_OAUTH_ENABLED=false
# ENABLE_CREDITS_SYSTEM=false

补充说明:

  • 标准 PPTX 依赖 APRYSE_LICENSE_KEY图片型 PPTX/api/projects/{project_id}/export/pptx-images)不依赖 Apryse,更适合复杂 CSS/图标保真。
  • 反向代理后图片仍指向 localhost 时,请在 Web「应用配置」中设置正确的 BASE_URL,详见 docs/base_url_configuration.md
  • 讲解视频需要本机 / 容器内可用的 ffmpeg

常见问题

Q: 支持哪些 AI 模型?

OpenAI GPT(及兼容接口)、Anthropic Claude、Google Gemini、Azure OpenAI、Ollama 本地模型等,可在配置页切换提供商。

Q: 如何配置图像功能?

.env 中开启 ENABLE_IMAGE_SERVICE=true,并配置:

  • Pixabay:PIXABAY_API_KEY
  • Unsplash:UNSPLASH_ACCESS_KEY
  • AI 生成:SILICONFLOW_API_KEYPOLLINATIONS_API_KEY

Q: 反向代理后图片链接异常?

未配置 BASE_URL 时,链接可能仍是 localhost:8000

  1. 打开 https://your-domain.com/ai-config
  2. 「应用配置」→「基础 URL (BASE_URL)」填入对外域名
  3. 保存

Q: 研究功能怎么用?

配置 TAVILY_API_KEY 或部署 SearXNG,创建 PPT 时启用研究即可。

Q: 支持纯本地部署吗?

支持。可用 Docker 或源码安装;推理侧可接 Ollama,无需外部大模型 API(研究 / 网络配图等能力仍可能需要外网)。

Q: 标准 PPTX 和图片型 PPTX 怎么选?

类型 依赖 特点
标准 PPTX APRYSE_LICENSE_KEY 适合继续在 PowerPoint 中编辑
图片型 PPTX 无 Apryse 复杂版式保真更好,页内元素通常不可编辑

Q: 如何生成公开分享链接?

项目编辑页点击分享,或调用 POST /api/projects/{project_id}/share/generate。地址形如 /share/{share_token};停用调用 share/disable

Q: 生产与开发编排如何选?

  • 生产: docker compose up -d(预构建镜像 + Web/Worker/Postgres/Valkey/MinIO)
  • 开发: docker compose -f docker-compose-dev.yaml up -d --build(本地构建 + 热重载)

Q: 讲解音频支持哪些方式?

默认 Edge-TTS;也可配置 ComfyUI Qwen3-TD,并在编辑页上传参考音频。

Q: 并行生成会影响质量吗?

不会。并行只改变调度顺序,单页生成逻辑与质量不变。多数提供商支持并发,但受各自限流约束。


贡献指南

欢迎 Issue、PR 与文档改进。

  1. Fork 本仓库
  2. 创建分支:git checkout -b feature/AmazingFeature
  3. 提交:git commit -m 'Add some AmazingFeature'
  4. 推送并开启 Pull Request

问题反馈:Issues


许可证

本项目采用 Apache License 2.0

导出标准 PPTX 所依赖的 Apryse 等第三方组件,遵循其各自许可条款;使用前请自行确认合规。


Star History

Star History Chart


联系我们


如果这个项目对你有帮助,请点一个 ⭐!

Made with ❤️ by the LandPPT Team

About

一个基于LLM的演示文稿生成平台,能够自动将文档内容转换为专业的PPT演示文稿。平台支持多种AI模型,提供丰富的模板和样式选择,让用户能够创建高质量的演示文稿。

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages