PPTAgent : générer des diapositives en repartant d'un modèle existant
An Agentic Framework for Reflective PowerPoint Generation
En bref
- De quoi s’agit-il ?
- PPTAgent est un cadre Python sous licence MIT qui produit des présentations PowerPoint en s'appuyant sur un modèle de diapositives fourni. L'approche par édition de modèle le distingue des générateurs qui écrivent du texte dans une mise en page inventée, mais elle impose de fournir ce modèle et de renoncer à Windows.
- À qui s’adresse-t-il ?
- Adoptez PPTAgent si vous partez déjà d'un jeu de diapositives maîtrisé et que vous voulez en produire des variantes sans reprendre la mise en page à la main, sur Linux ou macOS. Passez votre chemin si vous travaillez sous Windows sans WSL, ou si vous attendez une mise en page créée de zéro à partir d'un simple paragraphe.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le problème : produire des variantes d'un jeu de diapositives sans le refaire
La plupart des outils qui transforment un texte en présentation repartent d'une page blanche : ils choisissent une mise en page, placent les blocs, puis y versent le contenu. Le résultat est souvent propre mais anonyme, et surtout il ne ressemble à rien de ce que l'organisation utilise déjà. PPTAgent prend le problème dans l'autre sens. Le projet se présente comme un cadre agentique de génération réflexive de PowerPoint, et le README ainsi que les versions publiées montrent une architecture qui s'appuie sur un jeu de diapositives existant comme référence. L'utilisateur visé n'est donc pas celui qui veut une présentation jetable en dix secondes, mais celui qui possède un modèle maison et veut le décliner. Le dépôt est publié sous licence MIT, ce qui autorise la réutilisation et la modification, y compris dans un contexte commercial, à condition de conserver la notice de licence. Rien dans le matériel fourni ne permet de dire quelle part du contenu final provient du modèle et quelle part est réécrite par le modèle de langage.
Deux moteurs dans le même dépôt : PPTAgent et DeepPresenter
La version v2.0.0, datée de décembre 2025, porte la mention DeepPresenter Integrated. Le journal des modifications décrit DeepPresenter comme une évolution du code d'origine avec recherche approfondie, conception visuelle libre, création autonome d'éléments graphiques, génération d'images à partir de texte et un environnement d'agent doté d'un bac à sable et de plus de vingt outils. Autrement dit, le dépôt ne contient pas un seul pipeline mais au moins deux modes de fonctionnement : un mode qui édite un modèle, et un mode qui conçoit une mise en page libre avec export PPTX. Ce second mode est arrivé plus tard, et le README signale que l'export PPTX et le mode hors ligne pour la génération libre et par modèle ont été ajoutés en janvier 2026. Cette coexistence explique une bonne partie de la complexité de configuration : les clés d'API optionnelles concernent surtout la recherche, l'analyse de PDF et la création d'images, donc le mode le plus autonome.
Les services externes qui pèsent sur la qualité
Trois services sont présentés comme améliorant sensiblement le résultat. Tavily, avec une clé TAVILY_API_KEY à placer dans deeppresenter/mcp.json, concerne la qualité de la recherche web. MinerU, via MINERU_API_KEY ou MINERU_API_URL, concerne l'analyse des PDF. Un modèle texte-vers-image, déclaré par la clé t2i_model dans deeppresenter/config.yaml, concerne la création d'illustrations. Ces trois briques sont optionnelles, mais leur caractère optionnel masque une dépendance réelle : sans elles, la profondeur de recherche, l'extraction de contenu depuis un PDF et la génération d'images se dégradent. Le README ne chiffre pas cette dégradation, et je ne peux donc pas dire à quel point le rendu se détériore sans Tavily ou MinerU. Le mode entièrement hors ligne existe : il suppose de déployer MinerU localement et de passer offline_mode: true dans deeppresenter/config.yaml, ce qui écarte les outils dépendants du réseau comme la recherche web. C'est un choix cohérent pour un environnement isolé, mais il faut accepter de perdre la recherche en ligne.
Installation : uvx, onboard, puis generate
Le chemin recommandé passe par uv. Le README donne la commande d'installation de l'outil, curl -LsSf https://astral.sh/uv/install.sh | sh, puis une configuration interactive avec uvx pptagent onboard. La génération tient ensuite en une ligne : uvx pptagent generate "Single Page with Title: Hello World" -o hello.pptx. Les pièces jointes sont prises en charge avec des options répétables, comme le montre l'exemple du rapport trimestriel qui combine -f data.xlsx, -f charts.pdf, une plage de pages -p "10-12" et une sortie -o report.pptx. Si vous préférez Docker Compose ou une compilation depuis les sources, il faut copier manuellement deeppresenter/config.yaml.example vers deeppresenter/config.yaml et deeppresenter/mcp.json.example vers deeppresenter/mcp.json. Deux points méritent attention avant de commencer. D'abord, Windows n'est pas pris en charge et le README renvoie vers WSL. Ensuite, sur macOS, la commande en ligne de commande peut installer elle-même Homebrew, Node.js, Docker, poppler, Playwright et llama.cpp, alors que sur Linux la préparation de l'environnement reste à votre charge. Le README conseille de commencer par la CLI et une tâche minimale pour valider les dépendances, ce qui est un bon réflexe étant donné le nombre d'outils tiers impliqués.
Le modèle fine-tuné, entre recommandation et dépendance
Le README recommande fortement de déployer le modèle ajusté du projet pour obtenir la meilleure expérience, et affirme qu'il surpasse nettement les modèles open source existants selon les expériences des auteurs. Ces affirmations viennent du projet lui-même, pas d'une évaluation indépendante, et le matériel fourni ne contient aucun chiffre permettant de les vérifier. Deux formats sont proposés sur HuggingFace et ModelScope : des poids complets sous le nom Forceless/DeepPresenter-9B et une version quantifiée GGUF sous Forceless/DeepPresenter-9B-GGUF. Le second format indique que l'exécution locale sur du matériel modeste est envisagée, ce qui suppose toutefois de faire tourner une inférence de modèle de 9 milliards de paramètres en plus de la chaîne d'outils. Un modèle généraliste reste utilisable, mais le projet ne documente pas dans le matériel fourni l'écart de qualité attendu. C'est un point à trancher tôt : si vous ne pouvez pas héberger le modèle ajusté, vous testez un chemin que les auteurs n'ont pas mis en avant.
MCP, OpenClaw et intégration dans un agent existant
Le support d'un serveur MCP a été ajouté en septembre 2025, avec des détails de configuration renvoyés vers PPTAgent/DOC.md. Le README positionne la CLI comme le moyen le plus rapide de brancher DeepPresenter dans OpenClaw. L'intérêt de MCP ici est de ne pas être coincé dans l'interface du projet : un agent hôte peut appeler la génération comme un outil parmi d'autres, ce qui évite de réécrire une couche d'orchestration. La contrepartie est que la configuration se répartit entre deeppresenter/config.yaml pour les paramètres généraux et deeppresenter/mcp.json pour les serveurs et les clés, avec des variables supplémentaires listées dans deeppresenter/utils/constants.py. Trois fichiers de configuration à maintenir, dont un fichier Python, c'est le signe que les options évoluent vite entre les versions. La configuration interactive de onboard aide à absorber ces changements, mais seulement pour la CLI.
Ce que le projet ne fait pas, et à quoi le comparer
La limite la plus concrète tient au point de départ. Un générateur qui écrit du texte dans une mise en page qu'il choisit lui-même demande une phrase en entrée et rend un fichier. PPTAgent, dans son mode par modèle, suppose que vous fournissez ce modèle, ce qui déplace l'effort : vous gagnez en cohérence visuelle, vous perdez en simplicité. Si votre besoin est de produire une présentation correcte à partir d'un paragraphe, sans charte graphique à respecter, ce cadre ajoute une étape de préparation dont vous n'avez pas besoin. La seconde limite est l'environnement. L'absence de prise en charge de Windows et l'installation automatique de plusieurs outils système sur macOS rendent le déploiement moins prévisible qu'un simple paquet Python. Sur le plan de la maintenance, le rythme des versions est soutenu : v0.1.0 en avril 2025, v0.2.0 en octobre 2025, v2.0.0 en décembre 2025, avec des ajouts fonctionnels entre chacune. Un tel rythme signifie que les fichiers de configuration et les noms d'options peuvent bouger, et que suivre les mises à jour demande de relire les notes de version plutôt que de se fier à une configuration figée. La licence MIT limite ce risque sur le plan juridique : vous pouvez figer une version et la modifier, à condition de conserver la notice de copyright et de licence. Ce paragraphe ne constitue pas un avis juridique.
Conclusion éditoriale
Adoptez PPTAgent si vous partez déjà d'un jeu de diapositives maîtrisé et que vous voulez en produire des variantes sans reprendre la mise en page à la main, sur Linux ou macOS. Passez votre chemin si vous travaillez sous Windows sans WSL, ou si vous attendez une mise en page créée de zéro à partir d'un simple paragraphe. Avant tout engagement, lancez uvx pptagent onboard puis uvx pptagent generate "Single Page with Title: Hello World" -o hello.pptx pour vérifier que la chaîne d'outils s'installe et que le fichier produit s'ouvre correctement.
Notes de la communauté