Skip to content

Mrguanglei/SlideAgent

Repository files navigation

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

🚧 Project Status

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!

🎉 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

Supported Model Providers API (Tested)

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

🚧 TODO (Not Tested)

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

🧩 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.

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

📸 Screenshots

Home Chat Generation
Home Chat Generation
Knowledge Base Global Search
Knowledge Base Global Search
Online Editing Multiple Downloads
Online Editing Multiple 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 ✨

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors