Metadata-Version: 2.4
Name: pptagent
Version: 0.2.6
Summary: PPTAgent, a tool for utilizing LLMs to generate PowerPoint presentations from documents.
Author-email: Hao Zheng <wszh712811@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/icip-cas/PPTAgent
Project-URL: Bug Tracker, https://github.com/icip-cas/PPTAgent/issues
Keywords: presentation,powerpoint,ppt,llm,ai,document-processing
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business :: Office Suites
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiometer
Requires-Dist: aiofiles
Requires-Dist: aiohttp
Requires-Dist: beautifulsoup4
Requires-Dist: fastapi[all]
Requires-Dist: fastmcp>=2.12.3
Requires-Dist: func_argparse
Requires-Dist: html2image
Requires-Dist: jinja2
Requires-Dist: json_repair
Requires-Dist: jsonlines
Requires-Dist: lxml
Requires-Dist: mcp>=1.14.0
Requires-Dist: mistune
Requires-Dist: numpy<2.0.0
Requires-Dist: oaib
Requires-Dist: openai>=1.107.3
Requires-Dist: opencv-python-headless
Requires-Dist: openpyxl
Requires-Dist: pdf2image
Requires-Dist: pillow
Requires-Dist: PyPDF2
Requires-Dist: pydantic>=2.10.0
Requires-Dist: PyYAML
Requires-Dist: python-Levenshtein
Requires-Dist: python-multipart
Requires-Dist: python-pptx
Requires-Dist: pytest
Requires-Dist: pytest-asyncio
Requires-Dist: pytest-xdist
Requires-Dist: rich
Requires-Dist: socksio
Requires-Dist: tenacity
Requires-Dist: uvicorn
Provides-Extra: full
Requires-Dist: transformers<4.50.0; extra == "full"
Requires-Dist: fasttext; extra == "full"
Requires-Dist: einops; extra == "full"
Requires-Dist: peft; extra == "full"
Requires-Dist: huggingface_hub; extra == "full"
Requires-Dist: timm; extra == "full"
Dynamic: license-file

<div align="right">
  <details>
    <summary >🌐 Language</summary>
    <div>
      <div align="center">
        <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=en">English</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=zh-CN">简体中文</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=zh-TW">繁體中文</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=ja">日本語</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=ko">한국어</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=hi">हिन्दी</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=th">ไทย</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=fr">Français</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=de">Deutsch</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=es">Español</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=it">Italiano</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=ru">Русский</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=pt">Português</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=nl">Nederlands</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=pl">Polski</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=ar">العربية</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=fa">فارسی</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=tr">Türkçe</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=vi">Tiếng Việt</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=id">Bahasa Indonesia</a>
        | <a href="https://openaitx.github.io/view.html?user=icip-cas&project=PPTAgent&lang=as">অসমীয়া</
      </div>
    </div>
  </details>
</div>

# PPTAgent: Generating and Evaluating Presentations Beyond Text-to-Slides
<p align="center">
  📄 <a href="https://arxiv.org/abs/2501.03936" target="_blank">Paper</a> &nbsp; | &nbsp;
  🤗 <a href="#open-source-" target="_blank">OpenSource</a> &nbsp; | &nbsp;
  📝 <a href="./DOC.md" target="_blank">Documentation</a> &nbsp; | &nbsp;
  <a href="https://deepwiki.com/icip-cas/PPTAgent" target="_blank"><img src="https://deepwiki.com/icon.png" alt="Ask DeepWiki"> DeepWiki</a> &nbsp; | &nbsp;
  🙏 <a href="#citation-" target="_blank">Citation</a>
</p>

We present PPTAgent, an innovative system that automatically generates presentations from documents. Drawing inspiration from human presentation creation methods, our system employs a two-step process to ensure excellence in overall quality. Additionally, we introduce **PPTEval**, a comprehensive evaluation framework that assesses presentations across multiple dimensions.

> [!TIP]
> 🚀 Get started quickly with our pre-built Docker image - [See Docker instructions](DOC.md/#docker-)

## 📅 News

- [2025/09]: 🛠️ We support MCP server now, see [MCP Server](./DOC.md#mcp-server-) for details
- [2025/09]: 🚀 Released v2 with major improvements - see [release notes](https://github.com/icip-cas/PPTAgent/releases/tag/v0.2.0) 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](https://github.com/icip-cas/PPTAgent/releases/tag/v0.1.0) for details
- [2025/01]: 🔓 Open-sourced the codebase, with experimental code archived at [experiment release](https://github.com/icip-cas/PPTAgent/releases/tag/experiment)

## Open Source 🤗
We have released our model and data at [HuggingFace](https://huggingface.co/collections/ICIP/pptagent-68b80af43b4f4e0cb14d0bb2).

## Demo Video 🎥

https://github.com/user-attachments/assets/c3935a98-4d2b-4c46-9b36-e7c598d14863

## Distinctive Features ✨

- **Dynamic Content Generation**: Creates slides with seamlessly integrated text and images
- **Smart Reference Learning**: Leverages existing presentations without requiring manual annotation
- **Comprehensive Quality Assessment**: Evaluates presentations through multiple quality metrics

## Case Study 💡

- #### [Iphone 16 Pro](https://www.apple.com/iphone-16-pro/)

<div style="display: flex; flex-wrap: wrap; gap: 10px;">

  <img src="resource/iphone16pro/0001.jpg" alt="图片1" width="200"/>

  <img src="resource/iphone16pro/0002.jpg" alt="图片2" width="200"/>

  <img src="resource/iphone16pro/0003.jpg" alt="图片3" width="200"/>

  <img src="resource/iphone16pro/0004.jpg" alt="图片4" width="200"/>

  <img src="resource/iphone16pro/0005.jpg" alt="图片5" width="200"/>

  <img src="resource/iphone16pro/0006.jpg" alt="图片6" width="200"/>

  <img src="resource/iphone16pro/0007.jpg" alt="图片7" width="200"/>

</div>

- #### [Build Effective Agents](https://www.anthropic.com/research/building-effective-agents)

<div style="display: flex; flex-wrap: wrap; gap: 10px;">

  <img src="resource/build_effective_agents/0001.jpg" alt="图片1" width="200"/>

  <img src="resource/build_effective_agents/0002.jpg" alt="图片2" width="200"/>

  <img src="resource/build_effective_agents/0003.jpg" alt="图片3" width="200"/>

  <img src="resource/build_effective_agents/0004.jpg" alt="图片4" width="200"/>

  <img src="resource/build_effective_agents/0005.jpg" alt="图片5" width="200"/>

  <img src="resource/build_effective_agents/0006.jpg" alt="图片6" width="200"/>

  <img src="resource/build_effective_agents/0007.jpg" alt="图片7" width="200"/>

  <img src="resource/build_effective_agents/0008.jpg" alt="图片8" width="200"/>

<img src="resource/build_effective_agents/0009.jpg" alt="图片9" width="200"/>

<img src="resource/build_effective_agents/0010.jpg" alt="图片10" width="200"/>

</div>

## PPTAgent 🤖

PPTAgent follows a two-phase approach:
1. **Analysis Phase**: Extracts and learns from patterns in reference presentations
2. **Generation Phase**: Develops structured outlines and produces visually cohesive slides

Our system's workflow is illustrated below:


![PPTAgent Workflow](resource/fig2.jpg)

## PPTEval ⚖️

PPTEval evaluates presentations across three dimensions:
- **Content**: Check the accuracy and relevance of the slides.
- **Design**: Assesses the visual appeal and consistency.
- **Coherence**: Ensures the logical flow of ideas.

The workflow of PPTEval is shown below:
<p align="center">
<img src="resource/fig3.jpg" alt="PPTEval Workflow" style="width:70%;"/>
</p>


## Citation 🙏

If you find this project helpful, please use the following to cite it:
```bibtex
@article{zheng2025pptagent,
  title={PPTAgent: Generating and Evaluating Presentations Beyond Text-to-Slides},
  author={Zheng, Hao and Guan, Xinyan and Kong, Hao and Zheng, Jia and Zhou, Weixiang and Lin, Hongyu and Lu, Yaojie and He, Ben and Han, Xianpei and Sun, Le},
  journal={arXiv preprint arXiv:2501.03936},
  year={2025}
}
```

[![Star History Chart](https://api.star-history.com/svg?repos=icip-cas/PPTAgent&type=Date)](https://star-history.com/#icip-cas/PPTAgent&Date)
