接入「 课件帮」AI 平台,全流程自动完成 PPT 生成:大纲确认 → 模板匹配 → 智能生成 → 交付链接,无需手动操作任何 API。
场景示例商务汇报季度总结、战略分析产品介绍融资 Pitch、新品发布学术演示研究报告、毕业答辩培训课件员工培训、技能分享
需要环境变量:
text
KEJIAN365_AUTH_TOKEN=<Your_Token_Here>
密钥获取: https://kejian365.com/oapi-portal
直接说:「帮我做一个关于 XX 的 PPT」即可启动。
Run through these steps in order. Track completion in context — never repeat a completed step.
text
[ ] Step 1 Gather requirements from user
[ ] Step 2 Generate outline (local LLM) → show to user → confirm
[ ] Step 3 run list_themes.py → pick theme → tell user
[ ] Step 4 Write params.json + run script (creates task ONCE on success)
[ ] Step 5 Re-run script every 30s to poll until terminal state
[ ] Step 6 Report final result
Hard rules:
POST /skill/task/create directly — always use the script--work-dir for the same task (causes duplicates)ppt_id, work_dir, file paths, or raw URLs to the userScript idempotency:
task_state.json statusScript behaviourMissing / CREATE_FAILEDCalls create API (or retries)PENDING / RUNNINGPolls only, never creates againDONEReturns success immediatelyGENERATION_FAILEDReturns failure; delete state file to retry
Ask in one message:
好的!请告诉我:
- PPT 的主题是什么?
- 有什么特别要求吗?(受众、风格、页数、语言等,没有就跳过)
Extract:
ParameterDefaulttopicrequiredsettingPages``"智能决策" → "精简" ~10p / "标准" ~20p / "长篇" ~30psettingLanguage``"中文"``settingAudience``"智能决策"``illustrationMode``"standard" ( "pro" = premium)
Generate locally (no API). Then show the outline to the user and wait for confirmation:
已为您生成以下大纲,共 {N} 页:
- 封面 — {title}
- 目录 — {title} …(逐页列出)
满意的话我来继续选模板;如需调整请告诉我。
Outline format (OutlineModel):
pages[].pageNumber sequential from 1, no gaps封面, last = 结束, at least 1 内容目录 when ≥ 6 pages; 章节 + its 内容 pages share chapterNumbermain_title: PPT 主标题(可与 topic 相同或更精炼)narrative: 全局叙事策略,指导每页内容基调(可留空 {})json
{
"main_title": "主标题",
"narrative": {
"objective": "受众沟通目的",
"core_message": "核心信息",
"mode": "教学式",
"mode_behavior": "内容推进逻辑",
"reading_mode": "均衡阅读"
},
"pages": [
{ "pageNumber": 1, "pageType": "封面", "title": "主标题", "content": "" },
{ "pageNumber": 2, "pageType": "目录", "title": "目录", "content": "1. 概述\n2. 分析" },
{ "pageNumber": 3, "pageType": "章节", "title": "第一章", "content": "", "chapterNumber": "01" },
{ "pageNumber": 4, "pageType": "内容", "title": "内容页", "content": "...", "chapterNumber": "01" },
{ "pageNumber": 5, "pageType": "结束", "title": "谢谢", "content": "" }
]
}
Material (optional): also generate a short research summary to improve content quality and pass it as the material field.
Use the script — never call the API directly (raw JSON response is too large for context):
bash
python kejian365-aippt/scripts/list_themes.py
Output per theme: THEME: theme_id|theme_name|style|scene
Reason over the full list, pick the theme_id that best fits the PPT topic, audience, and tone. Save it for Step 4 themeId.
Tell the user:
已为您选择「{theme_name}」模板({style} 风格 · {scene} 场景),即将开始生成…
Use a stable slug per topic — same task = same directory every time:
text
/mnt/user-data/workspace/{topic-slug}-ppt-tmp
\uXXXX escaping)#json
{
"topic": "主题名称",
"themeId": "theme_xxx",
"outline": {
"main_title": "主标题",
"narrative": { "objective": "...", "core_message": "...", "mode": "教学式", "mode_behavior": "...", "reading_mode": "均衡阅读" },
"pages": [ ... ]
},
"authToken": "<credential>",
"requirements": "用户的特别要求",
"material": "# 研究摘要\n...",
"themeConfig": {
"settingPages": "标准",
"settingLanguage": "中文",
"settingAudience": "智能决策",
"contentDepth": "智能生成",
"illustration": "智能配图",
"sourceMode": "智能参考"
},
"illustrationMode": "standard"
}
bash
python kejian365-aippt/scripts/create_ppt_task.py \
--params-file {work-dir}/params.json \
--work-dir {work-dir}
On SUBMITTED:, parse 查看链接: from stdout and say:
🎉 PPT 任务已创建成功! 主题:「{topic}」,模板:「{theme_name}」 生成大约需要 5–15 分钟,可以先 点这里预览(生成完成前内容可能为空)。 我会每隔 30 秒自动查询进度,请稍候。
Re-run every 30s (omit --params-file after first run):
bash
python kejian365-aippt/scripts/create_ppt_task.py \
--work-dir {work-dir}
ExitFirst lineAction0``SUBMITTED:Poll again in 30s0``DONE:→ Step 62``PENDING:Report progress, poll again in 30s1``FAILED:→ Error handling
When pending, parse 进度: and 查看链接: and say:
正在生成中,已完成 {N}/{total} 页,完成后可 在这里查看。
DONE:)#Parse 主题: / 页数: / 查看链接: and say:
🎉 「{topic}」的 PPT 已生成完成,共 {N} 页! 点击这里查看您的 PPT
Provide raw URL only if the user explicitly asks.
FAILED:)#stdout keywordSay to user余额不足账户余额不足,充值后告诉我,我来帮您重新生成。鉴权 / 401 / 缺少账号凭证未检测到有效密钥,请配置环境变量: KEJIAN365_AUTH_TOKEN=your_token,密钥可到 课件帮开放平台 获取。anything else生成时遇到了问题,要重新试一次吗?
Lines starting with [INTERNAL] are for the agent only — never show to user. Delete task_state.json silently to retry.