---
name: aippt
description: Generate PPT or presentations with Docmee AiPPT. Use when the user asks to create PPT, slides, courseware, decks, or upload a custom PPT template and generate a presentation from a topic, file, URL, pasted text, or Markdown outline.
---

# aippt

基于文多多 AiPPT（`docmee.cn`）的 PPT 生成 skill。

它保留了现有 `aippt` skill 的统一入口思路：

- 根据输入自动识别生成模式
- 输出本地 `.pptx` 文件
- 支持标题/主题、文件、网页 URL、纯文本、Markdown 大纲
- 支持上传自定义模板并在生成时指定模板
- 支持在生成完成后调用接口更换 PPT 模板
- 支持传入已有 `pptId` 直接更换模板

## 工作目录

所有命令都在当前 skill 目录执行：

```bash
SKILL_DIR="/path/to/skills/aippt-new"
cd "$SKILL_DIR"
```

## Python 环境

脚本通过 `uv` 运行：

```bash
cd "$SKILL_DIR"
uv sync
uv run scripts/ppt.py --title "AI 行业洞察"
```

## 认证

`scripts/auth.py` 会自动按以下顺序读取 API Key：

1. 环境变量 `DOCMEE_API_KEY`
2. 技能目录中的本地文件 `docmee_api_key.json`

服务端调用默认直接把 API Key 作为 `token` 使用，无需额外创建临时 token。

### 首次调用规则

首次使用本 skill 前，先运行：

```bash
cd "$SKILL_DIR"
uv run scripts/auth.py
```

如果提示缺少 API Key：

1. 不要继续生成 PPT。
2. 先向用户索取文多多 API Key。
3. 同时把注册链接发给用户：`https://docmee.cn/open`
4. 用户提供 key 后，立刻保存到 skill 本地文件：

```bash
cd "$SKILL_DIR"
uv run scripts/auth.py --set-key "ak_xxx"
```

5. 保存成功后，会在 skill 同级目录下创建 `docmee_api_key.json`，后续直接复用。
6. 再继续后续 PPT 操作。

后续调用默认直接复用 `docmee_api_key.json`，不再重复询问。

可单独验证认证：

```bash
cd "$SKILL_DIR"
uv run scripts/auth.py
```

可查看本地 key 文件路径：

```bash
cd "$SKILL_DIR"
uv run scripts/auth.py --show-path
```

## 统一入口

主入口是 `scripts/ppt.py`。

### 自动识别规则

| 输入 | 模式 |
|---|---|
| `--file report.docx/pdf/pptx/txt/xlsx/...` | 上传文件生成 |
| `--file outline.md` | Markdown 大纲生成 |
| `--url https://...` | 网页 URL 生成 |
| `--content "# 标题\n## 章节"` | Markdown 大纲生成 |
| `--content "一段普通文本"` | 纯文本生成 |
| `--content-file outline.md` | Markdown 大纲生成 |
| `--content-file notes.txt` | 纯文本生成 |
| 无文件/URL/内容 | 主题智能生成 |

### 命令行参数

```bash
uv run scripts/ppt.py \
  --title TITLE \
  [--ppt-id PPT_ID] \
  [--file FILE_PATH] \
  [--url URL] \
  [--content TEXT] \
  [--content-file FILE] \
  [--template-id ID] \
  [--template-file FILE] \
  [--replace-template-id ID] \
  [--replace-template-file FILE] \
  [--replace-template-sync] \
  [--style "深蓝 科技"] \
  [--outline-content TEXT] \
  [--outline-file FILE] \
  [--output /path/to/output.pptx]
```

### 典型用法

```bash
cd "$SKILL_DIR"

# 主题智能生成
uv run scripts/ppt.py --title "2026 年 AI 趋势"

# 上传文件生成
uv run scripts/ppt.py --title "年度报告" --file /path/to/report.docx

# 网页生成
uv run scripts/ppt.py --title "文章解读" --url "https://example.com/article"

# 纯文本生成
uv run scripts/ppt.py --title "AI 发展" --content "人工智能正在重塑软件和硬件产业。"

# Markdown 大纲生成
uv run scripts/ppt.py --title "技术方案" --content-file /path/to/outline.md

# 使用已有模板
uv run scripts/ppt.py --title "产品发布会" --template-id 12345

# 上传自定义模板并生成
uv run scripts/ppt.py \
  --title "品牌方案" \
  --file /path/to/brand-brief.docx \
  --template-file /path/to/brand-template.pptx

# 上传模板并覆盖已有模板 ID
uv run scripts/ppt.py \
  --title "品牌方案" \
  --file /path/to/brand-brief.docx \
  --template-id 12345 \
  --template-file /path/to/brand-template.pptx

# 先生成，再更换为另一个模板
uv run scripts/ppt.py \
  --title "品牌方案" \
  --file /path/to/brand-brief.docx \
  --replace-template-id 67890

# 先生成，再上传模板文件并更换
uv run scripts/ppt.py \
  --title "品牌方案" \
  --file /path/to/brand-brief.docx \
  --replace-template-file /path/to/brand-template.pptx

# 对已有 PPT 直接更换模板
uv run scripts/ppt.py \
  --ppt-id YOUR_PPT_ID \
  --replace-template-id 67890

# 对已有 PPT 直接上传模板文件并更换
uv run scripts/ppt.py \
  --ppt-id YOUR_PPT_ID \
  --replace-template-file /path/to/brand-template.pptx

# 指定风格提示
uv run scripts/ppt.py --title "AI 芯片" --style "深蓝 科技"
```

## 生成流程

### 普通模式

1. 自动识别输入模式
2. 若提供 `--template-file`，先上传自定义模板
3. 若未指定模板，则随机获取一个模板
4. 生成大纲
5. 生成大纲内容
6. 按模板生成 PPT
7. 若提供 `--replace-template-id` 或 `--replace-template-file`，生成后调用更换模板接口
8. 下载 `.pptx` 到本地

### Markdown 直出模式

当输入是 Markdown 大纲时：

1. 自动识别为 Markdown 模式
2. 若提供 `--template-file`，先上传模板
3. 若未指定模板，则随机获取一个模板
4. 直接按 Markdown 大纲生成 PPT
5. 若提供 `--replace-template-id` 或 `--replace-template-file`，生成后调用更换模板接口
6. 下载 `.pptx` 到本地

### 已有 PPT 直换模板模式

当提供 `--ppt-id` 时：

1. 读取已有 PPT 的 `pptId`
2. 使用 `--replace-template-id` / `--replace-template-file`，若未提供则回退到 `--template-id` / `--template-file`
3. 直接调用更换模板接口
4. 下载更新后的 `.pptx` 到本地

## 输出

默认输出目录：

```text
/home/node/.openclaw/workspace/media/inbound/ppt/
```

也可以通过 `--output` 指定保存路径。

脚本执行完成后，会同时输出：

- **保存路径**：本地 `.pptx` 文件路径（`PPT 下载完成，保存路径: ...`）
- **下载链接**：文件的下载 URL（`PPT 下载链接: ...`）

生成完毕后，请同时将保存路径和下载链接告知用户。
