presenton AI PPT 生成器

2025年09月14日 12:55:46
5098
AI PPT生成工具 openAI LLM
presenton presenton/presenton

一个免费的、能完全在你自己电脑上运行的 AI PPT 生成工具。和那些必须联网、依赖服务商云服务的工具不同,Presenton 的核心优势在于本地优先和开放可控。 你的数据你做主, 所有生成演示文稿的过程都在你的电脑上完成。这意味着你的内容创意、上传的文件等敏感信息,无需上传到第三方云端服务器,隐私更有保障。自由选择AI模型,它不绑定任何一家 AI 服务商。你可以灵活选择。

项目大小 495.35 KB
涉及语言 TypeScript 68.69% Python 30.05% CSS 0.64% JavaScript 0.50% Dockerfile 0.09% HTML 0.02%
许可协议 LICENSE
仓库同步说明
  • • 同步需要仓库写入权限以创建目标仓库
  • • 使用平台账号授权登录后将同步到您平台下的个人仓库

Presenton Logo

Join our Discord Follow us on X

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

Presenton is an open-source application for generating presentations with AI — all running locally on your device. Stay in control of your data and privacy while using models like OpenAI and Gemini, or use your own hosted models through Ollama.

✨ Now, generate presentations with your existing PPTX file! Just upload your presentation file to create template design and then use that template to generate on brand and on design presentation on any topic.

Demo

[!NOTE]
Enterprise Inquiries:
For enterprise use, custom deployments, or partnership opportunities, contact us at suraj@presenton.ai.

[!IMPORTANT]
Like Presenton? A ⭐ star shows your support and encourages us to keep building!

[!TIP]
For detailed setup guides, API documentation, and advanced configuration options, visit our Official Documentation

✨ More Freedom with AI Presentations

Presenton gives you complete control over your AI presentation workflow. Choose your models, customize your experience, and keep your data private.

  • Custom Templates & Themes — Create unlimited presentation designs with HTML and Tailwind CSS
  • AI Template Generation — Create presentation templates from existing Powerpoint documents.
  • Flexible Generation — Build presentations from prompts or uploaded documents
  • Export Ready — Save as PowerPoint (PPTX) and PDF with professional formatting
  • Built-In MCP Server — Generate presentations over Model Context Protocol
  • Bring Your Own Key — Use your own API keys for OpenAI, Google Gemini, Anthropic Claude, or any compatible provider. Only pay for what you use, no hidden fees or subscriptions.
  • Ollama Integration — Run open-source models locally with full privacy
  • OpenAI API Compatible — Connect to any OpenAI-compatible endpoint with your own models
  • Multi-Provider Support — Mix and match text and image generation providers
  • Versatile Image Generation — Choose from DALL-E 3, Gemini Flash, Pexels, or Pixabay
  • Rich Media Support — Icons, charts, and custom graphics for professional presentations
  • Runs Locally — All processing happens on your device, no cloud dependencies
  • API Deployment — Host as your own API service for your team
  • Fully Open-Source — Apache 2.0 licensed, inspect, modify, and contribute
  • Docker Ready — One-command deployment with GPU support for local models

Presenton Cloud

Presenton Logo

Running Presenton Docker

1. Start Presenton

Linux/MacOS (Bash/Zsh Shell):
1
docker run -it --name presenton -p 5000:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
Windows (PowerShell):
1
docker run -it --name presenton -p 5000:80 -v "${PWD}\app_data:/app_data" ghcr.io/presenton/presenton:latest

2. Open Presenton

Open http://localhost:5000 on browser of your choice to use Presenton.

Note: You can replace 5000 with any other port number of your choice to run Presenton on a different port number.

Deployment Configurations

You may want to directly provide your API KEYS as environment variables and keep them hidden. You can set these environment variables to achieve it.

  • CAN_CHANGE_KEYS=[true/false]: Set this to false if you want to keep API Keys hidden and make them unmodifiable.
  • LLM=[openai/google/anthropic/ollama/custom]: Select LLM of your choice.
  • OPENAI_API_KEY=[Your OpenAI API Key]: Provide this if LLM is set to openai
  • OPENAI_MODEL=[OpenAI Model ID]: Provide this if LLM is set to openai (default: “gpt-4.1”)
  • GOOGLE_API_KEY=[Your Google API Key]: Provide this if LLM is set to google
  • GOOGLE_MODEL=[Google Model ID]: Provide this if LLM is set to google (default: “models/gemini-2.0-flash”)
  • ANTHROPIC_API_KEY=[Your Anthropic API Key]: Provide this if LLM is set to anthropic
  • ANTHROPIC_MODEL=[Anthropic Model ID]: Provide this if LLM is set to anthropic (default: “claude-3-5-sonnet-20241022”)
  • OLLAMA_URL=[Custom Ollama URL]: Provide this if you want to custom Ollama URL and LLM is set to ollama
  • OLLAMA_MODEL=[Ollama Model ID]: Provide this if LLM is set to ollama
  • CUSTOM_LLM_URL=[Custom OpenAI Compatible URL]: Provide this if LLM is set to custom
  • CUSTOM_LLM_API_KEY=[Custom OpenAI Compatible API KEY]: Provide this if LLM is set to custom
  • CUSTOM_MODEL=[Custom Model ID]: Provide this if LLM is set to custom
  • TOOL_CALLS=[Enable/Disable Tool Calls on Custom LLM]: If true, LLM will use Tool Call instead of Json Schema for Structured Output.
  • DISABLE_THINKING=[Enable/Disable Thinking on Custom LLM]: If true, Thinking will be disabled.
  • WEB_GROUNDING=[Enable/Disable Web Search for OpenAI, Google And Anthropic]: If true, LLM will be able to search web for better results.

You can also set the following environment variables to customize the image generation provider and API keys:

  • IMAGE_PROVIDER=[pexels/pixabay/gemini_flash/dall-e-3]: Select the image provider of your choice.
    • Defaults to dall-e-3 for OpenAI models, gemini_flash for Google models if not set.
  • PEXELS_API_KEY=[Your Pexels API Key]: Required if using pexels as the image provider.
  • PIXABAY_API_KEY=[Your Pixabay API Key]: Required if using pixabay as the image provider.
  • GOOGLE_API_KEY=[Your Google API Key]: Required if using gemini_flash as the image provider.
  • OPENAI_API_KEY=[Your OpenAI API Key]: Required if using dall-e-3 as the image provider.

You can disable anonymous telemetry using the following environment variable:

  • DISABLE_ANONYMOUS_TELEMETRY=[true/false]: Set this to true to disable anonymous telemetry.

Note: You can freely choose both the LLM (text generation) and the image provider. Supported image providers: pexels, pixabay, gemini_flash (Google), and dall-e-3 (OpenAI).

Using OpenAI

1
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

Using Google

1
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

Using Ollama

1
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

Using Anthropic

1
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

Using OpenAI Compatible API

1
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

Running Presenton with GPU Support

To use GPU acceleration with Ollama models, you need to install and configure the NVIDIA Container Toolkit. This allows Docker containers to access your NVIDIA GPU.

Once the NVIDIA Container Toolkit is installed and configured, you can run Presenton with GPU support by adding the --gpus=all flag:

1
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

Note: GPU acceleration significantly improves the performance of Ollama models, especially for larger models. Make sure you have sufficient GPU memory for your chosen model.

Generate Presentation over API

Generate Presentation

Endpoint: /api/v1/ppt/presentation/generate

Method: POST

Content-Type: application/json

Request Body

Parameter Type Required Description
content string Yes The content for generating the presentation
slides_markdown string[] | null No The markdown for the slides
instructions string | null No The instruction for generating the presentation
tone string No The tone to use for the text (default: “default”). Available options: “default”, “casual”, “professional”, “funny”, “educational”, “sales_pitch”
verbosity string No How verbose the text should be (default: “standard”). Available options: “concise”, “standard”, “text-heavy”
web_search boolean No Whether to enable web search (default: false)
n_slides integer No Number of slides to generate (default: 8)
language string No Language for the presentation (default: “English”)
template string No Template to use for the presentation (default: “general”)
include_table_of_contents boolean No Whether to include a table of contents (default: false)
include_title_slide boolean No Whether to include a title slide (default: true)
files string[] | null No Files to use for the presentation. Use /api/v1/ppt/files/upload to upload files
export_as string No Export format (default: “pptx”). Available options: “pptx”, “pdf”

Response

1
2
3
4
5
{
    "presentation_id": "string",
    "path": "string",
    "edit_path": "string"
}

Example Request

1
2
3
4
5
6
7
8
9
curl -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"
  }'

Example Response

1
2
3
4
5
{
  "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"
}

Note: Make sure to prepend your server’s root URL to the path and edit_path fields in the response to construct valid links.

For detailed info checkout API documentation.

API Tutorials

Roadmap

  • [x] Support for custom HTML templates by developers
  • [x] Support for accessing custom templates over API
  • [x] Implement MCP server
  • [ ] Ability for users to change system prompt
  • [X] Support external SQL database

UI Features

1. Add prompt, select number of slides and language

Demo

2. Select theme

Demo

3. Review and edit outline

Demo

4. Select theme

Demo

5. Present on app

Demo

6. Change theme

Demo

7. Export presentation as PDF and PPTX

Demo

Community

Discord

License

Apache 2.0


                

                

免责声明 © 2026 - 虚宝阁

本站部分源码来源于网络,版权归属原开发者,用户仅获得使用权。依据《计算机软件保护条例》第十六条,禁止:

  • 逆向工程破解技术保护措施
  • 未经许可的分发行为
  • 去除源码中的原始版权标识

※ 本站源码仅用于学习和研究,禁止用于商业用途。如有侵权, 请及时联系我们进行处理。

侵权举报请提供: 侵权页面URL | 权属证明模板

响应时效:收到完整材料后48小时内处理

相关推荐

scira: AI 驱动搜索引擎

scira: AI 驱动搜索引擎

极简的 AI 驱动搜索引擎,支持引用来源

10827 2025-10-20
markdown-it

markdown-it

markdown-it是一款快速且易扩展的Markdown解析器,遵循CommonMark规范并添加语法扩展。它配置灵活、速度快且安全,还有丰富的社区插件。

20415 2025-09-09
refine: 企业级React后台框架

refine: 企业级React后台框架

这是一个专为构建 CRUD(增删改查)应用设计的 Web 框架,只需一行命令即可生成项目骨架,内置登录、列表、详情、编辑页面等功能。业务逻辑与 UI、路由完全解耦,可灵活集成 Ant Design、Material-UI 等设计系统,适用于快速开发管理后台、仪表盘、内部工具和 B2B 应用。

32865 2025-09-13
Stable Diffusion AI绘画界的 扛把子

Stable Diffusion AI绘画界的 扛把子

提到AI画图,没人能绕开Stable Diffusion!由Stability AI开源,支持文本生成图像、图像修复、风格迁移,关键是完全免费商用(非商用更没问题),普通电脑装个WebUI就能玩到飞起。

41831 2025-09-13
DeepFaceLab

DeepFaceLab

换脸圈的“老大哥”,开源界扛把子,功能强到离谱。不管是图片换脸、长视频换脸,还是修复模糊人脸,它都能搞定。网上很多高质量换脸视频都出自它手,但毕竟是专业级选手,上手难度稍高,得花点时间研究流程,学会了就能玩出花。

18651 2025-09-14
YOLOv8-目标检测界的闪电侠

YOLOv8-目标检测界的闪电侠

YOLO系列的最新版,主打“又快又准”的目标检测。能瞬间识别图片/视频里的人、车、动物、物体,在普通显卡上就能实时处理视频流,工业级场景都在用它。

47034 2025-09-13
Whisper-OpenAI的语音魔术师

Whisper-OpenAI的语音魔术师

OpenAI开源的语音识别模型,能把语音转文字、文字转语音,还支持99种语言!关键是准确率超高,连带口音的中文、英文都能轻松识别,简直是会议记录、视频字幕的救星。

89153 2025-09-13
LLaMA-Meta家的平民大模型

LLaMA-Meta家的平民大模型

这是Meta(脸书母公司)开源的大语言模型家族,从70亿参数到700亿参数应有尽有,主打一个“轻量能跑、开源免费”。普通人下载后,在消费级显卡上就能微调,不用再眼巴巴看着大厂模型流口水~

58804 2025-09-13
ConvertX-自托管的在线文件转换工具

ConvertX-自托管的在线文件转换工具

一个开源的在线文件格式转换工具,支持超过 1000 种主流文档、图片、音视频等多类型文件格式,不依赖第三方服务。它即装即用、操作便捷,并提供文件夹批量处理、实时进度条显示等功能。

8500 2025-09-13
CubeCity

CubeCity

A city waiting to be built by you 🏙️🔨✨. Threejs Version (一个等着被你建造的城市)

510 2025-10-02
Retrieval-based-Voice-Conversion-WebUI

Retrieval-based-Voice-Conversion-WebUI

Retrieval-based-Voice-Conversion-WebUI是基于VITS的易用变声框架。底模用开源VCTK数据集训练,无版权问题。有训练推理和实时变声界面,具备很多优点。

32357 2025-09-06

仓库下载

gitee

GitHub 下载代理

文件信息

文件名
文件大小
文件类型
代理耗时