AI PPT Generator
Generate PPT using Baidu AI with intelligent template selection.
Smart Workflow
- User provides PPT topic
- Agent asks: "Want to choose a template style?"
- If yes → Show styles from
ppt_theme_list.py→ User picks → Usegenerate_ppt.pywith chosentpl_idand realstyle_id - If no → Use
random_ppt_theme.py(auto-selects appropriate template based on topic content)
Intelligent Template Selection
random_ppt_theme.py analyzes the topic and suggests appropriate template:
- Business topics → 企业商务 style
- Technology topics → 未来科技 style
- Education topics → 卡通手绘 style
- Creative topics → 创意趣味 style
- Cultural topics → 中国风 or 文化艺术 style
- Year-end reports → 年终总结 style
- Minimalist design → 扁平简约 style
- Artistic content → 文艺清新 style
Scripts
scripts/ppt_theme_list.py- List all available templates with style_id and tpl_idscripts/random_ppt_theme.py- Smart template selection + generate PPTscripts/generate_ppt.py- Generate PPT with specific template (uses real style_id and tpl_id from API)
Key Features
- Smart categorization: Analyzes topic content to suggest appropriate style
- Fallback logic: If template not found, automatically uses random selection
- Complete parameters: Properly passes both style_id and tpl_id to API
Usage Examples
# List all templates with IDs
python3 scripts/ppt_theme_list.py
# Smart automatic selection (recommended for most users)
python3 scripts/random_ppt_theme.py --query "人工智能发展趋势报告"
# Specific template with proper style_id
python3 scripts/generate_ppt.py --query "儿童英语课件" --tpl_id 106
# Specific template with auto-suggested category
python3 scripts/random_ppt_theme.py --query "企业年度总结" --category "企业商务"
Agent Steps
- Get PPT topic from user
- Ask: "Want to choose a template style?"
- If user says YES:
- Run
ppt_theme_list.pyto show available templates - User selects a template (note the tpl_id)
- Run
generate_ppt.py --query "TOPIC" --tpl_id ID
- Run
- If user says NO:
- Run
random_ppt_theme.py --query "TOPIC" - Script will auto-select appropriate template based on topic
- Run
- Set timeout to 300 seconds (PPT generation takes 2-5 minutes)
- Monitor output, wait for
is_end: trueto get final PPT URL
Output Examples
During generation:
{"status": "PPT生成中", "run_time": 45}
Final result:
{
"status": "PPT导出结束",
"is_end": true,
"data": {"ppt_url": "https://image0.bj.bcebos.com/...ppt"}
}
Technical Notes
- API integration: Fetches real style_id from Baidu API for each template
- Error handling: If template not found, falls back to random selection
- Timeout: Generation takes 2-5 minutes, set sufficient timeout
- Streaming: Uses streaming API, wait for
is_end: truebefore considering complete