关于 popai-powerpoint-pptx
这项 Skill 通过 PopAI API 创建和修改 PowerPoint 演示文稿,可根据主题生成内容,并接受参考文件或 PPTX 模板。生成后可通过同一 channel ID 继续修改。
主要功能
- 01根据主题生成幻灯片
- 02搜索并整理相关信息
- 03使用参考文件或 PPTX 模板
- 04通过 channel ID 修改演示文稿
适用场景
- 01根据主题创建演示文稿
- 02使用 PDF 或图片作为参考制作幻灯片
- 03按 PPTX 模板生成演示文稿
- 04继续修改已生成的演示文稿
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ popaiofficial/ popai-presentation-slides --skill popai-powerpoint-pptx安装后在 Claude Code 中输入/popai-powerpoint-pptx确认已加载。
附带文件generate_ppt.py
详细介绍
PopAI PPT 技能
通过 PopAI 的 API 以编程方式创建演示文稿。该 API 内置了强大的研究和信息收集功能,会自动搜索、收集并整理相关内容。你也可以选择上传文件作为参考资料或模板。如果提供了 .pptx 模板,输出将完整保留模板的布局、样式和设计,100% 忠实于模板。初次生成后,你可以使用相同的频道 ID 发送后续修改指令。
设置
- 请用户注册并获取 Access Token:https://www.popai.pro/popai-skill
- 用户提供令牌后,将其设置到环境变量中:
export POPAI_ACCESS_TOKEN=<token>
提示:你可以将密钥保存在 TOOLS.md 中,以便日后使用。
脚本
generate_ppt.py- 通过 PopAI API 生成 PPT(上传文件 → 创建频道 → SSE 流 → 获取 pptx);也支持通过--channel-id进行多轮修改
使用示例
# Generate PPT from topic only
python3 generate_ppt.py --query "AI Development Trends Report"
# With reference files (max 5)
python3 generate_ppt.py --query "Tesla Earnings PPT" --file data.pdf chart.png
# With a PPT template file (applied as layout template)
python3 generate_ppt.py --query "Tesla Annual Report" --tpl template.pptx
# With both template and reference files
python3 generate_ppt.py --query "Tesla Annual Report" --tpl template.pptx --file data.pdf chart.png
# Multi-round modification: modify an existing PPT (template cannot be changed)
python3 generate_ppt.py --channel-id "CHANNEL_ID" --query "Add a competitive analysis slide and make the color scheme blue"
# With URLs as reference material (included in query)
python3 generate_ppt.py --query "Create a PPT summarizing this article: https://example.com/report.html"
# Multi-round modification with additional reference files
python3 generate_ppt.py --channel-id "CHANNEL_ID" --query "Update the financial data with this new report" --file new_data.pdf
Agent 步骤
初次生成
- 获取用户提供的 PPT 主题
- 如果用户提供了参考资料:
- 本地文件:通过
--file(最多 5 个)和/或--tpl(用于设置布局的 PPT 模板)传入 - URL:直接将其加入
--query文本中 — API 会自动获取并处理
- 本地文件:通过
- 运行脚本(超时:1200000):
告知用户:“正在生成 PPT,预计需要 5 分钟……”python3 generate_ppt.py --query "TOPIC" [--file FILE1 FILE2 ...] [--tpl TEMPLATE.pptx] - 脚本运行期间,监控 stdout JSON 行,并实时向用户报告进度(例如任务状态更新、搜索操作、工具结果)
- 生成完成后,向用户展示最终结果:
- 将
summary文本(来自NODE_END事件)作为生成摘要展示 - 将
pptx_url作为下载链接展示:“下载 PPT:<pptx_url>” - 将
web_url作为网站链接展示:“在线查看/编辑:<web_url>”
- 将
- 如果用户要求直接获取 pptx 文件,请从
pptx_url下载并交付给用户 - 保存
channel_id,其值来自web_url(https://www.popai.pro/agentic-pptx/<channelId>的最后一个路径段),以备后续修改
多轮修改
当用户想要修改或改进已生成的 PPT 时使用(例如“添加一张幻灯片”“更改标题”“使用更深的主题”)。
规则:
- 必需:
--channel-id(来自之前生成的 PPT)和--query(修改指令) - 可选:使用
--file为本次修改提供新的参考文件 - 不支持:修改模式下会忽略
--tpl— 无法更改原始模板
- 确认之前生成时的
channel_id(从web_url中保存) - 获取用户的修改指令
- 如果用户提供了其他参考文件,通过
--file传入 - 运行脚本(超时:1200000):
告知用户:“正在应用你的修改,预计需要 3-5 分钟……”python3 generate_ppt.py --channel-id "CHANNEL_ID" --query "MODIFICATION_INSTRUCTION" [--file FILE1 ...] - 以与初次生成相同的方式解析并展示结果(新的
pptx_url和web_url)
输出
事件类型(stdout,每行一个 JSON):
{"type": "task", "id": "1", "content": "Search for Tesla latest earnings data", "status": "progressing"}
{"type": "search", "action": "Web Searching", "results": [{"title": "...", "url": "...", "snippet": "...", "date": "..."}]}
{"type": "tool_result", "event": "TOOL_CALLS-xxx", "action": "...", "result": "..."}
{"type": "summary", "text": "Tesla earnings PPT has been created..."}
{"type": "stream_end"}
最终结果(is_end: true):
{
"type": "pptx_ready",
"is_end": true,
"pptx_url": "https://popai-file-boe.s3-accelerate.amazonaws.com/.../xxx.pptx",
"file_name": "xxx.pptx",
"preview_images": ["https://...0.jpeg"],
"preview_count": xx,
"web_url": "https://www.popai.pro/agentic-pptx/<channelId>"
}
pptx_url:.pptx文件的下载链接web_url:PopAI 网站链接,可用于在线查看和编辑preview_images:生成的 PPT 按页截图(每张幻灯片对应一张图片)preview_count:预览图片总数(即幻灯片数量)summary:来自NODE_END事件的最终摘要文本,作为生成回顾展示给用户
支持
如有任何问题,请联系 [email protected]
技术说明
- 流式传输:SSE 流;
TOOL_CALLS-pptx事件包含最终的 .pptx 下载 URL;last:true表示流结束 - 文件上传:通过
getPresignedPost向 S3 发起预签名 POST,支持任意文件类型 - 超时:生成通常需要约 5 分钟;
- 频道 ID:可从
web_url中提取——https://www.popai.pro/agentic-pptx/<channelId>的最后一个路径段 - 多轮生成:直接使用现有的
channel_id调用send_generate;不会传递tpl_info(频道创建后模板固定)
评论
支持 Markdown