WPS 灵犀官方内置pptx技能介绍
Lv.2潜力创作者
WPS 灵犀 PPT 技能是完整的 Python 自动化演示文稿解决方案,以 python-pptx 为核心引擎,配合 20 余个自研 Python 脚本与 7 个场景设计模板,构建了从信息采集、设计探索、大纲规划、素材生成、代码构建到布局检测的完整闭环。
一、架构总览
技能入口定义于 skills/pptx/SKILL.md,暴露四个独立入口:read_ppt(读取查询)、gen_ppt(从零生成)、edit_ppt(编辑修改)和 ppt_speech_writer(讲稿写作)。四个入口共享底层脚本工具链,各自封装完整工作流。其中 gen_ppt 实现了从用户输入到成品 PPTX 文件的七阶段自动化管线。设计模板目录 design/ 提供学术报告、商业洞察、教育培训、通用展示、产品推广、战略规划和述职汇报七个场景的结构化设计指导,每个模板均包含设计理念、信息密度、图文比例、配色指导和字体指导规范。
二、七阶段生成工作流
2.1 资料整理
系统建立三级信息来源优先级:用户提供的原始资料(最高优先级,必须完整分析且不可改写字面语义)、联网搜索补充(默认开启,优先获取权威来源与近期数据)、模型知识兜底(仅补全常识背景,严禁伪造数据)。整理原则包括数据量化(模糊表述须转为具体数值)、事实与观点分离、原文保护(重要表述保留原文用于标题或引用)、去噪压缩(仅保留可直接用于 PPT 的高密度信息)。输出包含用户目标、核心问题、量化数据表及结构建议。
2.2 大纲规划
以内容专家身份将内容逐页拆解,输出 outline.xml。页面超 3 页时遵循「封面—目录—正文—结尾」四段结构。每页 <content> 必须包含可直接用于排版的完整文案,禁止抽象描述。五种页面类型(封面、目录、章节、内容、结尾)各有 3-4 种布局选项——封面页支持非对称左右和居中对齐,目录页支持编号列表、双栏网格、侧边栏和卡片式。内容页细分为文本型、混合媒体型、数据可视化型、对比型、时间轴型和图像展示型。可视化元素规划基于数据类型和图表类型的对照表(分类对比用柱状图、趋势用折线图、占比用环形图),图标要求标明搜索关键词和放置位置,图片要求描述构图意境。规划遵循"非必要不生图"和"拒绝过度具象"原则。
2.3 设计规范
系统生成全局设计规范 design.xml。配色遵循 6:3:1 法则(60% 底色、30% 主色、10% 强调色),内置六套方案:经典商务(纯白底+深海蓝+爱马仕橙)、硬核科技(石墨黑+极光青)、莫兰迪人文(燕麦色+灰褐色)、极简主义(极浅灰+克莱因蓝)、新锐国风(象牙白+故宫红)和清冷职场(冷灰+雾霾蓝)。文字对比度须满足 WCAG 2.1 AA 级(4.5:1),明度差强制大于 70%,严禁灰度粘连。安全区域机制为每种页面类型定义精确占比——封面页左侧 50-60% 为安全区、装饰限右侧底部 30%,内容页左侧 60% 加顶部 70% 为安全区。安全区域以标准化语法嵌入图片生成提示词,避免装饰与文字重叠。排版字号层级明确:标题 27pt 以上、正文 13.5pt、封面标题 54pt。
2.4 素材准备
分三步处理三类素材。首先生成背景图:遍历 design.xml 中的 <bg_image>,将安全区域约束以标准化格式嵌入提示词,以 16:9 比例生成后下载至本地 {pptdir}/images/。其次生成页面图:根据大纲中的描述按布局选择推荐比例——左右分栏用 4:3(2048×1536px)、横幅用 21:9(3584×1536px)、方形用 1:1(2048×2048px)。最后获取图标:通过 Iconify API 搜索白名单图标包,使用 search_icons 和 download_icon 下载 SVG 后以 puresvg 转为 512×512 PNG,颜色取自设计规范的主色。
2.5 代码生成
采用两阶段并发生成架构。第一阶段将背景生成和逐页内容生成投入同一并发队列——背景任务读取整体规范生成统一的 set_background(slide, page_type) 函数,各页任务仅接收单页信息生成 build_slide_XX(slide) 函数,页面内容直接硬编码在函数体内。第二阶段将 set_background、所有 build_slide_XX 和入口函数 build_presentation() 组装为完整可执行的 build_pptx.py。输出为多文件 Python 项目:_background.py、_slide_01.py 至 _slide_N.py、gen_script.py(提供 add_textbox、add_rect、add_picture 等通用函数)。每个子模块写入前自动进行 AST 语法校验和嵌套引号修复。
2.6 构建与修复
执行 build_pptx.py 生成 .pptx 后,调用 check_layouts() 进行全量布局检测,覆盖元素越界、文本溢出、元素重叠三类问题,检测基于文本实际渲染尺寸并考虑自动换行。修复策略采用"修改源码而非修补成品"——定位问题根因在 _slide_XX.py 的坐标参数中,直接修改脚本后重新构建,保证完全可复现。修复后的文件复制至 output/ 目录交付。
2.7 风格探索
风格探索是可选前置环节,用于需定制视觉设计的场景。系统从十个场景枚举值中通过 list_cover_theme_candidates 获取候选主题,挑选三套方案。三套方案须在色相族、质感轴、构图动势、字体气质四个维度呈现可识别的差异——色相须不同区间、质感不得复用、骨架不得仅做换色。风格句描述禁止"干净"、"现代"、"优雅"等模糊形容词。当用户提供品牌 URL 时,通过 web_style_extractor.py 自动提取主色、字体和 Logo,合成第四套方案。每套方案生成独立 HTML 封面页(1280×720px 固定画布、禁止滚动、禁止文字遮挡),截图后供用户确认再转入正式生成流程。
三、读取与编辑
read_ppt.md 提供 query_slide 和 query_shape 两个核心查询函数,按白名单模式获取元素信息。query_slide 的 include 参数支持 summary、texts、images、tables、charts、layouts 六种类别,其中 layouts 返回元素绝对坐标(cm),Group 内子元素自动转换为页面坐标。query_shape 支持 text(run 级文本结构与格式,含 bold、size_pt、color_rgb 等)、style(fill 覆盖 SOLID/GRADIENT/PICTURE/PATTERN/NONE 五种类型,line 含 width_pt、color、dash_style)、layout(坐标与 z_order)三种类别。返回值可能为 None,使用时须做空值防御。
编辑入口遵循 CRAP 设计原理。所有修改通过 edit_text 的内存修改语义实现——修改在同一个 prs 对象上累积执行,两次编辑之间禁止重新加载文件。edit_text 支持 run 级操作(set_run、set_run_text、set_run_format、add_run、delete_run)和段落级操作(set_para_text、set_para_format、add_para、delete_para),format 覆盖 bold、italic、underline、strike、size_pt、font_name、latin/east_asia 中西文分离、color_rgb、alignment。布局编辑提供 move_shape、resize_shape、copy_shape(仅复制样式非尺寸)、delete_shape(含 Group 内子元素)、slide_organize(批量 delete/copy/move)。图片处理提供 export_image 和 replace_shape_image,同时支持独立图片和 fill 填充图片。set_run_font 通过 XML 操作同时设置西文和中文字体,解决了 python-pptx 只设置西文字体的局限。布局指令("下方"、"右侧"等)被视为刚性约束,空间不足时须先计算可用空间再提供替代方案。
四、脚本工具链
scripts/ 目录含 20 余个 Python 文件。核心模块:generate_pptx.py(约 66KB,代码生成与构建引擎,含两阶段 LLM 调用和并发队列调度)、edit_operations.py(约 89KB,全部编辑操作原语)、analyze_pptx.py(布局分析与跑版检测)、pptx_layout_check.py(布局验证)、pptx_colors.py(调色板管理与转换)、chart.py 与 chart_styles.json(图表样式管理,支持 bar/line/pie/clustered/stacked)、icon.py(Iconify 搜索与下载,白名单过滤)、trans_pptx.py(多语言转换)、theme_api_client.py 与 theme_models.py(主题候选检索)、web_style_extractor.py(网页主色/字体/Logo 提取)。另有 TypeScript 声明文件和 JS 运行时(约 666KB)提供跨语言调用接口。讲稿写作入口 ppt_speech_writer.md 根据场景、受众和时长推断,逐页输出演讲稿 docx、嵌入 PPT 备注和演示建议三件交付物。
五、质量保障
质量保障分三个层面。代码层:生成阶段 AST 校验和引号修复确保语法正确。布局层:check_layouts() 全量检测溢出和重叠。设计层:6:3:1 配色法则、WCAG 2.1 AA 标准和安全区域机制共同预防低质量输出。三个层面形成"代码正确→布局正常→设计合规"的三级保障链,将 PPT 制作从手工操作转变为可审计的自动化工程流程。