presenton Agent工作流 是 AI Skill Hub 本期精选Agent工作流之一。已获得 5.0k 颗 GitHub Star,综合评分 8.2 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。
presenton Agent工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
presenton Agent工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:npm 全局安装 npm install -g presenton # 方式二:npx 直接运行(无需安装) npx presenton --help # 方式三:项目依赖安装 npm install presenton # 方式四:从源码运行 git clone https://github.com/presenton/presenton cd presenton npm install npm start
# 命令行使用
presenton --help
# 基本用法
presenton [options] <input>
# Node.js 代码中使用
const presenton = require('presenton');
const result = await presenton.run(options);
console.log(result);
# presenton 配置说明 # 查看配置选项 presenton --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export PRESENTON_CONFIG="/path/to/config.yml"
<p align="center"> <img src="./readme_assets/images/logo.png" alt="Presenton" /> </p>
<p align="center"> <a href="https://presenton.ai/download"><strong>Quickstart</strong></a> · <a href="https://docs.presenton.ai/"><strong>Docs</strong></a> · <a href="https://www.youtube.com/@presentonai"><strong>Youtube</strong></a> · <a href="https://discord.gg/9ZsKKxudNE"><strong>Discord</strong></a> </p>
<p align="center"> <a href="https://github.com/presenton/presenton/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue?style=flat" alt="Apache2.0" /></a> <a href="https://github.com/presenton/presenton"><img src="https://img.shields.io/github/stars/presenton/presenton?style=flat" alt="Stars" /></a> <a href="https://presenton.ai/"><img src="https://img.shields.io/badge/Platform-Docker%20%7C%20Windows%20%7C%20macOS%20%7C%20Linux-lightgrey?style=flat" alt="Platform" /></a> </p>
<p align="center"> <img src="./readme_assets/images/features.png" alt="Presenton Features" /> </p>
<p align="center"> <img src="./readme_assets/images/chatgpt-2-1.png" alt="Create stunning presentations with your existing ChatGPT subscription — secure and private, instant access, no API keys" /> </p>
#
The lists below match the environment variables forwarded in this repository’s docker-compose.yml (production, production-gpu, development, and development-gpu). Put values in a .env file next to the compose file, or export them before docker compose up. The Electron app backend can read the same names when run outside Docker.
Other optional variables exist in code (for example advanced Mem0 paths, LiteParse runners, or FAST_API_INTERNAL_URL when Next.js and FastAPI are not same-origin); they are not wired in docker-compose.yml. Supported names are discoverable from servers/fastapi/utils/get_env.py and the Next.js server utilities under servers/nextjs/.
gpt-4.1).deepseek-chat).https://api.deepseek.com).models/gemini-2.0-flash).gemini-2.5-flash).VERTEX_API_KEY).2024-10-21).us-east-1).us.anthropic.claude-3-5-haiku-20241022-v1:0) or a full inference profile ARN for newer models (example: Claude Sonnet 4.6). Passed through to Bedrock Converse as modelId. See Amazon Bedrock guide.BEDROCK_API_KEY is not set.openai/gpt-4o).https://openrouter.ai/api/v1).accounts/fireworks/models/llama-v3p1-8b-instruct).https://api.fireworks.ai/inference/v1).openai/gpt-oss-20b).https://api.together.ai/v1).llama-3.3-70b).https://api.cerebras.ai/v1).claude-3-5-sonnet-20241022).gpt-4.1).http://localhost:1234/v1; /v1 is auto-appended when omitted).openai/gpt-oss-20b).auto uses native search for OpenAI, Google, and Anthropic, and otherwise leaves web search off unless you choose an external provider.5, maximum 10).Use when LLM is ollama:
http://host.docker.internal:11434 from Docker).llama3.2:3b).start.js): optional install + ollama serve. Default false (development / production compose).Mem0 uses local Qdrant + SQLite (OSS); memory is scoped per presentation.
By default the Docker runtime now points Mem0 at a local Ollama-compatible LLM endpoint, so it no longer needs an OpenAI key just to initialize. If you want to use OpenAI instead, set MEM0_LLM_BASE_URL/MEM0_LLM_API_KEY to your OpenAI-compatible endpoint and key. Docker images install the default spaCy model (en_core_web_sm) during build so Mem0 can start without extra setup on each run.
| Variable | Purpose |
|---|---|
| **MEM0_ENABLED** | **true**/false (compose default **true**). |
| **MEM0_LLM_MODEL** | Mem0 LLM model name (compose default **llama3.1:latest** or OLLAMA_MODEL). |
| **MEM0_LLM_API_KEY** | Mem0 LLM API key placeholder for OpenAI-compatible clients (compose default **ollama**). |
| **MEM0_LLM_BASE_URL** | Mem0 LLM base URL (compose default **OLLAMA_URL** or http://host.docker.internal:11434). |
| **MEM0_DIR** | Root directory (compose default **/app_data/mem0**). |
| **MEM0_EMBEDDER_PROVIDER** | Embedder backend (compose default **fastembed**). |
| **MEM0_EMBEDDER_MODEL** | Model id (compose default **BAAI/bge-small-en-v1.5**). |
| **MEM0_EMBEDDING_DIMS** | Vector size (compose default **384**). |
| **MEM0_SPACY_MODEL** | Optional spaCy model override (default **en_core_web_sm**). |
| **MEM0_REQUIRE_SPACY_MODEL** | Keep as **true** (default). Set to false only if you intentionally want Mem0 to run without spaCy lemmatization. |
| Variable | Purpose |
|---|---|
| **LITEPARSE_DPI** | OCR render DPI (compose default **120**). |
| **LITEPARSE_NUM_WORKERS** | Worker count (compose default **1**). |
true for all services so migrations run on startup.These variables match docker-compose.yml. IMAGE_PROVIDER selects the backend (pexels, pixabay, gemini_flash, nanobanana_pro, dall-e-3, gpt-image-1.5, comfyui, open_webui). Use OPENAI_API_KEY for OpenAI image modes and GOOGLE_API_KEY for Gemini image modes (same keys as the LLM section).
standard).medium)./v1/images/* endpoint (LiteLLM, Azure, vLLM Gateways, etc.).Presenton uses a single admin account per instance. Credentials live in app_data (hashed; see userConfig.json). Pass these with -e or via .env for compose:
Examples
docker run -it --name presenton -p 5001:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
docker run -it --name presenton -p 5001: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 5001: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 5001: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 5001: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 5001:80 -e AUTH_USERNAME=admin -e AUTH_PASSWORD=changeme123 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest
Manual reset: stop the container, edit ./app_data/userConfig.json, delete AUTH_USERNAME, AUTH_PASSWORD_HASH, and AUTH_SECRET_KEY, save, and start again.
Sign out from the app: Settings → Other → Sign out.
When auth is configured (AUTH_USERNAME / AUTH_PASSWORD), the MCP endpoint at /mcp now requires authentication as well.
curl -s -X POST http://localhost:5001/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"changeme123"}'
The response includes:
access_token (session token)token_type (bearer){
"mcpServers": {
"presenton": {
"url": "http://localhost:5001/mcp",
"headers": {
"Authorization": "Bearer <access_token>"
}
}
}
}
Notes:
AUTH_OVERRIDE_FROM_ENV=true, previously issued session tokens are invalidated.PRESENTON_ELECTRON=true). Electron runs with DISABLE_AUTH=true by default, and the MCP server is disabled there to avoid auth conflicts.Note: LLM and image variables above are forwarded fromdocker-compose.ymlwhen set in.env.
<br> <br>
Docker Run Examples by Provider
Same variables as compose; use -e instead of .env when running docker run directly.
- Using OpenAI <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Google <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Vertex AI (API key mode) <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Azure OpenAI <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Amazon Bedrock (on-demand model ID) — see docs/amazon-bedrock.md for inference profiles, IAM, and troubleshooting. <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Amazon Bedrock (inference profile ARN, e.g. Claude Sonnet 4.6) <pre><code class="language-bash">docker run -it --name presenton -p 5001: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="arn:aws:bedrock:us-east-1:YOUR_ACCOUNT_ID:inference-profile/us.anthropic.claude-sonnet-4-6" -e IMAGE_PROVIDER="pexels" -e PEXELS_API_KEY="****" -e CAN_CHANGE_KEYS="false" -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest</code></pre>
- Using Fireworks <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Together AI <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Ollama <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using Anthropic <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using LM Studio (local) <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
- Using OpenAI Compatible LLM API <pre><code class="language-bash">docker run -it -p 5001: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</code></pre>
- 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: <pre><code class="language-bash">docker run -it --name presenton --gpus=all -p 5001: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</code></pre>
This routes all slide image requests through your OpenAI-compatible gateway (LiteLLM, Azure, vLLM, etc.) while keeping the text LLM configuration independent: <pre><code class="language-bash">docker run -it --name presenton -p 5001: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</code></pre>
#
Generate Presentation
<p> <strong>Endpoint:</strong> <code>/api/v1/ppt/presentation/generate</code><br> <strong>Method:</strong> <code>POST</code><br> <strong>Content-Type:</strong> <code>application/json</code> </p>
<p> <strong>Authentication (HTTP Basic):</strong><br> All <code>/api/v1/</code> routes except <code>/api/v1/auth/*</code> require authentication. Send your Presenton admin username and password (same as the web UI, or <strong>AUTH_USERNAME</strong> / <strong>AUTH_PASSWORD</strong> when preseeding Docker). With <code>curl</code>, put them right after <code>-u</code> as <code>-u USERNAME:PASSWORD</code> — that is HTTP Basic auth and sets <code>Authorization: Basic …</code> for you. Replace the sample <code>username:password</code> below with your real credentials. </p>
Request Body
| Parameter | Type | Required | Description |
|---|
| 原始名称 | presenton |
| 原始描述 | 开源AI工作流:Open-Source AI Presentation Generator and API (Gamma, Beautiful AI, Decktopus Al。⭐5.0k · JavaScript |
| Topics | AI演示生成工作流自动化PowerPoint自动化API接口开源工具 |
| GitHub | https://github.com/presenton/presenton |
| License | Apache-2.0 |
| 语言 | JavaScript |
收录时间:2026-05-16 · 更新时间:2026-05-19 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端