V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maquedexiju
V2EX  ›  推广

一个真正可生产化的 AI 制作 PPt 工具 - PPt Yoda

  •  
  •   maquedexiju · 3 天前 · 433 次点击

    我试用了非常多市面上用于生成 PPt 的工具,目前市面上的生成工具往往都有一些问题:

    1. 内容质量不高:缺少细节和必要内容,乍一看内容还挺多,尤其是文件大纲目录比我想的还要完整,但是实际的内容质量不高。
    2. 缺少必要的元素:比如图片、图表、表格、公式等,这些元素对于 PPt 的展示效果非常重要。
    3. 版式固定:基本都只有“三段论”、“四段论”、“标题”等几种版式,无法满足不同主题的需求。
    4. 字体和母版有问题:虽然有的工具支持自行上传母版,但通过 AI 编辑后的 PPt ,会丢失母版信息,同时自己也会出现字体问题。
    5. 生成的 PPt 无法下载,只能在浏览器中查看,本地下载的只能是 PDF 。

    所以我决定自己写一个 PPt 生成工具,来解决这些问题,项目取名为 PPt Yoda,希望它能像尤达大师一样,帮助每一个绝地大师完成 PPt 编写。

    我对 PPt 制作的理解

    PPt 创作的过程

    相比于平铺的内容,PPt 的优势在于适配屏幕尺寸,给出更好的排版,通过动画等方式更加形象地展示内容。

    所以我们可以简单地把 PPt 创作拆解成两个过程:

    内容创作+PPt 布局

    • 关于内容创作,和基本 AI 创作的模式是一致的,最后应该形成具有良好层级结构的内容,包含表格、图表和图片,markdown 或者 json 都是不错的承载形式。
    • PPt 布局则需要考虑 PPt 的特有属性,把平铺的内容拆分成一个一个的页面,根据页面内容添加必要的图片、动画,根据内容的多少、元素之间的关系进行合理布局。

    工具化拆解 PPt 的制作过程

    1. 了解任务背景:首先明确 PPt 演示的主题、受众、场合、时长等基本信息,并明确通过材料希望达成的目标等。
    2. 确定内容大纲:根据任务背景,分为哪些具体的章节,每个章节希望达到什么目的。注意这个“内容大纲”和“PPt 大纲”并不等同。内容大纲更关注内容,而 PPt 大纲更关注 PPt 的结构。
    3. 素材与信息收集:收集信息的方式,可以包括网络数据检索,本地现有材料挖掘,或者自行创作等。
    4. 完成内容创作:根据内容大纲,结合收集到的信息,完成内容创作,包括文字、列表、图表、表格、公式等,确保内容的质量和准确性。
    5. 进行内容分页:根据内容创作的结果,综合考虑信息层级、内容字数等,对内容进行“分页”
    6. 完成页面设计:完成“分页”后,对每一页的内容进行分析,选择合适的布局,并添加必要的图片、动画等,确保 PPt 的质量和效果。
    7. 完成素材创作:材料中存在大量的图片、图表、表格、公式等,需要根据页面内容,对这些素材进行创作。

    其中 1-4 是内容创作的过程,可以由 AI 辅助; 5-6 是 PPt 布局的过程; 7 是素材创作的过程。

    值得注意的是:

    • 在真实的场景下,2 、3 、4 步骤实际上是一个穿插的过程,当我们收集了一定的素材,我们可能会希望重新调整大纲,或者给每一页做内容调整。
    • 理论上步骤 5 、6 的过程中,也可能不仅包括内容的删除和重组,可能也会为了页面的需求,增加一部分新的内容,但目前我们先不考虑。

    功能设计

    愿景与诉求

    我希望我的 PPt 生成工具能够满足以下几个方面的需求:

    1. 内容质量高:通过 AI 生成的 PPt ,内容质量高,细节丰富,符合我的需求。
    2. 元素丰富:支持图片、图表、表格、公式等元素,能够满足不同主题的需求。
    3. 版式灵活:支持自定义版式,能够满足不同主题的需求。
    4. 字体和母版问题:支持上传母版,能够解决字体和母版问题。
    5. 生成 的 PPt 可以下载,也可以通过浏览器预览,兼容 PPt 的同时,支持一些 JS 动画。
    6. 人机协同:制作过程的每一步都可以形成一个独立的任务,交给 AI 来完成,同时支持人工监督或信息补充。

    功能拆解

    PPT Yoda 将整个创作过程流水线化,每一步都支持 AI 辅助和人工微调:

    1. 任务理解与大纲生成: AI 首先会分析用户的核心目标、受众和场景,生成一个逻辑清晰的演示大纲。
    2. 素材收集与整合: 系统能够根据大纲,从用户提供的本地文件或知识库中检索、整合相关信息。
    3. 全文内容创作: 基于大纲和素材,AI 会撰写每一页的详细讲稿,包括文字、数据要点等。
    4. 智能分页与布局: AI 会根据内容的逻辑层级和信息密度,自动将全文切分成独立的页面。
    5. 模板应用与生成: 最后,系统会将分页后的内容精确地填充到用户指定的 PPT 模板中,生成最终的演示文稿。

    重点功能模块包括:

    • 📚 素材管理: 支持用户对 PPt 相关素材内容进行管理,并提供素材收集任务的管理功能。
    • 🤖 内容生成: 基于强大的语言模型( LLM ),可自动生成演示文稿的大纲逐页讲稿;支持直接插入模板中的页面或章节。
    • 🎨 多媒体生成:基于多模态大模型,根据材料需求,完成图片、图标等内容的自动生成。
    • 🎆 PPt 生成: 用户可以上传自己的 .pptx 文件作为母版,AI 将在此基础上进行内容填充和布局,完美保留原始设计风格。
    • 🌐 Web 用户界面: 提供一个基于 Next.js 的现代化界面,支持多用户管理,每个用户可以创建自己的项目空间,上传素材、选择模板并启动生成任务。
    • 🗂️ 项目化管理: 将每一次演示文稿的创建过程作为一个独立项目进行管理,清晰地追踪从 想法 -> 素材 -> 大纲 -> 全文 -> 最终 PPt 的每一个阶段。

    快速开始

    环境准备

    在开始之前,请确保您的系统已安装以下软件:

    • Git
    • Python 3.13+
    • Node.js (包含 npm)
    • uv: 一个极速的 Python 包安装工具。
    • cairo: 一个 2D 图形库,用于处理图标( windows 上可以直接安装编译好的GTK)。

    安装步骤

    a. 克隆仓库

    git clone https://github.com/maquedexiju/PPtYoda.git
    cd PPtYoda
    

    b. 安装后端依赖

    # 使用 uv 根据 pyproject.toml 安装依赖
    uv pip install -e .
    

    c. 安装前端依赖

    cd frontend
    npm install
    cd ..
    

    d. 初始化项目 运行安装脚本来生成配置文件、初始化数据库并导入默认模板。

    # 该脚本会自动创建 config.ini, 初始化数据库, 并创建超级用户
    python install.py
    

    注意:默认存在一个超级用户,用户名: ppt_killer,密码: pt_12345

    配置

    a. 后端配置 安装脚本会自动从 config.ini.example 复制生成 config.ini 文件。您需要编辑此文件,填入您的 LLM API 密钥等信息。

    [LLM]
    LLM_BASE_URL = ...
    LLM_API_KEY = sk-YourAPIKeyHere
    LLM_MODEL = ...
    ...
    

    启动项目

    我提供了一个便捷的脚本,可以同时启动后端和前端服务。

    python runserver.py
    

    启动后:

    • 🚀 后端 Django 服务 将运行在 http://localhost:8810
    • 🚀 前端 Next.js 服务 将运行在 http://localhost:3000

    现在,您可以打开浏览器访问 http://localhost:3000 开始使用。 您可以通过 http://localhost:8810/admin/ 进行后台管理,默认用户名 ppt_killer,密码 pt_12345

    同时会自动生成一个演示项目,用来说明项目的使用方法,欢迎大家下载使用,提出自己的宝贵意见,并参与项目开发。

    项目 github 地址https://github.com/maquedexiju/PPtYoda

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:36 · PVG 04:36 · LAX 13:36 · JFK 16:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.