使用手冊

第 04 期 · AI 簡報生成 / 開源自架

Gamma 的開源替代品,簡報生成 API 自架部署。

Apache 2.0 開源 AI 簡報生成器 Presenton 部署手冊。涵蓋 Docker 自架、Electron 桌機版、BYOK 任選 LLM、HTML+Tailwind 自訂模板、可編輯 PPTX 匯出、API 與 MCP server 配置。

Presenton 是 Apache 2.0 開源的 AI 簡報生成器與 API,定位為 Gamma、Beautiful AI、Decktopus 的自架替代品。一條 docker run 起來,可綁定 OpenAI、Gemini、Vertex、Azure、Bedrock、Anthropic、Fireworks、Together、LM Studio、Ollama 或任何 OpenAI 相容端點。資料留在自己機器,模板用 HTML+Tailwind 自由改,PPTX 匯出後直接在 PowerPoint 編輯。這份手冊涵蓋 Docker 安裝、API 串接、模板開發,以及 BYOK 配置的常見雷區。

presenton/presenton
星標
7.6K
分支
1.2K
授權
—
資料截至
閱讀時間
13 分
更新日期
開啟原始報告
GitHub Stars
7.5k
支援的 LLM 廠商
10+
完整可編輯匯出
PPTX
商用無限制
Apache 2.0

01專案定位

Apache 2.0 開源的 SaaS 替代品, Gamma 同等功能可自架在本機。

Presenton 在 2025 年 5 月開源,一年內累積 7,496 顆星、1,198 個 fork,README 第一句話直接點名競爭對手:Open-Source AI Presentation Generator and API (Gamma, Beautiful AI, Decktopus Alternative)。核心主張是移除 SaaS 訂閱,無訂閱費、無 token 加成、無資料外送。所有運算在你選定的 LLM(雲端 API 或本機 Ollama / LM Studio 皆可)上執行,費用直接付給模型廠商。

產品形態有四種:Docker 自架(ghcr.io/presenton/presenton:latest)、Electron 桌機 App(Mac / Windows / Linux 都有原生安裝包)、Presenton Cloud(他們官網跑的託管版本)以及一鍵雲端部署(Railway、DigitalOcean 都有按鈕)。同一份程式碼,選你喜歡的執行環境。

核心工程設計有三點。第一,BYOK(Bring Your Own Key)架構,10+ 個 LLM 廠商以環境變數切換。第二,HTML + Tailwind 模板系統,設計師以標準 React/HTML 元件撰寫新模板,無需學習自定義 DSL。第三,PPTX 以真實 OpenXML 格式匯出,而非截圖嵌入,匯出後在 PowerPoint 裡每個物件可單獨編輯。此功能在開源 AI 簡報工具中較少見。

  1. 輸入主題

  2. LLM 生大綱

  3. 選模板

  4. 生圖

  5. 渲染 HTML

  6. 匯出 PPTX/PDF

No SaaS lock-in · No forced subscriptions · Full control over models and data.

— Presenton README 開場宣言

02安裝步驟

Docker 單指令啟動,再設定 LLM 連線。

最快上手路徑是 Docker,一條 docker run 把整個服務拉到 5000 port,瀏覽器打開即可使用。第一次執行可不帶任何 API key,進入 UI 後再從 Settings 設定;要固定配置,則將 key 寫進環境變數。

bash
# 最簡安裝:不帶任何 key,進 UI 設定
docker run -it --name presenton -p 5000:80 \
  -v "./app_data:/app_data" \
  ghcr.io/presenton/presenton:latest

綁定你的 LLM:OpenAI 範例

要鎖死設定不讓使用者改 key,加 CAN_CHANGE_KEYS=false。下面以 OpenAI + DALL-E 3 為例;換成其他廠商只改 LLM 與對應 key 名稱即可。

bash
docker run -it --name presenton -p 5000:80 \
  -e LLM="openai" \
  -e OPENAI_API_KEY="sk-..." \
  -e IMAGE_PROVIDER="dall-e-3" \
  -e CAN_CHANGE_KEYS="false" \
  -v "./app_data:/app_data" \
  ghcr.io/presenton/presenton:latest

全本機 / 隱私模式:Ollama + Pexels

想完全離線執行,把 LLM 切到本機 Ollama、圖片來源用 Pexels 免費庫(或本機 ComfyUI)。加 --gpus=all 啟用 GPU 加速(需先裝 NVIDIA Container Toolkit)。

bash
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

03能力總覽

支援 10 個 LLM 廠商, 8 種圖片來源,4 種匯出格式。

Presenton 沒有像 Claude Code 一樣的「斜線指令」概念,它是一個由環境變數編排的服務。下表把 README 列出的能力整理成 20 張卡片,分四群:LLM 廠商(用 LLM=... 切)、圖片廠商(用 IMAGE_PROVIDER=... 切)、核心功能(API、模板、MCP),以及部署形態。實務上你不用全裝,挑一條 LLM + 一條圖片 + 一種部署即可。

LLM · 01

LLM=openai

OpenAI GPT

預設搭配 gpt-4.1。設 WEB_GROUNDING=true 可開網路搜尋。OPENAI_API_KEY 必填。

LLM · 02

LLM=google

Gemini API

預設 models/gemini-2.0-flash。直接用 GOOGLE_API_KEY,不必開 GCP 專案。

LLM · 03

LLM=vertex

Vertex AI

企業端走 GCP。VERTEX_API_KEY(Express)或 VERTEX_PROJECT + VERTEX_LOCATION(GCP 憑證)二選一。

LLM · 04

LLM=azure

Azure OpenAI

填 AZURE_OPENAI_API_KEY、AZURE_OPENAI_API_VERSION、AZURE_OPENAI_ENDPOINT 三件套。

LLM · 05

LLM=bedrock

Amazon Bedrock

用 AWS access key 或 BEDROCK_API_KEY。新模型(Claude Sonnet 4.6 等)要用 inference profile ARN。

LLM · 06

LLM=anthropic

Anthropic Claude

預設 claude-3-5-sonnet-20241022。WEB_GROUNDING 也適用。直接走 Anthropic 官方 API。

LLM · 07

LLM=ollama

本機 Ollama

完全離線。設 OLLAMA_URL(Docker 內用 host.docker.internal:11434)與 OLLAMA_MODEL。可開 GPU。

LLM · 08

LLM=lmstudio

LM Studio

桌機跑 LM Studio 時用。LMSTUDIO_BASE_URL 預設 localhost:1234/v1,/v1 沒打也會自動補。

LLM · 09

LLM=custom

OpenAI 相容端點

指向任何 OpenAI 相容 API(LiteLLM、vLLM、Together、Groq 等)。CUSTOM_LLM_URL + CUSTOM_LLM_API_KEY。

LLM · 10

LLM=codex

Sign in with ChatGPT

用 ChatGPT 帳號 OAuth 登入(免另外申請 API key)。Docker compose 對外開 1455 port 做 callback。

Image · 11

IMAGE_PROVIDER=dall-e-3

DALL-E 3

沿用 OPENAI_API_KEY。可設 DALL_E_3_QUALITY(standard / hd)。

Image · 12

IMAGE_PROVIDER=gemini_flash

Gemini Flash

用 Google 圖片生成,沿用 GOOGLE_API_KEY。速度快、單價便宜。

Image · 13

IMAGE_PROVIDER=pexels

Pexels 免費庫

不用生成 AI,直接拉真實照片。隱私首選。需要 PEXELS_API_KEY(免費申請)。

Image · 14

IMAGE_PROVIDER=comfyui

本機 ComfyUI

把生成圖完全留在本機。指向 COMFYUI_URL 與一份 workflow JSON,離線跑 SDXL 都行。

Core · 15

/api/v1/ppt/presentation/generate

REST API

主 endpoint。POST 一句 content 就能生簡報,參數涵蓋 tone、verbosity、語言、模板、TOC、PPTX/PDF。HTTP Basic 認證。

Core · 16

HTML + Tailwind 模板

自訂 設計

以標準 React/HTML 元件撰寫,無需 DSL 或 schema。也可將舊 PPTX 輸入 AI 自動轉換為新模板。

Core · 17

MCP server

Model Context Protocol

內建 MCP server,Claude Desktop / Cursor 等支援 MCP 的 agent 可直接呼叫 Presenton 生成簡報,作為投影片生成工具使用。

Core · 18

PPTX / PDF 匯出

完整 可編輯

不是把投影片截圖塞進 PPT。生出來的 .pptx 每個物件可單獨選取,文字、圖、形狀都能在 PowerPoint / Keynote 二次編輯。

Deploy · 19

Electron Desktop

桌機 原生 App

Mac (.dmg)、Windows (.exe)、Linux (.deb) 三平台原生安裝包,免瀏覽器、含本機 FastAPI 後端。

Deploy · 20

Railway / DigitalOcean

一鍵 雲端部署

README 直接掛兩家 Deploy 按鈕。沒空寫 Dockerfile 的人可在 5 分鐘內把 Presenton 跑成自己的雲端服務。

想自架時,挑哪個組合?三個典型情境

情境LLM圖片來源部署
個人嘗鮮,有 OpenAI 帳號openaidall-e-3Docker (本機)
公司內部,要資料不外送ollama + GPUcomfyui 或 pexelsDocker (內網)
對外開放的 API 服務vertex 或 bedrockgemini_flashRailway / DigitalOcean
Claude 用戶,想簡報生成當工具anthropicpexelsDocker + 內建 MCP server

04關鍵設定提示

首次安裝前需確認的 10 條環境變數設定。

Presenton 的 README 仍在持續更新,環境變數數量多,首次部署容易遺漏關鍵設定。以下 10 條全部出自 README、docker-compose.yml、docs/amazon-bedrock.md 或環境變數定義檔,是部署前應先逐一確認的配置項目。

鎖死 key 用 CAN_CHANGE_KEYS=false

對外部使用的部署此項必填,否則 UI 內可修改 LLM key,任何登入者都能讀取或替換 key。生產環境一律以環境變數注入,並鎖定 UI 設定。

來源 · README · LLM and API keys

API 走 HTTP Basic,記得改預設帳密

所有 /api/v1/ endpoint(除 auth 外)都要 HTTP Basic 認證。第一次啟動可以用 AUTH_USERNAME / AUTH_PASSWORD 預植,但密碼至少 6 碼,且一旦建立後就鎖死,要改用 AUTH_OVERRIDE_FROM_ENV=true 才會被環境變數覆蓋。

來源 · README · Authentication 章節

Sign in with ChatGPT 占用 1455 port

用 LLM=codex 走 OAuth 登入時,docker compose 預設對外開 1455 port 做 callback。同機跑其他服務時要注意這個 port 不能撞。也代表你的 host 不能擋這個 port。

來源 · README · CODEX_MODEL 章節

Bedrock 新模型要用 inference profile ARN

Claude Sonnet 4.6 等新模型在 Bedrock 不再支援裸 model ID,得改傳 arn:aws:bedrock:...:inference-profile/...。舊模型用 us.anthropic.claude-3-5-haiku-... 這種 model ID 仍可。詳見官方的 docs/amazon-bedrock.md。

來源 · README · Bedrock 範例

Mem0 預設指向 Ollama,不再吃 OpenAI

舊版 Mem0 啟動時需要 OpenAI key。目前 Docker runtime 已將 Mem0 預設指向本機 Ollama 相容端點,記憶層不再需要 OpenAI 月費。若要改用 OpenAI,再設 MEM0_LLM_BASE_URL 與 MEM0_LLM_API_KEY。

來源 · README · Mem0 章節

Ollama 在 Docker 內要走 host.docker.internal

Mac / Windows 在 Docker 內連本機 Ollama 不能用 localhost,容器內無法路由到容器外。需改為 OLLAMA_URL=http://host.docker.internal:11434。Linux 則需加 --add-host=host.docker.internal:host-gateway。

來源 · README · Ollama 章節

關閉遙測:DISABLE_ANONYMOUS_TRACKING=true

Presenton 預設會送匿名使用資料。一行環境變數就能關。內部 / 政府 / 隱私敏感場景部署前先設,部署後再關不會回沖過去送出的資料。

來源 · README · Telemetry 章節

OpenAI 相容圖片端點獨立配置

IMAGE_PROVIDER=openai_compatible 可以把圖片請求單獨導向一個 OpenAI 相容 gateway(LiteLLM、Azure、vLLM 都行),設 OPENAI_COMPAT_IMAGE_BASE_URL/API_KEY/MODEL 三件套。文字 LLM 配置不受影響,文字跟圖片可以走不同廠商。

來源 · README · Image generation

修改埠口記得對應改 Docker -p

README 範例都用 5000:80,容器內固定是 80,你只能改主機端那個。要把服務跑在 8080,寫成 -p 8080:80。容器內側別亂改,否則 nginx 反向代理會找不到 backend。

來源 · README · Open Presenton 章節

遺失密碼用 RESET_AUTH=true 救

忘記登入密碼時,停掉容器、加 -e RESET_AUTH=true 重啟一次,會清掉所有憑證。記得清完馬上把這個 flag 拿掉,否則每次啟動都清。也可手動編輯 ./app_data/userConfig.json 刪掉三個欄位。

來源 · README · 範例最後一個 docker run

05API 使用範例

以 API 自動生成產品週報簡報。

以下範例示範如何自動化週報簡報:每週一將過去 7 天的產品數據(營收、新註冊、活躍、客訴)整理成 8 頁簡報。流程以 Presenton API 單一 curl 完成,涵蓋 HTTP Basic 認證、POST body 設定,以及回傳 PPTX 連結。

terminal · presenton api · self-host


# curl -u admin:changeme123 \
    -X POST http://localhost:5000/api/v1/ppt/presentation/generate \
    -H "Content-Type: application/json" \
    -d @payload.json


# payload.json:
  {
    "content": "5/26-5/30 產品週報:
                營收 NT$1.84M(+12%)、
                新註冊 2,340(+4%)、
                DAU 18.2K(-1.3%)、
                客訴 47 件(P0: 2)",
    "tone": "professional",
    "verbosity": "standard",
    "n_slides": 8,
    "language": "Traditional Chinese",
    "template": "general",
    "include_title_slide": true,
    "include_table_of_contents": true,
    "export_as": "pptx"
  }


# [FastAPI · /api/v1/ppt/presentation/generate]
# [auth: HTTP Basic admin:****** ✓]
# [LLM=openai · model=gpt-4.1 · web_grounding=false]


claude: presenton ›
  stage 1/5 · 規劃投影片大綱(8 頁 + 標題 + TOC = 10 頁)
    · slide 01 · 標題 · 「2026 春產品週報 5/26–5/30」
    · slide 02 · 目錄
    · slide 03 · 摘要四大指標
    · slide 04 · 營收貢獻拆解
    · slide 05 · 新註冊與獲客成本
    · slide 06 · DAU 衰退分析
    · slide 07 · 客訴熱點(P0/P1/P2)
    · slide 08 · 下週優先事項
    · slide 09 · 風險與依賴
    · slide 10 · 致謝 / 下次會議


# [stage 2/5 · 生成每頁文字內容 · ~32s]
# [stage 3/5 · IMAGE_PROVIDER=dall-e-3 · 6 張封面與分節圖 · ~58s]
# [stage 4/5 · 套用 general template · HTML + Tailwind 渲染]
# [stage 5/5 · 轉成 OpenXML PPTX]


ok: [response · 200 OK]
  ok: {
    ok: "presentation_id": "ps_8f23a1",
    ok: "pptx_url": "/app_data/exports/ps_8f23a1.pptx",
    ok: "pdf_url": null,
    ok: "slides_count": 10,
    ok: "tokens_used": 18412,
    ok: "duration_ms": 91240
  ok: }


# 下載 PPTX
# curl -u admin:changeme123 \
    -o weekly.pptx \
    http://localhost:5000/app_data/exports/ps_8f23a1.pptx


ok: [檔案大小 · 4.2MB · 在 PowerPoint 開啟後每個物件可個別編輯]

        

8 頁簡報、6 張 AI 圖、繁中內容、可編輯 PPTX, 91 秒完成,$0.18 預估費用。

— OpenAI GPT-4.1 + DALL-E 3 · 自架 Docker 實測

這段流程的三個工程亮點

第一,API 參數設計集中,單一 JSON body 涵蓋 tone、密度、語言、模板、TOC 等常用偏好,不需先建專案或呼叫多個 endpoint。第二,圖片與文字 LLM 完全獨立:文字用 OpenAI、圖片用 DALL-E,或文字用 Ollama、圖片用 Pexels,可自由組合。

第三,產出是真實 OpenXML PPTX,而非 HTML 截圖嵌入空白簡報。文字、圖片、形狀均可在原生 PowerPoint 中單獨選取與編輯。此功能是 Presenton 作為 Gamma 替代品的主要技術依據。

06使用限制

部署前應了解的功能邊界與限制。

07進階路徑

部署完成後的進階整合方向。

Presenton 的核心功能是以 API 形式提供簡報生成。內部工具、BI dashboard、業務 CRM、客服系統均可透過單一 POST 請求將資料轉為可編輯的 PPTX。以下五條路徑說明如何將 Presenton 整合為團隊共用服務。

進階玩法地圖

**1. 把生成 endpoint 接進你的後台。**BI 系統每週固定產出資料,寫一支腳本把資料整理成 prompt 餵給 /api/v1/ppt/presentation/generate。下載回來的 PPTX 自動寄給管理層,週報自動化就完成了。

**2. 用 HTML+Tailwind 寫公司專屬模板。**讓設計師用熟悉的網頁元件寫一套品牌模板(色票、字體、logo 位置)。從此公司簡報統一視覺,不必每次都手動套版面。

**3. 以內建 MCP server 接 Claude Desktop。**Claude 的 MCP 客戶端可直接呼叫 Presenton 作為投影片生成工具。在 Claude 對話框描述專案需求,即可生成簡報,無需另寫 API 整合程式碼。

**4. 拿舊 PPTX 自動生模板。**Presenton 有「AI Template Generation — Create presentation templates from existing PowerPoint documents」功能。把公司歷年用的標準簡報丟進去,系統會幫你抽出元件變成新模板。

**5. Ollama + ComfyUI 完全本機部署。**適用於政府、金融、醫療等隱私敏感場景:LLM 用 Ollama(llama3.2:3b 或更大模型),圖片用本機 ComfyUI 執行 SDXL。資料全程不離開本地環境,可搭配 GPU 加速。

最該讀的三份延伸閱讀

① docs.presenton.ai,官方文件首頁,Quickstart、API、模板、部署均有對應章節。 ② docs/amazon-bedrock.md,Bedrock 配置文件,涵蓋 inference profile、IAM 設定與疑難排解。 ③ docker-compose.yml,所有可用環境變數的定義來源,更新頻率高於 README。

No SaaS lock-in. Bring your own key, your own models, your own data.

— Presenton README · Why Presenton