PopAI Powerpoint Slides
Create presentations (PPT) using PopAI API. Use when asked to create slides, presentations, decks, or PPT content via PopAI. Supports uploading reference fil...
Description
name: popai-presentations description: Create presentations (PPT) using PopAI API. Use when asked to create slides, presentations, decks, or PPT content via PopAI. Supports uploading reference files (pptx/pdf/docx/images). metadata: { "openclaw": { "emoji": "📊", "requires": { "bins": ["python3"], "env":["POPAI_API_KEY"]},"primaryEnv":"POPAI_API_KEY" } }
PopAI PPT Skill
Create presentations programmatically via PopAI's API. Supports optional file uploads as reference material or templates.
Setup
- Get API key from https://www.popai.pro
- Store in environment:
export POPAI_API_KEY=...
Scripts
scripts/generate_ppt.py- Generate PPT via PopAI API (upload files → create channel → SSE stream → get pptx)
Usage Examples
# Generate PPT from topic only
python3 generate_ppt.py --query "人工智能发展趋势报告"
# With a template pptx file
python3 generate_ppt.py --query "特斯拉财报ppt" --file template.pptx
# With multiple reference files (max 5)
python3 generate_ppt.py --query "年度报告" --file template.pptx data.pdf chart.png
Agent Steps
-
Get PPT topic from user
-
If user provides local files, pass them via
--file(max 5, supports pptx/pdf/docx/images etc.) -
Create a temp output file, then run script in background with
--output:# Step 3a: Create temp file and launch in background OUTFILE="/tmp/popai_ppt_$(date +%s).jsonl" touch "$OUTFILE"# Step 3b: Run in background (run_in_background: true, timeout: 600000) cd /Users/Gunnar/popai-python/.claude/skills/popai-presentations && POPAI_API_KEY="$POPAI_API_KEY" python3 scripts/generate_ppt.py --query "TOPIC" [--file FILE1 FILE2 ...] --output "$OUTFILE"Tell user: "PPT正在生成中,预计3-5分钟..."
-
Poll for progress — periodically read new lines from the output file using
Readtool orcat "$OUTFILE", and show progress to user:taskevents → show task status updatessearchevents → show "正在搜索..."summaryevent → show generation summarypptx_readyevent → final result (stop polling)stream_end→ generation complete (stop polling) Poll every ~30 seconds untilpptx_readyorstream_endappears.
-
Present final results to user:
- Show
summarytext (fromNODE_ENDevent) as the generation summary - Show
pptx_urlas the download link: "下载PPT: <pptx_url>" - Show
web_urlas the site link: "在线查看/编辑: <web_url>"
- Show
Output
Event types (stdout, one JSON per line):
{"type": "task", "id": "1", "content": "搜索特斯拉最新财报数据", "status": "progressing"}
{"type": "search", "action": "Web Searching", "results": [{"title": "...", "url": "...", "snippet": "...", "date": "..."}]}
{"type": "tool_result", "event": "TOOL_CALLS-xxx", "action": "...", "result": "..."}
{"type": "summary", "text": "已完成特斯拉财报PPT的创建..."}
{"type": "stream_end"}
Final result (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": 10,
"web_url": "https://www.popai.pro/agentic-pptx/<channelId>"
}
pptx_url: .pptx文件下载链接web_url: PopAI源站链接,可在线查看和编辑summary: NODE_END事件的最终总结文本,展示给用户作为生成摘要
Technical Notes
- Streaming: SSE stream;
TOOL_CALLS-pptxevent contains final .pptx download URL;last:truemarks stream end - File Upload: Presigned POST to S3 via
getPresignedPost, supports any file type - Timeout: Generation takes 3-5 minutes
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!