實戰手冊 · Field Manual 2026 春季號 · Vol.04
github.com/presenton/presenton · 7.5k ★
P
第 04 期 · AI 簡報生成 / 開源自架

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

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 配置的常見雷區。

7.5k
GitHub Stars
10+
支援的 LLM 廠商
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 簡報工具中較少見。

Presenton 生成流程 · 從 prompt 到 PPTX
輸入主題 LLM 生大綱 選模板 生圖 渲染 HTML 匯出 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 寫進環境變數。

# 最簡安裝:不帶任何 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 名稱即可。

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)。

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
不想跑 Docker?有兩個選項:① 桌機版下載 .dmg / .exe / .deb,從 presenton.ai/download 取得 native app;② 一鍵雲端部署,GitHub README 直接提供 Railway 與 DigitalOcean 的 Deploy 按鈕。本機開發者要跑 Electron 原始碼,需要 Node LTS + Python 3.11 + uv,在 electron/npm run setup:envnpm run dev
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_KEYAZURE_OPENAI_API_VERSIONAZURE_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-20241022WEB_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 帳號 openai dall-e-3 Docker (本機)
公司內部,要資料不外送 ollama + GPU comfyuipexels Docker (內網)
對外開放的 API 服務 vertexbedrock gemini_flash Railway / DigitalOcean
Claude 用戶,想簡報生成當工具 anthropic pexels Docker + 內建 MCP server
04
關鍵設定提示

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

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

TIP 01

鎖死 key 用 CAN_CHANGE_KEYS=false

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

來源 · README · LLM and API keys
TIP 02

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

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

來源 · README · Authentication 章節
TIP 03

Sign in with ChatGPT 占用 1455 port

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

來源 · README · CODEX_MODEL 章節
TIP 04

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 範例
TIP 05

Mem0 預設指向 Ollama,不再吃 OpenAI

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

來源 · README · Mem0 章節
TIP 06

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 章節
TIP 07

關閉遙測:DISABLE_ANONYMOUS_TRACKING=true

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

來源 · README · Telemetry 章節
TIP 08

OpenAI 相容圖片端點獨立配置

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

來源 · README · Image generation
TIP 09

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

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

來源 · README · Open Presenton 章節
TIP 10

遺失密碼用 RESET_AUTH=true 救

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

來源 · README · 範例最後一個 docker run
05
API 使用範例

以 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]
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]
[response · 200 OK] { "presentation_id": "ps_8f23a1", "pptx_url": "/app_data/exports/ps_8f23a1.pptx", "pdf_url": null, "slides_count": 10, "tokens_used": 18412, "duration_ms": 91240 }
# 下載 PPTX $ curl -u admin:changeme123 \ -o weekly.pptx \ http://localhost:5000/app_data/exports/ps_8f23a1.pptx
[檔案大小 · 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
使用限制

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

  • 遙測預設開啟。沒設 DISABLE_ANONYMOUS_TRACKING=true 之前都會送匿名使用資料。內部、政府、隱私敏感場景要在第一次啟動容器前就設好,部署後再關不會回沖過去送出的資料。
  • 單一管理員帳號的天花板。Presenton 內建一個 admin per instance,沒有多角色 RBAC。團隊用要嘛共用一組密碼,要嘛跑多個 instance。需要細粒度權限就得自行包一層代理或 reverse proxy。
  • 圖片 / LLM key 都會花到真錢。BYOK 表面上「便宜」,但 DALL-E 3 + GPT-4.1 一份 10 頁簡報實測約 $0.15–$0.30。月生 200 份就破 $50。要省得把圖片切到 Pexels,LLM 切到 Gemini Flash 或本機 Ollama。
  • Mem0 / spaCy / LiteParse 都是大依賴。Docker image 預裝 en_core_web_sm 等 spaCy 模型、Mem0 OSS 與 LiteParse OCR,容器體積較大。Mem0 若不需要可以設 MEM0_ENABLED=false 減負載。
  • Bedrock 模型 ID 格式不一致。新版模型需要 inference profile ARN,舊版模型用 model ID。錯誤配置時回傳 401/404,錯誤訊息不會明確提示 ARN 要求。首次設定請先參考 docs/amazon-bedrock.md
  • HTML/Tailwind 模板自由但要會寫。「客製模板很自由」的另一面是沒有圖形編輯器。設計師沒有 Code 能力的話,要嘛走預設模板,要嘛把舊 PPTX 餵給 AI 自動轉,但風格控制力一定不如手寫元件。
  • PPTX 可編輯不等於完美。OpenXML 轉出來的 PPTX 大致對應視覺,但複雜版面(浮動表格、SmartArt、嵌入 Excel)會被簡化。需要 100% 視覺一致就用 PDF 匯出版本。
  • 滾動更新,API 不保證向後相容。repo 最後一次 push 在過去一週內,環境變數與 API schema 仍在演化。生產環境部署建議 pin Docker image tag(不要用 :latest),並訂 GitHub Releases 通知,以便重大變更時手動升級。
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