An Agentic Framework for Reflective PowerPoint Generation
Project description
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]
- All these API keys, configurations, and services are required.
- 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.
- 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 wizardpptagent generate- Generate presentationspptagent config- View current configurationpptagent 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: trueinconfig.yamlto avoid loading network-dependent tools (e.g.,fetch,search). - MinerU endpoint: Set
MINERU_API_URLinmcp.jsonto 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.
-
Prompt: 请介绍小米 SU7 的外观和价格
-
Prompt: 请制作一份高中课堂展示课件,主题为“解码立法过程:理解其对国际关系的影响”
Contributors 🌟
|
Force1ess |
Puelloc |
Dnoob |
Sadahlu |
hongyan |
|
KurisuMakiseSame |
Eliot White |
EvolvedGhost |
ISCAS-zwl |
James Brown |
|
JunZhang |
Open AI Tx |
Sense_wang |
SuYao |
Zhenyu |
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd16724139d68d96a1be75d448c53181ea7b07ce2b5bd6cf1ab71a8a0b65e00
|
|
| MD5 |
4f80c27f86670e620b315b450d4e2db1
|
|
| BLAKE2b-256 |
0f4e7ff59a52fd2f012530b2ada7e18f46dab2792bebf6e1b3d867c1752650bc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f3aa18b7d7e83a66b29935552a2e25e0e65e7cf4a9f42dc26f5bdbcc69f6e56
|
|
| MD5 |
f4f9287d13212282a2f9f34b20feffda
|
|
| BLAKE2b-256 |
c6cc9839ca7643b43a99cef643ff117dc096a1fbd291af84df5965c0fe39aa40
|