教学PPT制作流水线
概述
把学科原稿 PPT 改造成"理论够用、突出应用、贴合岗位"的授课型 PPT,并产出逐页教学草案、节奏/兴趣分析图与标准命名的课件。核心思想:内容决策(文案)与版面执行分离;模板锁定后不再重做样式;审计只查真实违规。
硬约束(不可违反)
- 模板锁定:底板格式、字体(微软雅黑,正文≥20pt/标签16pt)、左侧导航栏一旦确定不再改动
- 几何:文字框互不重叠、不越出页面(以实际 slide_width/slide_height 为准,默认 10×5.62 英寸)
- 内容:不删原文字,除非用户明确要求精简/拆分
- 图片:不变形;缺图留"图片占位框+文字说明"交还用户,不做过度修复
项目级首问记忆
- 配置文件路径:
{项目根}/.workbuddy/memory/ppt_pipeline_context.md - 首次运行(该文件不存在)执行 阶段0+阶段1,把「专业/学生基础/教材/学情/课程标准摘要 + 锁定模板文件路径」写入该文件
- 后续运行(同文件夹,哪怕新对话)读取该文件,跳过 阶段0+阶段1,直接进入 阶段2
- 用户说"重新配置/换模板"时清空该文件并重问
流程
阶段0 首次询问基础信息(仅首次)
用 AskUserQuestion 逐项询问:
- 专业/课程/班级
- 学生基础:学段、入学分数段、前修基础
- 教材情况:哪本教材?是否有教材目录电子版?
- 学情:班级人数、学习特点、岗位导向
- 相关基础信息:总课时、单次时长、考核方式、是否有进程表
- 索要课程标准(大纲/课标文档)
同时要求提供输入文件:原稿 PPT、教材目录、教学大纲/进程表、专业需求说明。
阶段1 确定并锁定模板(仅首次/重配置)
- 检测到已锁定模板文件 → 记录路径复用
- 否则与用户确认风格后生成一次并锁定
阶段2 合并询问(每次都做)
把基础信息 + 6 阶段流水线合成一份方案,请用户确认后再运行:
- 内容方案:逐页"必讲/可删/需改写"判定(大纲 + 专业需求 + 专家视角)
- 时间分配:总 80min → 正式约 75min(导入 + 收尾各约 2.5min);教材内有 → 照教材解说,教材外 → 直接上 PPT;顺序复核不回翻
- 学生视角:过深/过枯页 → 调权重或加钩子
- 学习通/互动网页触点(签到/前测/投票/拖拽/测验,锚定页码)
- 缺失输入文件清单
阶段3 执行
- 提取原稿文本(
scripts/extract_text.py)→ 生成逐页文案表 docx(标题 + 正文 + 必讲/可删/需改写 + 教学提示) - 套模板:字数过多 → 精简 or 拆分;字号锁定;图片占位
- 审计(
scripts/audit_ppt.py,仅查真实违规:文字框互叠/越界/字号 + 图×图/文字×图片重叠) - 交付:授课节奏 + 兴趣维度分析图(合成一张)+ 文件名按标准格式
标准命名:课件:{年级}{专业}{班级}《{课程名}》{章节序号} {教师} {章节名}.pptx
Resources
scripts/
extract_text.py— 提取 pptx 全部幻灯片文本到 dump 文件(阶段3第1步)。用法:python extract_text.py <in.pptx> [out.txt]audit_ppt.py— 审计 pptx:越界/文字框互叠/字号违规 + 图×图/文字×图片重叠 + 总文字量(阶段3第3步)。用法:python audit_ppt.py <in.pptx>
运行环境:python-pptx(venv 见 ~/.workbuddy/binaries/python/envs/default/Scripts/python.exe)。
环境依赖与安装
- 依赖:
python-pptx(脚本仅用此库) - 安装(首次):
python -m pip install python-pptx - 运行:
- 提取文本:
python scripts/extract_text.py <in.pptx> [out.txt] - 审计排版:
python scripts/audit_ppt.py <in.pptx> - 说明:脚本为纯本地执行,无网络访问、无文件删除/外发,可安全反复运行;输入路径通过参数传入,不硬编码。
输出物
- 逐页教学草案 docx
- 改造后 pptx
- 节奏 + 兴趣分析图