Skip to main content

An Agentic Framework for Reflective PowerPoint Generation

Project description

https://github.com/icip-cas/PPTAgent

https://github.com/user-attachments/assets/938889e8-d7d8-4f4f-b2a1-07ee3ef3991a

Contact 📫

The main contributor of this repo is a Master's student graduating in 2026, feel free to reach out for collaboration or opportunities.

本仓库的主要贡献者是一名 2026 届硕士毕业生,欢迎联系合作或交流机会。

News 📅

  • [2026/01]: We support freeform and template generation support PPTX export, offline mode now! Context management is added to avoid context overflow.
  • [2025/12]: 🔥 Released V2 with major improvements - Deep Research Integration, Free-Form Visual Design, Autonomous Asset Creation, Text-to-Image Generation, and Agent Environment with sandbox & 20+ tools.
  • [2025/09]: 🛠️ MCP server support added - see MCP Server for configuration details
  • [2025/09]: 🚀 Released v2 with major improvements - see release notes for details
  • [2025/08]: 🎉 Paper accepted to EMNLP 2025!
  • [2025/05]: ✨ Released v1 with core functionality and 🌟 breakthrough: reached 1,000 stars on GitHub! - see release notes for details
  • [2025/01]: 🔓 Open-sourced the codebase, with experimental code archived at experiment release

Usage 📖

[!IMPORTANT]

  1. All these API keys, configurations, and services are required.
  2. Agent Backbone Recommendation: Use Claude for the Research Agent and Gemini for the Design Agent. GLM-5 is also a good choice in open-source models.
  3. Offline mode is supported with limited capabilities (see Offline Setup below).

Quick Start with CLI 🚀

DeepPresenter now provides a command-line interface for easy usage:

# Install `uv` for package management
curl -LsSf https://astral.sh/uv/install.sh | sh

# Interactive configuration (first time)
uvx pptagent onboard

# Generate presentation
uvx pptagent generate "Single Page with Title: Hello World" -o hello.pptx

# With attachments and options
uvx pptagent generate "Q4 Report" \
  -f data.xlsx \
  -f charts.pdf \
  -p "10-12" \
  -o report.pptx

CLI Commands:

  • pptagent onboard - Interactive configuration wizard
  • pptagent generate - Generate presentations
  • pptagent config - View current configuration
  • pptagent reset - Reset configuration

Options:

  • -f, --file - Attachment files (multiple allowed)
  • -p, --pages - Number of pages (e.g., "8" or "5-10")
  • -a, --aspect - Aspect ratio (16:9, 4:3, A1, A3, A2, A4)
  • -l, --lang - Language (en/zh)
  • -o, --output - Output directory

1. Environment Configuration

  • Create configuration files (from project root):

    cp deeppresenter/deeppresenter/config.yaml.example deeppresenter/deeppresenter/config.yaml
    cp deeppresenter/deeppresenter/mcp.json.example deeppresenter/deeppresenter/mcp.json
    
  • Online setup:

    • MinerU: Apply for an API key at mineru.net. Note that each key is valid for 14 days.
    • Tavily: Apply for an API key at tavily.com.
    • LLM: Set your model endpoint, API keys, and related parameters in config.yaml.
  • Offline setup:

    • MinerU: Deploy the MinerU server by following the instructions at MinerU docker guide
    • Config switch: Set offline_mode: true in config.yaml to avoid loading network-dependent tools (e.g., fetch, search).
    • MinerU endpoint: Set MINERU_API_URL in mcp.json to your local MinerU service URL

2. Service Startup

Build docker images: docker compose build

  • From Docker Compose:

    docker compose up -d
    
  • Running locally:

    cd deeppresenter
    uv pip install -e .
    playwright install-deps
    playwright install chromium
    npm install
    npx playwright install chromium
    python webui.py
    

[!TIP] 🚀 All configurable variables can be found in constants.py.

Case Study 💡

  • Prompt: Please present the given document to me.

图片1 图片2 图片3 图片4 图片5 图片6 图片7 图片8 图片9 图片10
  • Prompt: 请介绍小米 SU7 的外观和价格

图片1 图片2 图片3 图片4 图片5 图片6
  • Prompt: 请制作一份高中课堂展示课件,主题为“解码立法过程:理解其对国际关系的影响”

图片1 图片2 图片3 图片4 图片5 图片6 图片7 图片8 图片9 图片10 图片11 图片12 图片13 图片14 图片15

Contributors 🌟

Force1ess/
Force1ess
Puelloc/
Puelloc
Dnoob/
Dnoob
Sadahlu/
Sadahlu
hongyan/
hongyan
KurisuMakiseSame/
KurisuMakiseSame
Eliot
Eliot White
EvolvedGhost/
EvolvedGhost
ISCAS-zwl/
ISCAS-zwl
James
James Brown
JunZhang/
JunZhang
Open
Open AI Tx
Sense_wang/
Sense_wang
SuYao/
SuYao
Zhenyu/
Zhenyu

Star History Chart

Citation 🙏

If you find this project helpful, please use the following to cite it:

@inproceedings{zheng-etal-2025-pptagent,
    title = "{PPTA}gent: Generating and Evaluating Presentations Beyond Text-to-Slides",
    author = "Zheng, Hao  and
      Guan, Xinyan  and
      Kong, Hao  and
      Zhang, Wenkai  and
      Zheng, Jia  and
      Zhou, Weixiang  and
      Lin, Hongyu  and
      Lu, Yaojie  and
      Han, Xianpei  and
      Sun, Le",
    editor = "Christodoulopoulos, Christos  and
      Chakraborty, Tanmoy  and
      Rose, Carolyn  and
      Peng, Violet",
    booktitle = "Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing",
    month = nov,
    year = "2025",
    address = "Suzhou, China",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2025.emnlp-main.728/",
    doi = "10.18653/v1/2025.emnlp-main.728",
    pages = "14413--14429",
    ISBN = "979-8-89176-332-6",
    abstract = "Automatically generating presentations from documents is a challenging task that requires accommodating content quality, visual appeal, and structural coherence. Existing methods primarily focus on improving and evaluating the content quality in isolation, overlooking visual appeal and structural coherence, which limits their practical applicability. To address these limitations, we propose PPTAgent, which comprehensively improves presentation generation through a two-stage, edit-based approach inspired by human workflows. PPTAgent first analyzes reference presentations to extract slide-level functional types and content schemas, then drafts an outline and iteratively generates editing actions based on selected reference slides to create new slides. To comprehensively evaluate the quality of generated presentations, we further introduce PPTEval, an evaluation framework that assesses presentations across three dimensions: Content, Design, and Coherence. Results demonstrate that PPTAgent significantly outperforms existing automatic presentation generation methods across all three dimensions."
}

@misc{zheng2026deeppresenterenvironmentgroundedreflectionagentic,
      title={DeepPresenter: Environment-Grounded Reflection for Agentic Presentation Generation},
      author={Hao Zheng and Guozhao Mo and Xinru Yan and Qianhao Yuan and Wenkai Zhang and Xuanang Chen and Yaojie Lu and Hongyu Lin and Xianpei Han and Le Sun},
      year={2026},
      eprint={2602.22839},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2602.22839},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pptagent-1.0.0.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pptagent-1.0.0-py3-none-any.whl (4.8 MB view details)

Uploaded Python 3

File details

Details for the file pptagent-1.0.0.tar.gz.

File metadata

  • Download URL: pptagent-1.0.0.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for pptagent-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5cd16724139d68d96a1be75d448c53181ea7b07ce2b5bd6cf1ab71a8a0b65e00
MD5 4f80c27f86670e620b315b450d4e2db1
BLAKE2b-256 0f4e7ff59a52fd2f012530b2ada7e18f46dab2792bebf6e1b3d867c1752650bc

See more details on using hashes here.

File details

Details for the file pptagent-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pptagent-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for pptagent-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f3aa18b7d7e83a66b29935552a2e25e0e65e7cf4a9f42dc26f5bdbcc69f6e56
MD5 f4f9287d13212282a2f9f34b20feffda
BLAKE2b-256 c6cc9839ca7643b43a99cef643ff117dc096a1fbd291af84df5965c0fe39aa40

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page