logo
0
0
WeChat Login
Tonye<Mrguanglei@163.com>
Update README.md

SlideAgent - Enables Everyone to Easily Create Professional Presentations

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.

If this helps you, please consider starring the repo ✨

SlideAgent Homepage

🎉 News

  • [2026/02] Add The Function of Online Search
  • [2026/01] "See-What-You-Get" PPT Export Function

✨ Highlights

  • 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

✅ Current Status

  • 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

🧭 Roadmap

  • Conversational Editing — Keep refining slides via dialogue
  • Database Search Tool — Call knowledge base tools directly
  • Multi-version Management — Save, compare, and rollback versions

🚀 Quick Start

Prerequisites

  • Docker and Docker Compose
  • Git

Run with Docker Compose

  1. Clone the repository

    git clone https://github.com/Mrguanglei/SlideAgent.git cd SlideAgent
  2. Configuration (Optional) Copy .env.example to .env and modify as needed:

    cp .env.example .env

    You can configure database and LLM API settings in the .env file.

  3. Build and start services

    docker-compose up --build -d
  4. Access the application

Supported Model Providers API (Tested)

Provider/SeriesModelStatusNotes
Zhipu AIGLM-5✅ Supported
GLM-4 Series✅ Supported
GLM-4-Plus✅ Supported
GLM-4-Flash✅ Supported
DeepSeekDeepSeek-V3✅ Supported
DeepSeek-V3.2✅ Supported
DeepSeek-R1✅ Supported
MiniMaxMiniMax-Text Series✅ Supported
ByteDance (Doubao)Doubao-1.8✅ Supported
Doubao-pro✅ Supported
Intern (Shanghai AI Lab)intern-s1-pro✅ Supported

🚧 TODO (Not Tested)

Provider/SeriesModelStatusNotes
OpenAIGPT-4o🚧 Not TestedCompatibility mode pending verification
GPT-4o-mini🚧 Not Tested
AnthropicClaude 3.5 Sonnet🚧 Not Tested
Claude 3 Opus🚧 Not Tested
Alibaba CloudQwen-Max🚧 Not Tested
Qwen-Plus🚧 Not Tested
BaiduERNIE 4.0🚧 Not Tested
Moonshot AIKimi k1.5🚧 Not Tested
01.AIYi-Large🚧 Not Tested
KimiKimi-2.5🚧 Not Tested

🧩 PPTX Export Service (HTML -> PPTX)

  • 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.md for API usage and deployment notes

⚙️ Environment Variables

Create a .env file in the project root directory to override default configurations.

VariableDefault ValueDescription
POSTGRES_DBpptagentDatabase name
POSTGRES_USERpptagentDatabase username
POSTGRES_PASSWORDpptagentDatabase password
DATABASE_URLpostgresql+asyncpg://...Database connection string
PPTAGENT_API_BASE_URLhttps://open.bigmodel.cn/api/paas/v4/PPT generation LLM API base URL
PPTAGENT_API_KEYyour_api_keyPPT generation LLM API key
PPTAGENT_MODELglm-4-flashPPT generation LLM model
KNOWLEDGE_LLM_BASE_URLPPTAGENT_API_BASE_URLKnowledge base LLM API base URL
KNOWLEDGE_LLM_API_KEYPPTAGENT_API_KEYKnowledge base LLM API key
KNOWLEDGE_LLM_MODELglm-4-flashKnowledge base LLM model
KNOWLEDGE_EMBEDDING_MODELembedding-3Knowledge base embedding model
KNOWLEDGE_UPLOAD_DIR/tmp/knowledge_uploadsKnowledge base upload directory

📸 Screenshots

HomeChat Generation
HomeChat Generation
Knowledge BaseGlobal Search
Knowledge BaseGlobal Search
Online EditingMultiple Downloads
Online EditingMultiple Downloads

🛠️ Project Structure

.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

🤝 Contributing

All forms of contributions are welcome! If you have any ideas or suggestions, feel free to submit Pull Requests or create Issues.

Star History Chart

🙏 Acknowledgments

  • 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

🖊️ Citation

@misc{2026SlideAgent, title={SlideAgent: Enables Everyone to Easily Create Professional Presentations}, author={SlideAgent Contributors}, howpublished = {\url{https://github.com/Mrguanglei/SlideAgent}}, year={2026} }

📄 License

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

If this helps you, please consider starring the repo ✨