通过 AiPPT.cn 开放平台 API 智能生成专业 PPT 演示文稿,支持标题生成、联网智能生成、文件导入、URL导入、模板选择、导出大纲、回收站管理、自动导出下载
---
name: aippt
version: "3.1.0"
description: 通过 AiPPT.cn 开放平台 API 智能生成专业 PPT 演示文稿,支持标题生成、联网智能生成、文件导入、URL导入、模板选择、导出大纲、回收站管理、自动导出下载
author: 小龙 🐉
triggers:
- PPT
- ppt
- 演示文稿
- 幻灯片
- aippt
- AiPPT
- AIPPT
- 做PPT
- 生成PPT
- 创建PPT
- 写PPT
- 做个PPT
- 帮我做PPT
- PPT生成
- make a PPT
- create PPT
- generate PPT
- presentation
- slideshow
- slides
dependencies:
- curl
- python3
- openssl
env:
AIPPT_APP_KEY:
required: true
description: AiPPT 开放平台 API Key
AIPPT_SECRET_KEY:
required: true
description: AiPPT 开放平台 Secret Key
AIPPT_UID:
required: false
default: openclaw_default
description: 用户标识 (多用户隔离)
scripts:
main: scripts/aippt.sh
capabilities:
- 智能生成PPT (输入标题)
- 联网智能生成 (结合网络实时搜索)
- 文件导入生成 (Word/PDF/Markdown/TXT/PPTX/XMind)
- 参考文档生成 (以文件为素材,围绕指定主题重新生成)
- 网页URL导入生成
- 15000+模板选择
- 导出PPTX/PDF/Word/PNG
- 导出大纲文件 (Markdown 格式)
- 回收站管理 (查看/还原/清空)
- 自动下载到本地
---
# AiPPT Skill
> 通过 [AiPPT.cn](https://aippt.cn) 开放平台 API,用自然语言对话生成专业 PPT 演示文稿。
## 概述
本 Skill 集成了 AiPPT.cn 的智能 PPT 生成服务,支持:
- **智能生成** — 输入标题,AI 自动生成大纲、内容、排版
- **联网智能生成** — 结合网络实时搜索结果生成时效性强的内容
- **文档转PPT** — Word、PDF、Markdown、TXT、PPTX、XMind 一键转换
- **参考文档生成** — 以上传文件为素材,围绕指定主题重新生成
- **网页导入** — 从 URL 抓取内容生成 PPT
- **高级配置** — 页数、语言、场景、语气、受众、文本量全部可控
- **模型选择** — 智谱 / DeepSeek / 豆包可切换(部分类型支持)
- **企业模板** — B端专属模板优先推荐
- **导出大纲** — 导出任务的 Markdown 大纲文件
- **回收站管理** — 查看/还原/清空已删除作品
- **自动下载** — 生成完成后默认下载 PPTX 到本地;对话明确要求图片时导出 PNG
---
## 前置条件
**环境依赖**:`curl`、`python3`、`openssl`
**API 密钥**:通过 OpenClaw 安装后在技能设置中填入,无需手动创建文件。
| 变量名 | 必填 | 说明 |
|--------|:----:|------|
| `AIPPT_APP_KEY` | ✅ | AiPPT 开放平台 App Key |
| `AIPPT_SECRET_KEY` | ✅ | AiPPT 开放平台 Secret Key |
| `AIPPT_UID` | ❌ | 用户标识,多用户隔离用,默认 `openclaw_default` |
获取密钥:前往 [AiPPT 开放平台](https://open.aippt.cn) 注册开发者账号。
---
## AI 决策入口(每次必走)
> 每次响应用户 PPT 请求,必须先走以下判断树。
```
用户发来消息
├── 有文件附件? → 场景二(⚠️ 先询问意图,禁止直接执行)
├── 有 URL? → 场景三(URL 导入)
├── 需要联网搜索? → 场景四(联网智能生成)
└── 只有文字? → 场景一(标题生成)
```
> **联网判断**:当用户主题涉及「最新」「2026」「当前」「趋势」「热点」「新闻」「实时」等时效性关键词时,优先使用场景四(联网智能生成)。
---
## 场景一:标题/主题生成
**触发条件**:用户只描述了话题或标题,没有上传文件。
**示例**:
- "帮我做一个关于人工智能的PPT"
- "生成一份年终总结演示文稿"
- "做个产品发布会的幻灯片"
**完整流程(共 7 步)**:
```
1. 创建任务
2. 生成大纲(约 10 秒)
3. ⬇ 清晰展示大纲文本给用户(必须完整输出,格式化为 Markdown 标题层级)
4. 自动继续生成内容(不等用户确认,约 25 秒)
5. 合成 PPT(约 10 秒)
6. 导出
7. 下载 → 返回 PPTX 文件路径
```
**第一次工具调用 — 生成大纲**
```bash
bash scripts/aippt.sh generate "标题" --outline-only
```
命令结束后,从输出中找到 `outline_ready` 那行 JSON,提取 `task_id`、`title`、`outline` 字段。
**第一次工具调用结束后:先输出文字,再发起第二次工具调用**
> 🚨 **必须按以下顺序执行,不可合并:**
> 1. **结束第一次工具调用**
> 2. **向用户输出文字回复**(将大纲格式化为 Markdown 标题层级写入回复,同时说明"正在合成 PPT...")
> 3. **再发起第二次工具调用**(执行 generate_continue)
>
> ✅ 正确:[工具调用1: --outline-only] → [文字输出: 大纲内容] → [工具调用2: generate_continue]
> ❌ 错误:[工具调用1: --outline-only] → [工具调用2: generate_continue] → [文字输出: 大纲内容]
输出格式示例:
```
📋 **大纲已生成,正在合成 PPT,请稍候...**
# 标题
## 第一章
### 1.1 小节
### 1.2 小节
## 第二章
...
```
**第二次工具调用 — 合成 PPT(约 60 秒)**
```bash
bash scripts/aippt.sh generate_continue "<task_id>" "<title>"
```
---
## 场景二:文档上传生成(⚠️ 必须先询问)
**触发条件**:用户上传了 Word、PDF、TXT、Markdown、PPTX 等文件。
**禁止直接执行**,必须先问用户:
> 您上传了一份文件,请问想怎么用它生成 PPT?
>
> 1. **文档转PPT** — 直接提取这份文件的内容生成 PPT
> (适合:文档本身就是要呈现的内容,例如报告、总结、方案)
>
> 2. **参考文档生成** — 以这份文件为背景资料,由您指定主题,AI 重新组织生成
> (适合:文档是参考材料,需要 AI 重新理解和表达)
**根据用户回答执行**:
**选择 1 — 文档转PPT(完整流程)**
> 文件类型影响流程:
> - **有大纲**(`.doc/.docx/.pdf/.txt/.pptx/.wps`):先生成大纲展示,再自动合成
> - **无大纲**(`.md/.xmind/.mm`):直接合成,无大纲展示步骤
对于 `.doc/.docx/.pdf/.txt/.pptx/.wps`:
```
1. 解析文档并生成大纲+内容(约 30 秒)
2. 获取 PPT 树形结构(generate/data)
3. ⬇ 清晰展示大纲文本给用户(必须完整输出,格式化为 Markdown 标题层级)
4. 自动继续合成 PPT(不等用户确认)
5. 导出
6. 下载 → 返回 PPTX 文件路径
```
**第一次工具调用 — 生成大纲(约 30 秒)**
```bash
bash scripts/aippt.sh generate_from_file "文件绝对路径" --outline-only
```
命令结束后,从输出中找到 `outline_ready` 那行 JSON,提取 `task_id`、`title`、`outline` 字段。
**第一次工具调用结束后:先输出文字,再发起第二次工具调用**
> 🚨 **必须按以下顺序执行,不可合并:**
> 1. **结束第一次工具调用**
> 2. **向用户输出文字回复**(将大纲格式化为 Markdown 标题层级写入回复,同时说明"正在合成 PPT...")
> 3. **再发起第二次工具调用**(执行 generate_save)
>
> ✅ 正确:[工具调用1: --outline-only] → [文字输出: 大纲内容] → [工具调用2: generate_save]
> ❌ 错误:[工具调用1: --outline-only] → [工具调用2: generate_save] → [文字输出: 大纲内容]
**步骤 4+5+6 — 自动继续合成 PPT(不等用户确认,约 40 秒)**
```bash
bash scripts/aippt.sh generate_save "<task_id>" "<title>"
```
对于 `.md/.xmind/.mm` 类文件,直接执行(单步完成,无大纲展示):
```bash
bash scripts/aippt.sh generate_from_file "文件绝对路径"
```
**选择 2 — 参考文档生成**
追问用户 PPT 主题,再执行:
```bash
bash scripts/aippt.sh generate_with_refer "PPT主题" "文件绝对路径"
```
### ⚠️ 参考文档模式 B 端限制(执行前必须检查)
| 限制项 | 规则 | 违规处理 |
|-------|------|---------|
| 单文件大小 | **≤ 10MB** | 脚本自动报错,提示用户压缩或改用「文档转PPT」|
| 最多文件数 | **≤ 5 个**(同一次 PPT 生成) | 超出时告知用户只取前5个,或分批生成 |
> **说明**:参考文档模式调用的是 B 端专属接口(`/api/ai/chat/refer`),以上限制来自平台 API 规范,不可绕过。
---
## 场景三:网页 URL 导入
**触发条件**:用户提供了一个网页 URL。
**示例**:
- "把这篇文章做成PPT:https://..."
- "根据这个页面生成演示文稿"
**执行(两步走)**:
**步骤 1 — 创建任务并生成大纲**
```bash
# 1a. 创建任务,获取 task_id
task_id=$(bash scripts/aippt.sh create_from_url "https://..." \
| python3 -c "import sys,json;print(json.load(sys.stdin)['data']['id'])")
# 1b. 抓取页面内容 + 生成大纲(SSE,约 30 秒)
# 脚本输出 outline_ready 步骤(stderr),将大纲格式化展示给用户
bash scripts/aippt.sh link "$task_id" 2>&1 | grep -E '^{' | python3 -c "
import sys,json
for line in sys.stdin:
try:
obj=json.loads(line)
if obj.get('step')=='outline_ready':
print(obj.get('outline',''))
except: pass
"
```
收到 `outline_ready` 后,将大纲格式化展示给用户,**立即**执行步骤 2,不等待用户确认。
**步骤 2 — 合成 PPT**
```bash
bash scripts/aippt.sh generate_save "$task_id" "<页面标题>" [template_id] [output_dir] [formats]
```
---
## 场景四:联网智能生成 🆕
**触发条件**:用户主题涉及时效性内容,需要结合网络实时搜索。
**关键词识别**:「最新」「2026」「当前」「趋势」「热点」「新闻」「实时」「最近」「今年」
**示例**:
- "帮我做一个2026年AI行业趋势的PPT"
- "做个最新诺贝尔奖得主介绍的演示文稿"
- "生成当前全球芯片行业动态分析PPT"
**完整流程**:
```
1. 创建联网任务(type=1 + network=true)
2. 联网搜索+生成大纲+内容(SSE 流式,约 60 秒)
3. 自动合成 PPT(约 10 秒)
4. 导出 + 下载 → 返回 PPTX 文件路径
```
**一键执行:**
```bash
bash scripts/aippt.sh network_generate "<标题>" [template_id] [output_dir] [formats] [template_type]
```
> **注意**:联网模式大纲+内容一次性在 SSE 流中生成完成(约 60 秒),无需分两步调用。展示大纲后文件已自动下载完毕。
---
## 企业模板检查(B端客户适用)
在执行生成命令前,先检查是否有企业专属模板:
```bash
bash scripts/aippt.sh enterprise_templates
```
| 返回结果 | 处理方式 |
|---------|---------|
| `code≠0` 或 `data.list` 为空 | 跳过,使用普通模板自动生成 |
| `data.list` 非空 | 询问用户:"是否使用企业专属模板?" |
用户选择企业模板时,将模板 ID 和 `enterprise` 类型传入:
```bash
bash scripts/aippt.sh generate "年终总结" <enterprise_tpl_id> ~/Desktop ppt enterprise
bash scripts/aippt.sh generate_from_file report.docx <enterprise_tpl_id> ~/Desktop ppt enterprise
```
---
## 高级配置(可选,提升生成质量)
### 查询可用选项 ID
```bash
bash scripts/aippt.sh senior_options
```
返回所有配置项和 ID,★ 表示默认值:
| 配置项 | key | 常用选项(ID:名称) |
|--------|-----|-------------------|
| 页数 | page | 53:5-10页 / 3:20-30页★ / 56:尽情发挥 |
| 受众 | group | 6:大众★ / 9:学生 / 8:商业 / 11:老板 |
| 场景 | scene | 18:通用★ / 27:项目汇报 / 34:年度总结 / 29:商业计划书 |
| 语气 | tone | 40:专业★ / 42:幽默 / 43:亲切 |
| 语言 | language | 47:简体中文★ / 49:英语 / 50:日语 |
| 文本量 | text | 58:简洁 / 60:详细★ |
### 使用方式
`--options` 传 ID 数组,`--model` 切换 AI 模型:
```bash
# 年度总结 + 英语 + 详细文本
bash scripts/aippt.sh generate "Annual Review 2025" --options "[49,34,60]" --model doubao-1.5-pro-32k
# 文件转PPT + 指定场景和语言
bash scripts/aippt.sh generate_from_file report.pdf --options "[49,27,40]"
```
### 模型选择
| 模型 ID | 描述 | 支持的 type |
|---------|------|------------|
| `glm4.5-air` | 智谱 GLM | 1 / 9 / 10 / 18 |
| `deepSeek-v3` | DeepSeek V3 | 1 / 9 / 10 / 18 |
| `doubao-1.5-pro-32k` | 字节豆包 | 1 / 9 / 10 / 18 |
> 不传 model 时服务端自动选择默认模型。
---
## 执行进度反馈
命令运行时,从 stderr 读取进度 JSON 并实时告知用户:
| `step` 值 | 适用场景 | 向用户说明 |
|-----------|---------|-----------|
| `create` | 所有 | 正在创建任务... |
| `outline` | 标题生成 | 正在生成大纲,约 6 秒... |
| `outline_ready` | 所有 type | **立即展示大纲**:解析 JSON 中 `outline` 字段,格式化展示给用户;保存 `task_id` 和 `title`;随后**无需确认**立即执行步骤 2(`generate_continue` 或 `generate_save`) |
| `network` | 联网生成 | 正在联网搜索并生成大纲+内容,约 60 秒... |
| `content_triggered` | 标题生成 | 正在生成内容,约 25 秒... |
| `ppt_data` | 所有 type(步骤2)| 获取 PPT 树形结构... |
| `outline_save` | 所有 type(步骤2)| 提交大纲中... |
| `outline_saved` | 所有 type(步骤2)| 大纲提交完成,继续合成 |
| `word` | Word/PDF/TXT/PPTX/WPS | 正在解析文档并生成大纲+内容,约 30 秒... |
| `file_parsed` | MD/XMind/FreeMind | 文件已上传,准备生成... |
| `composing` | 所有 | 告知用户:合成中,请稍候... |
| `pick_template` | 所有 | 正在选择模板... |
| `save` | 所有 | 正在生成 PPT 作品,约 10 秒... |
| `export` | 所有 | 正在触发导出... |
| `wait_export` | 所有 | 正在渲染导出,约 30 秒... |
| `downloaded` | 所有 | 某格式已下载(format + size) |
| `done` | 所有 | 完成,返回文件路径 |
---
## 命令参考
### 一键生成(推荐)
```bash
# 从标题生成
bash scripts/aippt.sh generate <标题> [template_id] [output_dir] [formats] [template_type]
# 从文件生成(文档转PPT)
bash scripts/aippt.sh generate_from_file <文件路径> [template_id] [output_dir] [formats] [template_type]
# 参考文档生成(type=17,最多5个文件,每个 ≤ 10MB)
bash scripts/aippt.sh generate_with_refer <PPT主题> <文件1> [文件2..文件5] \
[--output_dir <dir>] [--formats <fmts>] [--template_id <id>] [--template_type <type>]
# 联网智能生成(type=1 + 网络搜索)
bash scripts/aippt.sh network_generate <标题> [template_id] [output_dir] [formats] [template_type]
```
**参数说明:**
| 参数 | 必需 | 默认值 | 说明 |
|------|:----:|-------|------|
| 标题 / 文件路径 | ✅ | — | PPT 主题文字 或 本地文件绝对路径 |
| PPT主题(refer) | ✅ | — | 参考文档模式 PPT 标题,作为 type=17 任务的 title |
| 文件1..5(refer) | ✅(至少1个)| — | 参考文档路径,支持 Word/PDF/TXT/WPS |
| template_id | ❌ | 随机选20个之一 | 模板 ID |
| output_dir | ❌ | skill 目录 | 输出目录 |
| formats | ❌ | `ppt` | 导出格式,逗号分隔:`ppt,pdf,word,png` |
| template_type | ❌ | 空(普通模板) | `enterprise` = 企业模板 |
### 文件类型与 API 流程对照
| 扩展名 | type | 流程 |
|-------|------|------|
| `.doc` / `.docx` | 3 | Word SSE → save |
| `.xmind` | 4 | direct save |
| `.mm` (FreeMind) | 5 | direct save |
| `.md` | 7 | direct save(content 字段) |
| `.pdf` | 9 | Word SSE → save |
| `.txt` | 10 | Word SSE → save |
| `.ppt` / `.pptx` | 12 | Word SSE → save |
| `.wps` | 18 | Word SSE → save |
| 参考文档(refer)| 17 | refer SSE → save |
### 模板
| 命令 | 说明 |
|------|------|
| `templates [page] [size] [color] [style]` | 搜索普通模板列表 |
| `enterprise_templates` | 获取企业专属模板(B端配置,未开启返回 code≠0) |
| `options` | 获取模板颜色/风格/场景筛选项 |
| `senior_options` | 获取 AI 生成高级配置选项(页数/受众/场景/语气/语言/文本量) |
### 分步操作(type=1 标题生成专用)
| 命令 | 说明 |
|------|------|
| `create <标题> [type]` | 创建任务,返回 task_id |
| `outline <task_id>` | 生成大纲(SSE 流式)⚠️ 仅 type=1 |
| `content <task_id>` | 触发内容生成,返回 ticket ⚠️ 仅 type=1 |
| `check <ticket>` | 轮询生成状态(参数是 ticket,不是 task_id!) |
| `wait <ticket> [timeout]` | 阻塞等待内容生成完成 |
### 分步操作(文件 / URL 导入专用)
| 命令 | 说明 |
|------|------|
| `create_with_file <文件> [type]` | 从文件创建任务 |
| `create_from_url <URL>` | 从网页 URL 创建任务(type=16) |
| `word <task_id>` | Word 文档解析+生成大纲+内容(SSE,type=3 专用) |
| `link <task_id>` | URL 链接抓取+生成(SSE,type=16 专用) |
| `refer <task_id>` | 参考文档模式生成(SSE) |
| `network <task_id>` | 联网智能生成内容获取(SSE) |
| `conver_file <task_id> <type>` | 解析 MD/XMind/FreeMind → 返回 Markdown 文本 |
| `ppt_data <task_id>` | 获取 PPT 树形结构数据(generate/data) |
| `outline_save <task_id> <content>` | 提交大纲/内容数据(save 前必须调用) |
### 两步续跑(大纲确认后使用)
| 命令 | 说明 |
|------|------|
| `generate_continue <task_id> <title>` | 续跑 type=1 标题任务(content → composing → save → export) |
| `generate_save <task_id> <title>` | 续跑文件任务(composing → save → export,跳过 content 步骤) |
### 生成 / 导出(所有流程通用)
| 命令 | 说明 |
|------|------|
| `save <task_id> <template_id> [name] [template_type]` | 生成 PPT 作品,返回 design_id |
| `export <design_id> [format] [edit]` | 触发导出,返回 task_key |
| `export_result <task_key>` | 查询导出结果 |
| `wait_export <task_key> [timeout]` | 阻塞等待导出完成,返回下载 URL |
| `export_outline <task_id>` | 导出任务大纲为 Markdown 文件(返回下载 URL) |
| `download <task_id> <tpl_id> <path>` | 分步下载:save → export → 等待 → 下载到本地 |
| `auth` | 获取 / 刷新 Token |
### 回收站管理 🆕
| 命令 | 说明 |
|------|------|
| `recycle_list [page] [size]` | 查看已删除作品列表 |
| `recycle_revert <design_id>` | 还原指定已删除作品 |
| `recycle_clear` | 清空回收站(⚠️ 不可恢复) |
---
## API 流程详解
> ⚠️ **关键:不同任务类型走完全不同的后端接口,不可混用。**
> `outline` 和 `content` 接口只对 type=1 有效,文件导入任务调用这两个接口会返回"任务不存在"。
### 流程 A — type=1 标题智能生成
```
创建任务
→ outline(SSE,约 6s,生成大纲)
→ content(获取 ticket)
→ check 轮询(约 25s,等待内容就绪)
→ save(约 10s)
→ export + 轮询下载
总耗时:约 60–90 秒
```
### 流程 B — type=3 Word 文件导入
```
创建任务(上传 .doc/.docx)
→ word SSE(约 30s,服务端解析 Word + 生成大纲+内容)
→ save(约 10s)
→ export + 轮询下载
总耗时:约 60 秒
```
### 流程 C — type=7/4/5 Markdown / XMind / FreeMind
```
创建任务(传 content 字段,文本内容)
→ save 直接(约 10s,服务端自动从内容生成)
→ export + 轮询下载
总耗时:约 50 秒
```
### 流程 D — type=8/9/10 PDF / TXT / PPTX
```
创建任务(上传文件)
→ save 直接(约 10s)
→ export + 轮询下载
总耗时:约 50 秒
```
### 流程 E — type=16 URL 链接导入
```
创建任务(传 link 字段)
→ link SSE(约 30s,抓取页面 + 生成大纲+内容)
→ save(约 10s)
→ export + 轮询下载
总耗时:约 60 秒
```
### 流程 F — 联网智能生成 🆕
```
创建任务(type=1 + network=true)
→ network SSE(约 60s,联网搜索 + 生成大纲+内容)
→ save(约 10s)
→ export + 轮询下载
总耗时:约 90 秒
```
> **说明**:联网模式将传统「大纲→内容」两步合并为一步 SSE 流,服务端直接返回完整的 Markdown 大纲+内容。
### 关键接口说明
| 接口 | 方法 | 路径 | 适用类型 |
|------|------|------|---------|
| 鉴权 | GET | `/api/grant/token/` | 所有 |
| 创建任务 | POST | `/api/ai/chat/v2/task` | 所有 |
| 生成大纲 | GET (SSE) | `/api/ai/chat/outline` | type=1 only |
| 触发内容生成 | GET | `/api/ai/chat/v2/content` | type=1 only |
| 轮询内容状态 | GET | `/api/ai/chat/v2/content/check` | type=1 only |
| 联网智能生成 | GET (SSE) | `/api/ai/chat/network` | type=1 + network |
| Word 解析+生成 | GET (SSE) | `/api/ai/chat/v2/word` | type=3 only |
| URL 抓取+生成 | GET (SSE) | `/api/ai/chat/link` | type=16 only |
| 参考文档生成 | GET (SSE) | `/api/ai/chat/refer` | 参考文档模式 |
| 文件内容解析 | GET | `/api/ai/conver/file` | type=4/5/7 |
| PPT 树形结构 | POST | `/api/generate/data` | 所有 |
| 提交大纲 | POST | `/api/ai/chat/v2/outline/save` | 所有 |
| 导出大纲文件 | GET | `/api/generate/file` | 所有 |
| 生成作品 | POST | `/api/design/v2/save` | 所有 |
| 触发导出 | POST | `/api/download/export/file` | 所有 |
| 查询导出结果 | POST | `/api/download/export/file/result` | 所有 |
| 回收站列表 | GET | `/api/design/del/list` | 所有 |
| 回收站还原 | POST | `/api/design/del/revert` | 所有 |
| 回收站清空 | POST | `/api/design/del/clear` | 所有 |
| 普通模板列表 | GET | `/api/template_component/suit/search` | 所有 |
| 企业模板列表 | GET | `/api/template_component/enterprise/suit/list` | B端 |
| 模板筛选项 | GET | `/api/template_component/suit/select` | 所有 |
| 高级配置选项 | GET | `/api/ai/chat/senior/option` | 所有 |
### 任务类型对照表
| type | 说明 | 输入方式 | 后续流程 |
|------|------|---------|---------|
| 1 | 智能生成 | `title` 字段 | outline → content → save |
| 3 | Word 导入 | 文件上传 | word SSE → save |
| 4 | XMind 导入 | 文件上传 | save 直接 |
| 5 | FreeMind 导入 | 文件上传 | save 直接 |
| 7 | Markdown 导入 | `content` 文本字段 | save 直接 |
| 8 | PDF 导入 | 文件上传 | save 直接 |
| 9 | TXT 导入 | 文件上传 | save 直接 |
| 10 | PPTX 导入 | 文件上传 | save 直接 |
| 16 | URL 导入 | `link` 字段 | link SSE → save |
### 导出格式
| format | 输出文件 |
|--------|---------|
| `ppt` | .pptx(默认) |
| `pdf` | .pdf |
| `word` | .docx |
| `png` | .png(每页一图) |
### 错误码
> 脚本内置 `check_resp()` 统一处理,所有非0 code 自动映射为中文提示。
| code | 含义 | 脚本处理方式 |
|------|------|------------|
| 40007 | 余额不足 | 报错:账户余额不足,请充值后重试 |
| 40008 | 功能未开通 | 报错:该功能未开通,请联系管理员 |
| 10307 | 企业模板未开启 | 报错提示(AI 层面跳过,用普通模板) |
| 43101 | Token 过期 | 报错:删除 `.token_cache.json` 后重试 |
| 43102 | 签名错误 | 报错:检查 `AIPPT_SECRET_KEY` 是否正确 |
| 12100 | AI 内容生成失败 | 报错:换个标题或稍后重试 |
| 12101 | 内容审核未通过 | 报错:修改标题/内容后重试 |
| 12102 | 任务不存在 | 报错:检查是否对文件任务误调用了 outline/content |
| 20003 | 导出队列已满 | 自动等待重试(最多5次,每次间隔10秒) |
| 20001 | 导出任务不存在 | 报错:重新触发导出 |
| 30001 | 模板无权限 | 报错:模板不存在或无权使用该模板 |
| 50000 | 服务器内部错误 | 报错:稍后重试 |
---
## 文件结构
```
aippt-skill/
├── SKILL.md ← 本文件
├── skill.json ← Skill 元数据 & 触发词
├── scripts/
│ └── aippt.sh ← API 集成脚本 (v3.1.0)
├── .env.example ← API 密钥模板(复制为 .env 后填入真实密钥)
└── .token_cache.json ← Token 缓存(自动生成,不纳入版本管理)
```
---
## 版本历史
| 版本 | 日期 | 说明 |
|------|------|------|
| 3.1.0 | 2026-05-25 | 新增联网智能生成(network_generate);新增导出大纲(export_outline);新增回收站管理(recycle_list/revert/clear);补全 SKILL.md 文档(ppt_data/outline_save/download/options/senior_options);修复 check_resp 的 Python traceback 噪音;统一版本号 |
| 3.0.6 | 2026-04-28 | 安全修复:移除 api_get/api_post 中的 eval curl(命令注入风险);修复 get_token 中路径被嵌入 python 字符串的注入问题(改用 heredoc + argv 传参)|
| 3.0.5 | 2026-03-20 | 补全官方流程(generate/data + outline/save);修复大纲展示时序问题(两次工具调用之间必须先输出大纲文字);统一所有文件类型(含 MD/XMind)使用 generate/data 树形大纲;修复默认 model/senior_options 导致部分账号鉴权失败 |
| 2.9.1 | 2026-03-20 | 修复大纲无法展示的根本问题:恢复两步命令(--outline-only → generate_continue/generate_save),但去掉中间的确认等待,展示大纲后立即执行合成 |
| 2.9.0 | 2026-03-19 | 去掉大纲确认等待逻辑:展示大纲后脚本自动继续合成,中途不停;修正 outline_ready 进度表描述;Scene 3 URL 导入去掉"询问是否继续"语言 |
| 2.8.0 | 2026-03-19 | 全 type 大纲展示(两步流程:outline_ready → 用户确认 → composing → 合成);generate_save / generate_continue 续跑命令;task_id 语义模板匹配;type=1 默认 doubao-1-5-pro-32k-250115 + 20-30页;去掉自动更新和流式输出逻辑 |
| 2.7.0 | 2026-03-18 | 新增高级配置(senior_options);模型切换(--model);参考文档模式(type=17);随机模板选取;文件名去重 |
| 2.4.0 | 2026-03-18 | 修复文件导入流程(按类型走正确接口);新增 enterprise_templates / word / link / refer / conver_file 命令;修正 API 流程文档 |
| 2.3.0 | 2026-03-18 | 新增使用场景章节(文件上传询问逻辑);generate_from_file 一键文档转PPT |
| 2.2.0 | 2026-03-10 | 修复文件 hidden flag、多格式导出顺序执行、文件格式验证 |
| 2.1.0 | 2026-03-10 | 修复多格式导出队列满(20003)、增加文件验证 |
| 2.0.0 | 2026-03-10 | 重写:修复 ticket/task_id 混淆,补全 save+export 流程,支持一键 generate |
| 1.0.0 | 2026-03-04 | 初版:基础 API 调用 |
don't have the plugin yet? install it then click "run inline in claude" again.