SlideAgent is an open-source, AI-driven presentation generator. Provide a topic or documents, and it produces an outline, slide content, and a themed deck with online preview and multi-format export.
This project is still under active development and gradually improving:
- ✅ Core features are basically implemented
- 🔄 API interfaces may be adjusted
- 📝 Documentation is being continuously updated
Welcome to try it out and provide feedback!
- [2026/02] Add The Function of Online Search
- [2026/01] "See-What-You-Get" PPT Export Function
- AI PPT Generation — Automatically generates outlines, content, and designs
- Knowledge Base — Upload documents and generate PPTs from your own materials
- Online Preview & Editing — Preview slides in the browser and edit text directly
- Online Sharing — Generate share links with expiration settings
- Task Queue — Batch processing with backend queue
- PPTX Export Service — Dedicated export_tool service converts HTML slides to editable PPTX
- Content Editing — Edit slide text directly in the preview
- Online Preview — Real-time PPT preview in the browser
- Export — PDF / HTML / PPTX export (PPTX styles may be lost; improving)
- Task Status — Global persistence of agent task status
- Conversational Editing — Keep refining slides via dialogue
- Database Search Tool — Call knowledge base tools directly
- Multi-version Management — Save, compare, and rollback versions
- Docker and Docker Compose
- Git
-
Clone the repository
git clone https://github.com/Mrguanglei/SlideAgent.git cd SlideAgent -
Configuration (Optional) Copy
.env.exampleto.envand modify as needed:cp .env.example .env
You can configure database and LLM API settings in the
.envfile. -
Build and start services
docker-compose up --build -d
| Provider/Series | Model | Status | Notes |
|---|---|---|---|
| Zhipu AI | GLM-5 | ✅ Supported | |
| GLM-4 Series | ✅ Supported | ||
| GLM-4-Plus | ✅ Supported | ||
| GLM-4-Flash | ✅ Supported | ||
| DeepSeek | DeepSeek-V3 | ✅ Supported | |
| DeepSeek-V3.2 | ✅ Supported | ||
| DeepSeek-R1 | ✅ Supported | ||
| MiniMax | MiniMax-Text Series | ✅ Supported | |
| ByteDance (Doubao) | Doubao-1.8 | ✅ Supported | |
| Doubao-pro | ✅ Supported | ||
| Kimi | kimi-k2-turbo-preview | ✅ Supported | |
| Alibaba Cloud | Qwen-Max | ✅ Supported | |
| Qwen-Plus | ✅ Supported | ||
| Intern (Shanghai AI Lab) | intern-s1-pro | ✅ Supported |
| Provider/Series | Model | Status | Notes |
|---|---|---|---|
| OpenAI | GPT-4o | 🚧 Not Tested | Compatibility mode pending verification |
| GPT-4o-mini | 🚧 Not Tested | ||
| Anthropic | Claude 3.5 Sonnet | 🚧 Not Tested | |
| Claude 3 Opus | 🚧 Not Tested | ||
| Baidu | ERNIE 4.0 | 🚧 Not Tested | |
| Moonshot AI | Kimi k1.5 | 🚧 Not Tested | |
| 01.AI | Yi-Large | 🚧 Not Tested | |
| ... | .... | 🚧 Not Tested |
- Service:
export_tool(FastAPI) runs independently and is started by Docker Compose - Pipeline: Backend
/api/ppt/export-> export_tool/api/export_tool/pptx - Tech: Playwright (Chromium) renders HTML, dom-to-pptx converts to PPTX, with font embedding and icon assets
- Details: See
export_tool/README.mdfor API usage and deployment notes
Create a .env file in the project root directory to override default configurations.
| Variable | Default Value | Description |
|---|---|---|
POSTGRES_DB |
pptagent |
Database name |
POSTGRES_USER |
pptagent |
Database username |
POSTGRES_PASSWORD |
pptagent |
Database password |
DATABASE_URL |
postgresql+asyncpg://... |
Database connection string |
PPTAGENT_API_BASE_URL |
https://open.bigmodel.cn/api/paas/v4/ |
PPT generation LLM API base URL |
PPTAGENT_API_KEY |
your_api_key |
PPT generation LLM API key |
PPTAGENT_MODEL |
glm-4-flash |
PPT generation LLM model |
KNOWLEDGE_LLM_BASE_URL |
PPTAGENT_API_BASE_URL |
Knowledge base LLM API base URL |
KNOWLEDGE_LLM_API_KEY |
PPTAGENT_API_KEY |
Knowledge base LLM API key |
KNOWLEDGE_LLM_MODEL |
glm-4-flash |
Knowledge base LLM model |
KNOWLEDGE_EMBEDDING_MODEL |
embedding-3 |
Knowledge base embedding model |
KNOWLEDGE_UPLOAD_DIR |
/tmp/knowledge_uploads |
Knowledge base upload directory |
| Home | Chat Generation |
|---|---|
![]() |
![]() |
| Knowledge Base | Global Search |
![]() |
![]() |
| Online Editing | Multiple Downloads |
![]() |
![]() |
.env.example # Environment variables example
docker-compose.yml # Docker compose configuration
README.md # Project documentation
backend/ # Python backend (FastAPI)
├── services/ # Core services (export, sharing, knowledge base)
├── routers/ # API routes
├── database/ # Database models and CRUD
├── api_server.py # FastAPI server entry point
├── requirements.txt # Python dependencies
└── Dockerfile
frontend/ # React frontend (Vite)
├── src/
│ ├── pages/ # Page components (Home, Knowledge, ShareView)
│ ├── components/ # Reusable components (Sidebar, Modals, etc.)
│ ├── lib/ # API requests, utility functions
│ └── types/ # TypeScript type definitions
├── package.json # Node.js dependencies
├── vite.config.ts # Vite configuration
└── Dockerfile
export_tool/ # Export service (PDF/PNG/HTML/PPTX)
├── app/ # FastAPI app and services
├── dom-to-pptx/ # HTML -> PPTX core library
├── fonts/ # Font assets for embedding
└── Dockerfile
All forms of contributions are welcome! If you have any ideas or suggestions, feel free to submit Pull Requests or create Issues.
- Intern-S1 Pro - The Shanghai Artificial Intelligence Laboratory provides computing power support.
- shadcn/ui - Frontend UI component library.
- FastAPI - High-performance Python web framework.
- React - JavaScript library for building user interfaces.
- dom-to-pptx - The static library for exporting pptx
@misc{2026SlideAgent,
title={SlideAgent: Enables Everyone to Easily Create Professional Presentations},
author={SlideAgent Contributors},
howpublished = {\url{https://github.com/Mrguanglei/SlideAgent}},
year={2026}
}This project is licensed under CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International).
- Attribution — You must give appropriate credit
- NonCommercial — You may not use the material for commercial purposes
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license






