# PPT-EA **Repository Path**: expse/ppt-ea ## Basic Information - **Project Name**: PPT-EA - **Description**: PPT-EA is an LLM-based PPT generation tool, which can quickly generate PPT templates for natural language dialogue, and intelligently fill and modify PPT content. - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-11-08 - **Last Updated**: 2025-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PPT-EA #### 介绍 PPT-EA 是一款基于 LLM 的 PPT 生成工具,可以快速生成自然语言对话的 PPT 模板,并智能填充和修改 PPT 内容。 ![img.png](.docs/pic/ppt_generation.png) #### 软件特点 - 支持自然语言对话生成PPT框架与PPT生成任务 - 支持文档嵌入,基于文档生成PPT框架与PPT生成任务 - 支持任意PPT模板,对模板文件没有要求,只需上传模板即可生成PPT #### 软件架构 软件架构说明: ![后端执行流程](.docs/pic/backend_process.png) 软件模块说明: ![功能模块流程](.docs/pic/modules.png) 包含了以下模块: - 用户管理 - 用户注册 - 用户登录 - 用户信息修改 - LLM与API KEY管理 - LLM模型选择 - API KEY管理 - 设置当前使用的LLM模型 - 对话管理 - 对话创建 - 对话列表 - 对话详情 - 对话删除 - 文档嵌入 - 框架生成 - 普通框架生成 - 文档嵌入框架生成 - 文档管理 - 文档上传 - 文档列表 - 文档删除 - 模板管理 - 模板上传 - 模板列表 - 模板删除 - PPT生成 - PPT生成 - 普通PPT生成 - 文档嵌入PPT生成 - PPT下载 PPT生成框架流程图: ![PPT生成框架流程图](.docs/pic/framework_process.png) 流程中会基于是否包含文档进行不同的PPT生成流程,如果包含文档则会进行文档嵌入,否则会进行普通框架生成。 文档嵌入在第一次对话生成时会创建词向量数据库并保存至本地,后续的修改与生成会基于向量数据库进行文档嵌入,提供额外信息。 PPT生成模板流程图: ![PPT生成模板流程图](.docs/pic/generation_process.png) 首先系统会对PPT模板进行结构分析,解析每一页的元素与内容,然后根据PPT框架生成的内容生成PPT替换计划。 替换计划会根据PPT框架生成的内容与PPT模板的结构进行匹配,生成替换规则,然后根据规则替换PPT模板的内容,生成最终的PPT。 替换时会对每个替换的子页面单独进行替换,根据模板提示词结合大模型填充内容,文档型的PPT生成会基于文档的内容进行PPT替换计划生成,普通型的PPT生成会基于对话的内容进行PPT替换计划生成。 #### 开发环境 编程语言:Python 3.11.10 Web框架:Flask 数据库:MySQL 8.0.27 词向量数据库:Chroma #### 安装教程 1. 安装依赖库 ```shell pip install -r requirements.txt ``` 2. 导入数据库文件,数据库文件存储在 `deploy/ppt_ea.sql` 中 3. 配置文件 在文件 `config/develop_config.conf` 中修改数据库配置信息 ```shell [DATABASE] dialect = mysql driver = pymysql username = xxx password = xxx host = xxx.xxx.xxx.xxx port = 3306 database = xxx ``` 词向量模型目前基于ZhiPu的模型,也需要进行配置 ```shell [EMBEDDING] embedding_model = zhipu embedding_api_key = xxx ``` 4. 启动服务 ```shell python manage.py ``` #### 使用说明 1. 前端项目地址:[fronted-PPT-EA](https://gitee.com/expse/fronted-ppt-ea) 2. 新建用户后需要在`配置-API管理`中选择大模型并配置对应的API Key才能进行对话 3. 新建对话后如果附加文档会自动进行文档嵌入的框架生成,如果不附带文档则会进行普通框架生成 4. 如果历史附带了文档,后续文档都会自动进行文档嵌入 5. 生成PPT需要配置模板,模板文件可以在`配置-模板管理`中上传 6. 生成PPT后需要一定时间,在对话列表中可以点击`下载`按钮跳转到下载页面,下载生成的PPT #### 项目结构说明 ``` ├─api_1_0 # API路由 ├─app # 项目配置 ├─config # 配置文件 ├─controller # 控制器 ├─db # 向量数据库存储 │ └─vectors ├─deploy # 部署文件 ├─llm # LLM模型 │ ├─embeddings # 词向量模型 │ └─models # 对话模型 ├─logs # 日志文件 ├─models # 数据库模型 ├─service # 业务逻辑 ├─test # 测试文件 ├─uploads # 上传文件保存 │ ├─documents │ ├─generation │ └─templates └─utils # 工具类 ``` #### 界面说明 1. 模板管理(提供PPT模板) ![模板管理](.docs/pic/template_management.png) 2. PPT生成(输入需求,生成PPT) ![img.png](.docs/pic/ppt_generation.png) 3. 文档嵌入(能够基于用户提供的文档作为知识库,进行PPT生成) ![文档嵌入](.docs/pic/document_embedding.png) 4. PPT下载界面 ![PPT下载界面](.docs/pic/ppt_download.png) 5. 生成结果示例 ![生成结果示例](.docs/pic/result_0.png)