PPTAgent:一款开源免费生成和评估幻灯片的项目
这篇文章介绍一下PPTAgent,一个从文档自动生成演示文稿的创新系统。该系统从人类的展示创作方法中汲取灵感,采用两步流程来确保卓越的整体质量。此外,本文还介绍了PPTEval,这是一个综合评估框架,可以跨多个维度评估演示文稿。
ppt agengt
部署使用
为了快速测试,可以使用resource/test/test_(pdf|template)中的示例来节省预处理时间。
建议及要求
| 类别 | 详情 |
|---|---|
| LLM推荐语言模型 | 语言模型:70B+非推理模型(Qwen2.5-72B-Instruct),用于生成任务。 视觉模型:7B+参数(Qwen2-VL-7B-Instruct),用于字幕任务。 |
| 系统需求 | 在Linux和macOS上测试,不支持Windows。 至少8GB RAM,建议使用CUDA或MPS支持以获得更好的性能。 所需依赖项:LibreOffice、poppler-utils (conda: poppler)和NodeJS。 |
Docker部署
使用远程服务器时,请确保8088和9297两个端口都被转发。
docker pull forceless/pptagent
docker run -dt --gpus all --ipc=host --name pptagent \-e OPENAI_API_KEY='your_key' \-p 9297:9297 \-p 8088:8088 \-v $HOME:/root \forceless/pptagent
在本地运行
安装指南
pip install git+https://github.com/icip-cas/PPTAgent.git
pip install git+https://github.com/Force1ess/python-pptx
服务端
在pptagent_ui/backend.py中初始化你的模型:
llms.language_model = LLM(model="Qwen2.5-72B-Instruct-GPTQ-Int4",api_base="http://124.16.138.143:7812/v1"
)
llms.vision = LLM(model="gpt-4o-2024-08-06")
启动前端
注意:后端API端点在src/main.js中配置为axios.defaults.baseURL
cd pptagent_ui
npm install
npm run serve
有关程序化生成的详细信息,请参阅pptagent_ui/backend.py:ppt_gen和test/test_pptgen.py。
项目结构📂
PPTAgent/
├── pptagent/
│ ├── apis.py # API and CodeExecutor
│ ├── llms.py # LLM services initialization
│ ├── presentation.py & shapes.py # Parse PowerPoint files
│ ├── induct.py # Presentation analysis (Stage Ⅰ)
│ ├── pptgen.py # Presentation generation (Stage Ⅱ)
│ ├── layout.py # Definition of the layout in pptxs
│ ├── document.py # Parse and organize markdown document
├── pptagent_ui/ # UI for PPTAgent
| ├── src/ # Frontend source code
│ ├── backend.py # Backend server
├── roles/ # Role definitions in PPTAgent
├── prompts/ # Project prompts
特点✨
- 动态内容生成:创建无缝集成文本和图像的幻灯片
- 智能参考学习:利用现有的演示文稿,而不需要手动注释
- 综合质量评估:通过多个质量指标评估演示文稿
案例研究💡
- Iphone 16 Pro

- Build Effective Agents

PTAgent🤖
PPTAgent遵循两个阶段的方法:
- 分析阶段:从参考报告中的模式中提取和学习
- 生成阶段:开发有结构的轮廓并制作视觉上有凝聚力的幻灯片
我们系统的工作流程如下图所示:

github 仓库地址 :https://github.com/icip-cas/PPTAgent
相关文章:
PPTAgent:一款开源免费生成和评估幻灯片的项目
这篇文章介绍一下PPTAgent,一个从文档自动生成演示文稿的创新系统。该系统从人类的展示创作方法中汲取灵感,采用两步流程来确保卓越的整体质量。此外,本文还介绍了PPTEval,这是一个综合评估框架,可以跨多个维度评估演示…...
配置管理:夯实软件开发与运维根基
配置管理是对系统配置信息进行管理的活动,以下从定义、目的、主要活动、实施流程等方面为你详细介绍: 一、定义 配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程&a…...
Java 大视界 -- Java 大数据在智能供应链库存优化与成本控制中的应用策略(172)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
Cocos Creator 进行 Web 发布后,目录结构解析
在使用 Cocos Creator 进行 Web 发布后,生成的目录结构通常包含以下内容,下面为你详细介绍: 1. index.html 这是 Web 项目的入口 HTML 文件,它会加载所需的 JavaScript 文件和资源,从而启动游戏或应用程序。示例代码…...
解决Spring Boot Test中的ByteBuddy类缺失问题
目录 解决Spring Boot Test中的ByteBuddy类缺失问题前奏问题描述问题解决第一步:移除ByteBuddy的特定版本号第二步:更新maven-surefire-plugin配置第三步:清理并重新构建项目 结语 解决Spring Boot Test中的ByteBuddy类缺失问题 前奏 今天&…...
Postman参数化设置如何设置?
在 Postman 里,参数化设置能让你用不同的数据多次运行同一个请求,这对测试不同输入时的 API 响应非常有用。下面为你详细介绍 Postman 参数化设置的方法。 1. 准备数据文件 Postman 支持 CSV 和 JSON 格式的数据文件。 CSV 文件 CSV 文件由逗号分隔的…...
斯坦福大学李飞飞团队新突破!FlowMo 革新图像 Tokenizer
当我们悠然刷着手机,看到一张可爱猫咪的照片时,大脑会瞬间识别出「这是一只猫」,这一切不过是电光火石间的事儿。但在计算机的 “眼中”,情况却复杂得超乎想象。假设这是一张10001000像素的彩色照片,在计算机的世界里&…...
基于 Jackson 的 JSON 工具类实现解析与设计模式应用
一、项目背景与功能概览 在企业级开发中,JSON 序列化/反序列化是高频操作。本方案基于 Jackson 实现了一个双模式兼容(独立使用 Spring 整合)、安全可靠的 JSON 工具类,主要提供以下能力: ✅ 常用 JSON 转换方法✅ …...
87.在线程中优雅处理TryCatch返回 C#例子 WPF例子
在C#异步编程中,正确处理异常是确保程序稳定运行的关键。今天,我们通过一个实际的示例,展示如何在异步线程中使用try-catch块处理异常,并通过标志变量控制流程。同时,我们也会展示一个错误的示例,以便更好地…...
Vue + Axios + Mock.js 全链路实操:从封装到数据模拟的深度解析
一、项目架构深度设计 1.1 分层架构模式 采用经典的前端分层架构,实现高度可维护性: src/ ├─ api/ # 接口管理 │ └─ home.js # 模块化接口 ├─ mock/ # 模拟数据 │ ├─ index.js # Mock入口 │ └─ home.js # 首…...
博客文章:深入分析 PyMovie - 基于 Python和 MoviePy 的视频管理工具
这是一个使用 wxPython 构建界面、moviepy 处理视频的自定义 GUI 应用程序。该工具提供了视频播放、元数据提取、格式转换、视频裁剪和截图等功能。通过分析其设计和实现,我们将了解其工作原理、优点和潜在的改进空间。 C:\pythoncode\new\output\pymovieSample.py …...
Go基础一(Maps Functions 可变参数 闭包 递归 Range 指针 字符串和符文 结构体)
Maps 1.创建map make(map[键类型]值类型) 2.设置键值对 name[key]value; 3. name[key]获取键值 3.1 key不存在 则返回 0 4.len()方法 返回 map 上 键值对数量 len(name) 5.delete()方法 从map中删除 键值对 delete(name,key) 6.clear()方法 map中删除所有键值对 clear(name) 7…...
2025年渗透测试面试题总结-某 携程旅游-基础安全工程师(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 携程旅游-基础安全工程师 反序列化原理 核心原理 扩展分析 SQL注入本质 核心原理 扩展分析 SQL注…...
wireshak抓手机包 wifi手机抓包工具
移动端接口测试抓包工具指南 在做手机或移动端APP的接口测试时,获取完整的接口文档是关键。但如果没有文档,我们就需要使用专业的抓包工具来分析网络请求。本文将介绍两种常用的抓包方案:Fiddler和Sniff Master(抓包大师…...
niuhe插件, 在 go 中渲染网页内容
思路 niuhe 插件生成的 go 代码是基于 github.com/ma-guo/niuhe 库进行组织管理的, niuhe 库 是对 go gin 库的一个封装,因此要显示网页, 可通过给 gin.Engine 指定 HTMLRender 来实现。 实现 HTMLRender 我们使用 gitee.com/cnmade/pongo2gin 实现 1. main.go …...
java基础知识面试题总结
Java基础知识面试题 1.重载和重写的区别 重载(Overload): 同一个类中,方法名相同,参数列表不同(个数、类型、顺序)。 class Calculator {// 方法1:两个int相加public int add…...
使用MySQL时出现 Ignoring query to other database 错误
Ignoring query to other database 错误 当在远程连接软件中输入MySQL命令出现该错误 导致错误原因是:登录mysql时账户名没有加上u 如果出现该错误,退出mysql,重新输入正确格式进入即可!...
MySQL介绍及使用
1. 安装、启动、配置 MySQL 1. 安装 MySQL 更新软件包索引 sudo apt update 安装 MySQL 服务器 sudo apt install mysql-server 安装过程中可能会提示你设置 root 用户密码。如果没有提示,可以跳过,后续可以手动设置。 2. 配置 MySQL 运行安全脚本…...
Vue2-实现elementUI的select全选功能
文章目录 使用 Element UI 的全选功能自定义选项来模拟全选 在使用 Element UI 的 el-select组件时,实现“全选”功能,通常有两种方式:一种是使用内置的全选功能,另一种是通过自定义选项来模拟全选。 使用 Element UI 的全选功能…...
java后端开发day34--脑子空空如何无痛想起所有知识点--概念拟人化
1.上半部学习思考 1.1反思–浮躁–二倍速 刚开始算半个小白吧,从最基础的知识点开始学习,到后面学习整个项目的布局和功能。可能是后面慢慢懂得多了,每次打代码搞项目啊什么的,就能明显感觉到自己很浮躁:脑子里已经明…...
fastGPT—前端开发获取api密钥调用机器人对话接口(HTML实现)
官网文档链接:OpenAPI 介绍 | FastGPT 首先按照文档说明创建api密钥 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…...
解决 PDF 难题:批量处理、文档清理与自由拆分合并
软件介绍 在日常办公与学习中,处理 PDF 文件常常让人头疼不已,不过别担心,今天有一款堪称神器的国产老牌 PDF 工具要分享给大家。它就是 PDF 补丁丁,凭借其强大功能,为大家排忧解难。 界面体验 初次打开 PDF 补丁丁&…...
使用pycharm社区版调试DIFY后端python代码
目录 背景 前置条件 DIFY使用的框架 API服务调试配置步骤(基于tag为0.15.3的版本) 1.配置.env文件 2.关闭docker里面的docker-api-1服务 3.使用DOCKER启动本地环境需要用到的中间件,并暴露端口 注意事项一: 注意事项二:…...
量子计算与人工智能的结合:未来科技的双重革命
引言 在过去几十年里,人工智能(AI)和计算能力的提升一直是推动科技进步的重要力量。然而,随着深度学习和大规模数据处理的发展,传统计算架构的算力瓶颈逐渐显现,人工智能的训练和推理效率受到了限制。在此背…...
关于存储的笔记
存储简介 名称适用场景常见运用网络环境备注块存储高性能、低延迟数据库局域网专业文件存储数据共享共享文件夹、非结构化数据局域网通用对象存储大数据、云存储网盘、网络媒体公网(断点续传、去重)海量 存储协议 名称协议块存储FC-SAN或IP-SAN承载的…...
基于机器学习的三国时期诸葛亮北伐失败因素量化分析
一、研究背景与方法论 1.1 历史问题的数据化挑战 三国时期(220-280年)的战争史存在史料分散、数据缺失的特点。本研究通过构建包含军事、经济、地理、政治四大维度的结构化数据库,收录建安十二年(207年)至建兴十二年…...
MySQL 中的 MVCC 版本控制机制原理
1. MVCC(多版本并发控制)概述 MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种数据库事务并发控制机制,主要用于提高数据库的读写性能。它通过维护数据的多个版本,使得读操作无…...
JWT认证服务
JSON Web Token(JWT)是一种用于在网络应用间安全地传递信息的紧凑、自包含的方式。以下是关于 JWT 认证服务器更详细的介绍,包括其意义、作用、工作原理、组成部分、时效性相关内容、搭建条件以及代码案例。 JWT 的意义与作用 意义…...
RAG中对于PDF复杂格式文件的预处理的解决方案:MinerU
RAG中对于PDF复杂格式文件的预处理的解决方案:MinerU 1. 场景 在RAG场景下,我们所遇到的文档格式可不仅仅局限于txt文件,而对于复杂的PDF文件,里面有图片格式的Excel、图片格式的文字、以及公式等等复杂的格式,我们很难用传统的方式去解析预处理成我们可以用的类似于TXT…...
手机中的type-C是如何防水的呢?
防水类型的type-C座子: 电子产品防水等级的区分: 这里的“IP”是国际防护标准等级;简而言之,IPXX中“XX”两位数字分别代表防尘和防水等级,其中防尘等级从0~6,防水等级则从0~8。 第…...
