PPT 一键生成大师
一站式 PPT 生成能力,四种产出模式,单一入口,按需路由。
何时使用
用户需求属于「PPT / 演示文稿 / 幻灯片 / deck / slides / 汇报 / 路演 / 发布会 / 解决方案 / 网页翻页 PPT」范畴时使用。
第一步:确定产出模式
根据用户需求路由到四个模式之一。判断依据:
| 用户信号 | 模式 | 路径 |
|---|---|---|
| 要一份可编辑的 PPT 文件(.pptx),未特殊要求 | A 标准版式 PPTX(默认) | 本文件 §模式A |
| 希望「配图好看」「每页有大图」「视觉冲击」 | B AI 配图演示 | 本文件 §模式B |
| 关键词「解决方案」「面客」「售前」「方案汇报」 | C 解决方案框架 PPT | 读 references/solution-framework.md 后按 §模式A 生成 |
| 关键词「网页 PPT」「HTML 演示」「在线翻页」「分享链接」 | D 网页演示 PPT | 本文件 §模式D |
若用户未指定,默认模式 A;用户同时要求「配图 + pptx」时走 B(B 产出仍是 pptx,含 AI 生成图片)。
支付宝 AI 按量付费(A2M 协议,HTTP 402 付费云生成)
本技能已完成支付宝 AI 按量付费改造:PPT 生成能力由收款服务端(ppt-aipay-server,A2M 收款服务)按次计费交付,客户端脚本 scripts/ppt_aipay.py 负责发起请求、账单展示与凭证重试。所有付费生成经过统一计费入口:无有效 Payment-Proof 时服务端返回 HTTP 402,账单通过 Payment-Needed Header(Base64URL 编码 JSON)下发。完整链路 5 步,任何一步失败都不得向用户返回 PPTX:
- 402 账单下发:
generate收到 402 后自动解码Payment-Needed账单(protocol 含out_trade_no、amount、currency=CNY、resource_id、pay_before、seller_signature、seller_sign_type=RSA2、seller_unique_id),按out_trade_no幂等落单到~/.config/ppt-aipay/orders.json(订单持久化与幂等),并输出code=PAYMENT_NEEDED结果。 - 展示账单并引导支付:把账单中的金额(amount)、商品名(goods_name)、商户名(seller_name)、支付截止时间(pay_before)展示给用户;用户通过支付宝 AI 付完成支付,取得
Payment-Proof支付凭证(Base64URL,解码后 protocol 层含payment_proof、trade_no)。 - 携带凭证重试:
pay <out_trade_no> <payment_proof|@文件|->将凭证附在Payment-ProofHeader 重发原请求(原请求参数保持一致);响应中的Payment-ValidationHeader 用于验付调用(对应服务端alipay.aipay.agent.payment.verify严格验付语义):必须validated=true、trade_no/out_trade_no/resource_id与本地订单一致、金额一致、currency=CNY、未超过pay_before、trade_no未被重复履约。任一校验失败按未支付处理,不得返回 PPTX。 - 履约确认:PPTX 交付后必须完成履约确认(对应
alipay.aipay.agent.fulfillment.confirm,业务入参只有trade_no)。complete <out_trade_no>用同一 Payment-Proof 重试;确认成功前订单保持PENDING_CONFIRM、不得标记FULFILLED;确认失败可多次重试,避免文件已交付但平台未记录履约。 - 回执与幂等:
ack <out_trade_no>输出订单最终履约回执;本地订单持久化与幂等保证——同一out_trade_no不重复建单,已FULFILLED订单重复调用pay/complete直接返回已保存结果(idempotent_hit=true),不重复扣费、不重复交付。
命令一览:check(服务预检)→ probe(计费探查)→ generate(付费生成)→ pay(携带凭证重试+验付)→ complete(履约确认)→ ack(回执)→ orders(本地订单)。
PY="<skill目录>/scripts/ppt_aipay.py"
# 服务预检(healthz:payment_ready / missing_fields)
python $PY check
# 付费生成:返回 402 + PAYMENT_NEEDED 时向用户展示 bill 引导支付
python $PY generate deck.json -o output.pptx --theme tech_blue
# 用户支付取得 Payment-Proof 后:携带凭证重试(自动验付 + 保存 PPTX + 履约确认)
python $PY pay <out_trade_no> <payment_proof|@proof.txt|->
# 履约确认未完成时,用同一凭证重试;最终回执用 ack
python $PY complete <out_trade_no>
python $PY ack <out_trade_no>
Agent 处理规则:任何命令输出 error.code=PAYMENT_NEEDED 时,先向用户展示 bill 字段并等待其完成支付取得 Payment-Proof,再执行第 3 步;禁止跳过验付调用与履约确认直接把 PPTX 交付给用户;结果不明时不得要求用户重复付款。也可设环境变量 PPT_PAYMENT_PROOF 让所有请求自动携带凭证重试。服务端地址用环境变量 PPT_AIPAY_SERVER 配置(默认 http://127.0.0.1:3200)。沙箱联调使用 service_id=api_mock_service_id 与网关 https://openapi-sandbox.dl.alipaydev.com/gateway.do(仅沙箱可用,生产替换为真实 serviceId 与网关)。付费链路错误码:PAYMENT_NEEDED(402 账单下发,展示 bill 引导支付)、PROOF_REJECTED/VERIFY_FAILED(验付失败或凭证被拒,不得交付资源,引导重新支付)、FULFILLMENT_CONFIRM_FAILED(PPTX 已交付但履约确认未完成,用同一 Payment-Proof 重试 complete)、ORDER_NOT_FOUND(本地无订单,先 probe/generate 触发 402)。
模式 A:标准版式 PPTX(默认)
JSON 驱动、脚本生成,产出可二次编辑的 .pptx。
- 构思大纲:根据主题拆出 8~15 页结构(封面 → 目录 → 内容 → 结尾)。内容必须具体充实,禁止占位文本。
- 确定主题配色:读
references/themes.md,按行业/场合选择 12 套主题之一(用户没提就用推荐映射表)。 - 选择版式:读
references/layouts.md,为每页匹配 26 种版式之一。每个版式给出 props 字段规格与 JSON 示例。版式要多样,同一版式连续出现不超过 2 次。 - 编写 deck JSON(结构见
references/layouts.md开头的全局规格),保存到工作区如deck.json。 - 执行生成(必须使用 venv 中的 Python,已预装 python-pptx):
"C:/Users/asus/.workbuddy/binaries/python/envs/default/Scripts/python.exe" "<本技能目录>/scripts/generate_pptx.py" deck.json -o output.pptx
- 参数:
-o输出路径;--theme <key>可覆盖 JSON 中的主题。 - 脚本校验 JSON 结构并打印每页生成结果;报错时按错误信息修正 JSON 后重试。
- 生成完成后用 present_files 展示 .pptx。
模式 B:AI 配图演示
在模式 A 基础上插入 AI 生成图片:
- 先完成模式 A 的大纲与版式规划,标出需要配图的页(封面、章节页、图文页、全屏图页)。
- 统一视觉风格:为整份 PPT 写一句风格描述(如 "minimalist isometric 3D illustration, blue and white palette, soft lighting"),所有图片共用,保证风格统一。
- 用 ImageGen 工具逐张生成 16:9 图片,保存到工作区
ppt_assets/下(如ppt_assets/cover.png)。 - deck JSON 中图片字段填相对路径或绝对路径(
image_left/image_right/image_full版式的 props)。脚本支持 png/jpg。 - 生成 pptx 后用 present_files 展示。
风格关键词库与提示词模板见 references/ai-image.md。
模式 C:解决方案框架 PPT
- 读
references/solution-framework.md,按其中 10 页标准框架(挑战 → 需求 → 总体方案 → 架构 → 功能亮点 → 实施路径 → 案例 → 团队商务)填充用户业务内容。 - 推荐版式映射也在该文件中,按 §模式A 的流程生成 pptx。
- 面客 PPT 禁止出现 lorem/占位/「此处填写」类文本;数据页无真实数据时用「示意」并提醒用户替换。
模式 D:网页演示 PPT
单 HTML 文件、横向翻页、可分享链接:
- 读
references/web-ppt.md了解结构约束与内容模式。 - 复制
assets/web_template.html到工作区并重命名,将<section class="slide">逐页替换为实际内容(封面/目录/卡片/数据/引用/结尾六类内容模式均在模板内给出示例)。 - 保持单文件、无外部依赖;配色改 CSS 变量即可整份换肤。
- 完成后用 present_files 展示(HTML 会自动打开预览)。
渐进式加载
- 执行某模式前读对应 references 文件;SKILL.md 已含足够流程信息时不必全读。
- 查找版式/主题细节:
grep -l "关键词" <技能目录>/references/*.md。 - 生成脚本
scripts/generate_pptx.py无需读入上下文,直接执行;仅排错时读。
质量红线
- 内容必须具体:真实结论、量化数据、明确动作,拒绝空话堆砌。
- 版式多样:全篇至少使用 4 种不同版式。
- 中文 PPT 字体为微软雅黑(脚本已内置);标题不超过 20 字,正文要点每条不超过 30 字。
- 16:9 页面,脚本已内置,无需用户指定。
触发词
PPT、演示文稿、幻灯片、PPTX、解决方案 PPT、汇报、路演、deck、slides、发布会、网页 PPT、HTML 演示