presenton:基于 AI 技术的演示文稿生成工具项目

Open-Source AI Presentation Generator and API (Gamma, Beautiful AI, Decktopus Alternative)

分支64Tags57
文件最后提交记录最后更新时间
feat: increate ram size to 2gb for digital ocean deployment 1 天前
chore: Update Docker and FastAPI configurations for improved LLM integration - Added new environment variables for Mem0 LLM model, API key, and base URL in docker-compose.yml. - Updated Dockerfile to include Chromium as a dependency and set the Puppeteer executable path. - Enhanced .gitignore to exclude FastAPI build and distribution directories. - Introduced new eng.traineddata file for language processing. - Updated package.json and package-lock.json to include the latest version of @llamaindex/liteparse. - Refactored README.md to clarify Mem0 LLM configuration and usage. - Removed Electron FastAPI tests from test-local.sh and GitHub workflows for cleaner CI/CD processes. 25 天前
Bump version to 0.7.3-beta and update download links Updated version to 0.7.3-beta with new features and fixes.11 小时前
Update README to reflect new features image and add features.png asset 9 小时前
chore: update presentation export version to v0.2.8 in package.json files 12 天前
feat: add MarkdownInlineText component and integrate into TiptapTextReplacer for read-only mode - Introduced a new MarkdownInlineText component to render inline markdown without block wrappers. - Updated TiptapTextReplacer to conditionally render MarkdownInlineText when in read-only mode. - Adjusted TiptapText to set content without triggering unnecessary updates. - Enhanced V1ContentRender to utilize TiptapTextReplacer with read-only functionality for slide rendering. 11 小时前
feat: Chartjs in Education, Pitch-deck, Report, and ProductOverview templates 10 天前
refactor: reduces images size to around 2.5gb 1 个月前
chore: stop tracking downloaded presenton-export runtime artifacts Gitignore presentation-export/ and electron/resources/export/ so release binaries are fetched via sync scripts at setup/build time instead of in git. Co-authored-by: Cursor <cursoragent@cursor.com> 12 小时前
Revise Code of Conduct with expanded values and guidelines Expanded the Code of Conduct to include detailed community values and guidelines for respectful interaction.2 个月前
Update contribution guidelines Removed note about accepting Pull Requests only in the electron directory.30 天前
fix: removes chromium and let export package download it during runtime 3 天前
fix: removes chromium and let export package download it during runtime 3 天前
Initial: presenton 1 年前
update: add notice and notice script 8 个月前
Update README to reflect new features image and add features.png asset 9 小时前
Enhance vision statement for clarity and emphasis Clarified the role of AI in generating visual documents and emphasized the importance of templates and designs as first-class citizens.2 个月前
feat: Add support for new LLM providers and update environment configurations - Introduced support for Amazon Bedrock, Fireworks, Together AI, and LM Studio in the application. - Updated the Docker Compose file to include new environment variables for the added LLM providers. - Enhanced the README documentation to reflect the new LLM options and their respective configuration requirements. - Modified user configuration and environment handling to accommodate the new providers. - Updated dependencies and fixed the version of the llmai package to ensure compatibility with new features. 2 天前
chore: Update Docker and FastAPI configurations for improved LLM integration - Added new environment variables for Mem0 LLM model, API key, and base URL in docker-compose.yml. - Updated Dockerfile to include Chromium as a dependency and set the Puppeteer executable path. - Enhanced .gitignore to exclude FastAPI build and distribution directories. - Introduced new eng.traineddata file for language processing. - Updated package.json and package-lock.json to include the latest version of @llamaindex/liteparse. - Refactored README.md to clarify Mem0 LLM configuration and usage. - Removed Electron FastAPI tests from test-local.sh and GitHub workflows for cleaner CI/CD processes. 25 天前
fix(nginx): drop auth_request on /app_data/images/ to match FastAPI middleware9 天前
chore: Update Docker and FastAPI configurations for improved LLM integration - Added new environment variables for Mem0 LLM model, API key, and base URL in docker-compose.yml. - Updated Dockerfile to include Chromium as a dependency and set the Puppeteer executable path. - Enhanced .gitignore to exclude FastAPI build and distribution directories. - Introduced new eng.traineddata file for language processing. - Updated package.json and package-lock.json to include the latest version of @llamaindex/liteparse. - Refactored README.md to clarify Mem0 LLM configuration and usage. - Removed Electron FastAPI tests from test-local.sh and GitHub workflows for cleaner CI/CD processes. 25 天前
refactor: removes puppeteer checks during startup, fix: removes memory guardrails due to limitation errors 3 天前
Merge branch 'main' into feat/added-new-providers1 天前
chore: Update Docker and FastAPI configurations for improved LLM integration - Added new environment variables for Mem0 LLM model, API key, and base URL in docker-compose.yml. - Updated Dockerfile to include Chromium as a dependency and set the Puppeteer executable path. - Enhanced .gitignore to exclude FastAPI build and distribution directories. - Introduced new eng.traineddata file for language processing. - Updated package.json and package-lock.json to include the latest version of @llamaindex/liteparse. - Refactored README.md to clarify Mem0 LLM configuration and usage. - Removed Electron FastAPI tests from test-local.sh and GitHub workflows for cleaner CI/CD processes. 25 天前
feat: implement database migration on startup and update dependencies for FastAPI 2 个月前

Presenton

快速开始 · 文档 · YouTube · Discord

Apache2.0 Stars Platform

开源 AI 演示文稿生成器与 API (Gamma、Beautiful AI、Decktopus 替代方案)

✨ 为什么选择 Presenton

无 SaaS 锁定 · 无强制订阅 · 完全掌控模型与数据

Presenton 的独特之处:

  • 通过 Docker 包 在 Web 端实现完全自托管
  • 或下载 桌面应用(支持 Mac、Windows 和 Linux)
  • 兼容 OpenAI、Gemini、Vertex AI、Azure OpenAI、Amazon Bedrock、Fireworks、Together AI、Anthropic、LM Studio、Ollama 或自定义模型
  • 内置 AI 演示文稿生成 API
  • 完全开源(Apache 2.0 许可证)
  • 支持自定义设计/模板
  • 可完全编辑的 PPTX 导出

Tip

给我们点个星! 一个 ⭐ 是您对我们的支持,也激励我们继续开发!😇

Presenton

🎛 功能特性

Presenton Features

💻 Presenton 桌面版

使用您自己的模型提供商(BYOK)创建 AI 驱动的演示文稿,或在您自己的设备上本地运行所有功能,实现完全控制和数据隐私。

Cloud deployment

支持的平台

平台 架构 安装包 下载
macOS Apple Silicon / Intel .dmg 下载 ↗
Windows x64 .exe 下载 ↗
Linux x64 .deb 下载 ↗

部署到云服务提供商

Presenton 让您完全掌控 AI 演示文稿工作流程。选择您的模型,自定义您的体验,并确保您的数据隐私。

  • 自定义模板和主题 — 使用 HTML 和 Tailwind CSS 创建无限的演示文稿设计
  • AI 模板生成 — 从现有 Powerpoint 文档创建演示文稿模板
  • 灵活生成 — 通过提示词或上传的文档制作演示文稿
  • 导出就绪 — 保存为具有专业格式的 PowerPoint (PPTX) 和 PDF
  • 内置 MCP 服务器 — 通过模型上下文协议(Model Context Protocol)生成演示文稿
  • 自带密钥 — 使用您自己的 OpenAI、Google Gemini、Vertex AI、Azure OpenAI、Anthropic Claude 或任何兼容提供商的 API 密钥。只需为您使用的服务付费,无隐藏费用或订阅
  • Ollama 集成 — 本地运行开源模型,确保完全隐私
  • 兼容 OpenAI API — 使用您自己的模型连接到任何兼容 OpenAI 的端点
  • 多提供商支持 — 混合搭配文本和图像生成提供商
  • 多功能图像生成 — 可选择 DALL-E 3、Gemini Flash、Pexels 或 Pixabay
  • 丰富媒体支持 — 用于专业演示文稿的图标、图表和自定义图形
  • 本地运行 — 所有处理都在您的设备上进行,无云依赖
  • API 部署 — 作为您自己的 API 服务为团队托管
  • 完全开源 — Apache 2.0 许可,可检查、修改和贡献
  • Docker 就绪 — 一键部署,支持本地模型的 GPU 加速
  • Electron 桌面应用 — 在 Windows、macOS 和 Linux 上作为原生桌面应用运行 Presenton(无需浏览器)
  • 使用 ChatGPT 登录 — 使用您的免费或付费 ChatGPT 账户登录并立即开始创建演示文稿 — 无需单独的 API 密钥

☁️ Presenton Cloud

直接在浏览器中运行 Presenton — 无需安装,无需设置。随时随地立即开始创建演示文稿。

Presenton Cloud

⚡ 运行 Presenton

您可以通过两种方式运行 Presenton: Docker 适用于无需安装本地开发环境的一键式设置,或 Electron 桌面应用 提供原生应用体验(非常适合开发或离线使用)。

选项 1:Electron(桌面应用)

将 Presenton 作为原生桌面应用运行。LLM 和图像提供商(API 密钥等)可在应用内进行配置。运行捆绑后端时,将应用与 Docker 相同的环境变量。

先决条件:Node.js (LTS)、npm、Python 3.11 以及 uv (用于 servers/fastapi 中的共享 FastAPI 后端)。

  • 首次设置

    cd electron
    npm run setup:env

    此命令将安装 Node 依赖项,在 FastAPI 服务器中运行 uv sync,并安装 Next.js 依赖项。

  • 开发模式运行

    npm run dev

    此命令将编译 TypeScript 并启动 Electron。后端和用户界面将在桌面窗口内本地运行。

  • 构建可分发文件(可选) 要为 Windows、macOS 或 Linux 创建安装程序:

    npm run build:all
    npm run dist

    输出文件将写入 electron/dist

(或根据您在 electron-builder 设置中的配置)。

选项 2:Docker

  • 启动 Presenton Linux/MacOS(Bash/Zsh Shell):

    docker run -it --name presenton -p 5000:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest

    Windows(PowerShell):

    docker run -it --name presenton -p 5000:80 -v "${PWD}\app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 打开 Presenton

    在您选择的浏览器中打开 http://localhost:5000 即可使用 Presenton。

    注意:您可以将 5000 替换为任何其他端口号,以便在不同的端口上运行 Presenton。

⚙️ 部署配置

以下列表与本仓库 docker-compose.ymlproductionproduction-gpudevelopmentdevelopment-gpu)中转发的环境变量相匹配。请在 compose 文件旁的 .env 文件中填写值,或在执行 docker compose up 前导出这些变量。Electron 应用后端在 Docker 外部运行时也能读取相同名称的变量。

代码中还存在其他可选变量(例如高级 Mem0 路径、LiteParse 运行器,或当 Next.js 与 FastAPI 不同源时的 FAST_API_INTERNAL_URL);这些变量docker-compose.yml 中配置。支持的变量名称可从 servers/fastapi/utils/get_env.pyservers/nextjs/ 下的 Next.js 服务器工具中找到。

LLM 和 API 密钥

  • CAN_CHANGE_KEYS=[true/false]:若希望隐藏 API 密钥并使其不可修改,设为 false
  • LLM=[openai/google/vertex/azure/anthropic/lmstudio/ollama/custom/codex]:选择文本 LLM
  • OPENAI_API_KEY:当 LLMopenai 时必填。
  • OPENAI_MODEL:当 LLMopenai 时必填(默认:gpt-4.1)。
  • GOOGLE_API_KEY:当 LLMgoogle 时必填。
  • GOOGLE_MODEL:当 LLMgoogle 时必填(默认:models/gemini-2.0-flash)。
  • VERTEX_MODEL:当 LLMvertex 时必填(默认:gemini-2.5-flash)。
  • VERTEX_API_KEYLLM=vertex 时的可选认证方式(Vertex Express)。
  • VERTEX_PROJECT / VERTEX_LOCATION:使用 GCP 项目凭据时 LLM=vertex 的可选认证方式(不要与 VERTEX_API_KEY 同时使用)。
  • VERTEX_BASE_URL:可选的 Vertex 网关/基础 URL 覆盖。
  • AZURE_OPENAI_MODEL:当 LLMazure 时必填(部署/模型名称)。
  • AZURE_OPENAI_API_KEY:当 LLMazure 时必填。
  • AZURE_OPENAI_API_VERSION:当 LLMazure 时必填(例如 2024-10-21)。
  • AZURE_OPENAI_ENDPOINT / AZURE_OPENAI_BASE_URL:当 LLMazure 时至少需填写其中一个。
  • AZURE_OPENAI_DEPLOYMENTLLMazure 时的可选部署覆盖。
  • BEDROCK_REGIONLLMbedrock 时可选(默认:us-east-1)。
  • BEDROCK_MODEL:当 LLMbedrock 时必填(例如:us.anthropic.claude-3-5-haiku-20241022-v1:0)。
  • BEDROCK_API_KEYLLMbedrock 时可选(API 密钥认证模式)。
  • BEDROCK_AWS_ACCESS_KEY_ID / BEDROCK_AWS_SECRET_ACCESS_KEYLLMbedrock 时可选(AWS 密钥认证模式;当未设置 BEDROCK_API_KEY 时需同时使用)。
  • BEDROCK_AWS_SESSION_TOKENLLMbedrock 时的可选会话令牌。
  • BEDROCK_PROFILE_NAMELLMbedrock 时的可选 AWS 配置文件名称。
  • FIREWORKS_API_KEY:当 LLMfireworks 时必填。
  • FIREWORKS_MODEL:当 LLMfireworks 时必填(例如:accounts/fireworks/models/llama-v3p1-8b-instruct)。
  • FIREWORKS_BASE_URLLLMfireworks 时可选(默认:https://api.fireworks.ai/inference/v1)。
  • TOGETHER_API_KEY:当 LLMtogether 时必填。
  • TOGETHER_MODEL:当 LLMtogether 时必填(例如:openai/gpt-oss-20b)。
  • TOGETHER_BASE_URLLLMtogether 时可选(默认:https://api.together.ai/v1)。
  • ANTHROPIC_API_KEY:当 LLManthropic 时必填。
  • ANTHROPIC_MODEL:当 LLManthropic 时必填(默认:claude-3-5-sonnet-20241022)。
  • CODEX_MODEL:当 LLMcodex 时必填(Codex OAuth 流程;compose 映射主机端口 1455 用于回调)。
  • CUSTOM_LLM_URL:当 LLMcustom 时,需提供 OpenAI 兼容的基础 URL。
  • CUSTOM_LLM_API_KEY:当 LLMcustom 时的 API 密钥。
  • CUSTOM_MODEL:当 LLMcustom 时的模型 ID。
  • LMSTUDIO_BASE_URLLLMlmstudio 时的可选 LM Studio 基础 URL(默认:http://localhost:1234/v1;若省略则自动追加 /v1)。
  • LMSTUDIO_API_KEYLLMlmstudio 时的可选 API 密钥。
  • LMSTUDIO_MODEL:当 LLMlmstudio 时必填(例如:openai/gpt-oss-20b)。
  • DISABLE_THINKING=[true/false]:若为 true,则在自定义 LLM 上禁用“思考中”状态。
  • WEB_GROUNDING=[true/false]:若为 true,则为 OpenAI、Google 和 Anthropic 模型启用网络搜索。
  • EXTENDED_REASONING=[true/false]:在配置的技术栈支持时启用扩展推理。

Ollama

LLMollama 时使用:

  • OLLAMA_URL:Ollama HTTP API 的基础 URL(例如,从 Docker 访问时为 http://host.docker.internal:11434)。
  • OLLAMA_MODEL:Ollama 中的模型名称(例如 llama3.2:3b)。
  • START_OLLAMA=[true/false]:容器入口点(start.js):可选安装 + ollama serve。默认 falsedevelopment / production compose)。

演示文稿记忆(Mem0 OSS)

Mem0 使用本地 Qdrant + SQLite(开源);记忆按演示文稿划分范围。

默认情况下,Docker 运行时现在将 Mem0 指向本地 Ollama 兼容的 LLM 端点,因此初始化时不再需要 OpenAI 密钥。如果希望改用 OpenAI,请将 MEM0_LLM_BASE_URL/MEM0_LLM_API_KEY 设置为 OpenAI 兼容的端点和密钥。 Docker 镜像在构建期间安装默认的 spaCy 模型(en_core_web_sm),因此 Mem0 无需每次运行都进行额外设置即可启动。

变量 用途
MEM0_ENABLED true/false(compose 默认 true)。
MEM0_LLM_MODEL Mem0 LLM 模型名称(compose 默认 llama3.1:latestOLLAMA_MODEL)。
MEM0_LLM_API_KEY Mem0 LLM API 密钥占位符(用于 OpenAI 兼容客户端,compose 默认 ollama)。
MEM0_LLM_BASE_URL Mem0 LLM 基础 URL(compose 默认 OLLAMA_URLhttp://host.docker.internal:11434)。
MEM0_DIR 根目录(compose 默认 /app_data/mem0)。
MEM0_EMBEDDER_PROVIDER 嵌入器后端(compose 默认 fastembed)。
MEM0_EMBEDDER_MODEL 模型 ID(compose 默认 BAAI/bge-small-en-v1.5)。
MEM0_EMBEDDING_DIMS 向量大小(compose 默认 384)。
MEM0_SPACY_MODEL 可选的 spaCy 模型覆盖(默认 en_core_web_sm)。
MEM0_REQUIRE_SPACY_MODEL 保持为 true(默认)。仅当有意让 Mem0 在不使用 spaCy 词形还原的情况下运行时,才设为 false。

文档解析(LiteParse)

变量 用途
LITEPARSE_DPI OCR 渲染 DPI(compose 默认 120)。
LITEPARSE_NUM_WORKERS 工作进程数(compose 默认 1)。

数据库

  • DATABASE_URL:SQLAlchemy URL;若未设置,应用将回退到应用数据下的 SQLite。
  • MIGRATE_DATABASE_ON_STARTUP:Compose 为所有服务设置 true,以便在启动时运行数据库迁移。

图像生成

这些变量与 docker-compose.yml 匹配。IMAGE_PROVIDER 选择后端(pexelspixabaygemini_flashnanobanana_prodall-e-3gpt-image-1.5comfyuiopen_webui)。对于 OpenAI 图像模式,使用 OPENAI_API_KEY;对于 Gemini 图像模式,使用 GOOGLE_API_KEY(与 LLM 部分的密钥相同)。

  • DISABLE_IMAGE_GENERATION=[true/false]:禁用幻灯片图像生成。
  • IMAGE_PROVIDER:提供程序 ID(见上文枚举)。
  • PEXELS_API_KEY:Pexels 库存图片。
  • PIXABAY_API_KEY:Pixabay 库存图片。
  • DALL_E_3_QUALITY=[standard/hd]:dall-e-3 可选(默认 standard)。
  • GPT_IMAGE_1_5_QUALITY=[low/medium/high]:gpt-image-1.5 可选(默认 medium)。
  • COMFYUI_URL / COMFYUI_WORKFLOW:自托管 ComfyUI 工作流 JSON。
  • OPEN_WEBUI_IMAGE_URL / OPEN_WEBUI_IMAGE_API_KEY:Open WebUI 兼容的图像端点。
  • OPENAI_COMPAT_IMAGE_BASE_URL / OPENAI_COMPAT_IMAGE_API_KEY / OPENAI_COMPAT_IMAGE_MODEL:若使用 openai_compatible 向任何 OpenAI 兼容的 /v1/images/* 端点(LiteLLM、Azure、vLLM 网关等)发送图像请求,则为必填项。

遥测

  • DISABLE_ANONYMOUS_TRACKING=[true/false]:设为 true 可禁用匿名遥测。

身份验证(Web 登录)

Presenton 每个实例使用单个管理员账户。凭据存储在 app_data 中(已加密;见 userConfig.json)。通过 -e 或 compose 的 .env 文件传递以下变量:

  • AUTH_USERNAME / AUTH_PASSWORD — 首次启动时预置管理员登录凭据(密码至少 6 个字符)。若用户已存在,则忽略,除非设置了 AUTH_OVERRIDE_FROM_ENV
  • AUTH_OVERRIDE_FROM_ENV=[true/false] — 若为 true,则在每次 FastAPI 启动时从环境变量替换存储的凭据,并轮换会话签名密钥(使现有会话失效)。完成一次性轮换后移除。
  • RESET_AUTH=[true/false] — 若为 true,则在启动时清除存储的凭据。仅用于单次启动以恢复访问,之后需取消设置。

示例

docker run -it --name presenton -p 5000:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "${PWD}\app_data:/app_data" ghcr.io/presenton/presenton:latest
docker stop presenton && docker rm presenton && docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=newcred456 -e AUTH_OVERRIDE_FROM_ENV=true -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
docker stop presenton && docker rm presenton && docker run -it --name presenton -p 5000:80 -e RESET_AUTH=true -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
docker stop presenton && docker rm presenton && docker run -it --name presenton -p 5000:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest

手动重置: 停止容器,编辑 ./app_data/userConfig.json,删除 AUTH_USERNAMEAUTH_PASSWORD_HASHAUTH_SECRET_KEY,保存后重新启动。

退出应用程序:设置 → 其他 → 退出登录

注意:上述 LLM 和图像变量在 .env 中设置时,会从 docker-compose.yml 转发。



按提供商划分的 Docker 运行示例

变量与 Compose 相同;直接运行 docker run 时,使用 -e 代替 .env

  • 使用 OpenAI

    docker run -it --name presenton -p 5000:80 -e LLM="openai" -e OPENAI_API_KEY="******" -e IMAGE_PROVIDER="dall-e-3" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Google

    docker run -it --name presenton -p 5000:80 -e LLM="google" -e GOOGLE_API_KEY="******" -e IMAGE_PROVIDER="gemini_flash" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Vertex AI(API 密钥模式)

    docker run -it --name presenton -p 5000:80 -e LLM="vertex" -e VERTEX_API_KEY="******" -e VERTEX_MODEL="gemini-2.5-flash" -e IMAGE_PROVIDER="gemini_flash" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Azure OpenAI

    docker run -it --name presenton -p 5000:80 -e LLM="azure" -e AZURE_OPENAI_API_KEY="******" -e AZURE_OPENAI_MODEL="gpt-4.1" -e AZURE_OPENAI_API_VERSION="2024-10-21" -e AZURE_OPENAI_ENDPOINT="https://YOUR-RESOURCE.openai.azure.com" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Amazon Bedrock(AWS 密钥)

    docker run -it --name presenton -p 5000:80 -e LLM="bedrock" -e BEDROCK_REGION="us-east-1" -e BEDROCK_AWS_ACCESS_KEY_ID="******" -e BEDROCK_AWS_SECRET_ACCESS_KEY="******" -e BEDROCK_MODEL="us.anthropic.claude-3-5-haiku-20241022-v1:0" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Fireworks

    docker run -it --name presenton -p 5000:80 -e LLM="fireworks" -e FIREWORKS_API_KEY="******" -e FIREWORKS_MODEL="accounts/fireworks/models/llama-v3p1-8b-instruct" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Together AI

    docker run -it --name presenton -p 5000:80 -e LLM="together" -e TOGETHER_API_KEY="******" -e TOGETHER_MODEL="openai/gpt-oss-20b" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Ollama

    docker run -it --name presenton -p 5000:80 -e LLM="ollama" -e OLLAMA_MODEL="llama3.2:3b" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="*******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 Anthropic

    docker run -it --name presenton -p 5000:80 -e LLM="anthropic" -e ANTHROPIC_API_KEY="******" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 LM Studio(本地)

    docker run -it --name presenton -p 5000:80 -e LLM="lmstudio" -e LMSTUDIO_BASE_URL="http://host.docker.internal:1234" -e LMSTUDIO_MODEL="openai/gpt-oss-20b" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 OpenAI 兼容的 LLM API

    docker run -it -p 5000:80 -e CAN_CHANGE_KEYS="false"  -e LLM="custom" -e CUSTOM_LLM_URL="http://*****" -e CUSTOM_LLM_API_KEY="*****" -e CUSTOM_MODEL="llama3.2:3b" -e IMAGE_PROVIDER="pexels" -e  PEXELS_API_KEY="********" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 运行带 GPU 支持的 Presenton 要将 GPU 加速与 Ollama 模型配合使用,您需要安装并配置 NVIDIA Container Toolkit。这允许 Docker 容器访问您的 NVIDIA GPU。 安装并配置好 NVIDIA Container Toolkit 后,您可以通过添加 --gpus=all 标志来运行带 GPU 支持的 Presenton:

    docker run -it --name presenton --gpus=all -p 5000:80 -e LLM="ollama" -e OLLAMA_MODEL="llama3.2:3b" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="*******" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
  • 使用 OpenAI 兼容的图像提供商

    这会将所有幻灯片图像请求通过您的 OpenAI 兼容网关(LiteLLM、Azure、vLLM 等)路由,同时保持文本 LLM 配置独立:

    docker run -it --name presenton -p 5000:80 -e IMAGE_PROVIDER="openai_compatible" -e OPENAI_COMPAT_IMAGE_BASE_URL="https://proxy.example.com/v1" -e OPENAI_COMPAT_IMAGE_API_KEY="******" -e OPENAI_COMPAT_IMAGE_MODEL="gpt-image-1" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest

✨ 通过 API 生成演示文稿

生成演示文稿

端点: /api/v1/ppt/presentation/generate
方法: POST
内容类型: application/json

身份验证(HTTP Basic):
/api/v1/auth/* 外,所有 /api/v1/ 路由均需身份验证。请发送您的 Presenton 管理员用户名和密码(与 Web UI 相同,或在 Docker 预配置时使用 AUTH_USERNAME / AUTH_PASSWORD)。使用 curl 时,将凭据紧跟在 -u 后,格式为 -u 用户名:密码 — 这是 HTTP Basic 身份验证,会自动为您设置 Authorization: Basic …。请将下方示例中的 username:password 替换为您的实际凭据。

请求体

参数 类型 是否必需 描述
content string 用于生成演示文稿的主要内容。
slides_markdown string[] | null 提供自定义幻灯片 markdown,而非自动生成。
instructions string | null 额外的生成说明。
tone string 文本语气(默认:"default")。 选项:defaultcasualprofessionalfunnyeducationalsales_pitch
verbosity string 内容密度(默认:"standard")。 选项:concisestandardtext-heavy
web_search boolean 启用网络搜索增强(默认:false)。
n_slides integer 要生成的幻灯片数量(默认:8)。
language string 演示文稿语言(默认:"English")。
template string 模板名称(默认:"general")。
include_table_of_contents boolean 包含目录幻灯片(默认:false)。
include_title_slide boolean 包含标题幻灯片(默认:true)。
files string[] | null 用于生成的文件。 需先通过 /api/v1/ppt/files/upload 上传。
export_as string 导出格式(默认:"pptx")。 选项:pptxpdf

响应

{
  "presentation_id": "string",
  "path": "string",
  "edit_path": "string"
}

示例(curl + 使用 -u 的 HTTP Basic 身份验证)

curl -u username:password \
  -X POST http://localhost:5000/api/v1/ppt/presentation/generate \
  -H "Content-Type: application/json" \
  -d '{
   "content": "Introduction to Machine Learning",
    "n_slides": 5,
    "language": "English",
    "template": "general",
    "export_as": "pptx"
  }'

示例响应

{
  "presentation_id": "d3000f96-096c-4768-b67b-e99aed029b57",
  "path": "/app_data/d3000f96-096c-4768-b67b-e99aed029b57/Introduction_to_Machine_Learning.pptx",
  "edit_path": "/presentation?id=d3000f96-096c-4768-b67b-e99aed029b57"
}
注意: 需在 pathedit_path 前添加服务器根 URL,以构建有效的链接。

文档与教程

🚀 路线图

在 GitHub Projects 上跟踪公开路线图:https://github.com/orgs/presenton/projects/2