> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coze.cn/llms.txt
> Use this file to discover all available pages before exploring further.

本文档演示如何搭建生成 PPT 的低代码工作流，其核心在于支持生成及预览 PPT 缩略图，并确认用户满意生成效果后再返回可编辑的 PPTX 源文件。如果不满意，用户可重新输入 PPT 关键信息，再次生成 PPT。
## 场景说明 {#d2073c3c}
[iSlide 插件](https://www.coze.cn/store/plugin/7579887576128028687?from=store_search_suggestion)融合了 AI 大模型与专业设计资源，能够大幅节省制作时间和精力，帮助用户轻松创建专业级的 PPT。本教程以生成大学生实习报告 PPT 为例，用户仅需输入 PPT 关键信息和模板偏好信息，即可通过运行工作流生成 PPT。首先，通过 iSlide 插件的 get_themes 工具筛选出所需的 PPT 模板。接着，通过 generate_outline 工具生成 PPT 大纲。然后，generate_presentation 工具会基于模板 ID 和 PPT 大纲生成 PPT 并返回缩略图 URL。
整个工作流的重点在于通过循环节点实现了用户对生成效果的确认和重新生成环节，用户满意生成效果时，系统将运行 download_presentation 工具返回 PPTX 源文件，不满意则会提示用户重新输入 PPT 关键信息及模板信息，再次生成 PPT。生成的 PPTX 源文件可下载到本地，用于后续的编辑与使用。
本教程的循环节点也为其他需要用户确认的场景提供了参考，例如在文生图场景中，由大模型生成图像生成的提示词后，可以先让用户确认，再执行图像生成操作。如果用户对生成的提示词不满意，则可以输入修改建议重新生成提示词。
:::tip 说明
download_presentation 工具为付费工具，每次调用将扣除 9900 资源点（9.9 元）。为避免产生不必要的费用，建议在工作流中添加确认节点，确认对生成的 PPT 完全满意后再执行 download_presentation 工具获取 PPTX 源文件。
:::
## 效果演示 {#712bd60e}
执行 PPT 生成工作流时，会展示 PPT 缩略图及询问用户是否满意当前生成效果。待确认满意后，返回可编辑的 PPTX 源文件。

::::cols
@col 33
**输出预览**
可以在低代码智能体中以卡片形式预览 PPT 缩略图。
![Image=478x1049](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/32374f70769d44729eae0da4cc0f0c75~tplv-goo7wpa0wc-image.image)


@col 33
**确认节点**
![Image=403x194](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/ab0c19cf6a144540aab73ad696942e58~tplv-goo7wpa0wc-image.image)




@col 33
**最终效果**
![Image=2546x1212](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/51c85bddc04c4846a743b45baab10389~tplv-goo7wpa0wc-image.image)



::::

## 低代码工作流设计 {#90c7ffdd}
生成 PPT 工作流的设计方案说明如下：

* 工作流压缩包
   你可以下载该压缩包，并将其导入到任意工作空间中以复用该工作流。具体操作，请参考[导入与导出低代码工作流](/guides/import_and_export_workflow)。
   <a href="https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/92fdf007a5b34e938c716b07b0237e82~tplv-goo7wpa0wc-image.image" download="Workflow-PPT-draft-4301.zip" target="_blank">Workflow-PPT-draft-4301.zip</a>
* 工作流设计说明
   1. **输入节点**：传入 PPT 关键信息、搜索 PPT 模板的关键词和标签。在生成 PPT 工作流中，对工作流的运行对输入参数有较强的依赖，因此添加输入节点。例如在智能体中调用工作流时，运行到输入节点中会展示参数输入提示框，便于用户配置。
   2. **循环节点**：循环获取 PPT 模板，生成 PPT 大纲和缩略图。用户满意则结束循环，不满意则重新生成 PPT。
   3. **提取最后一个任务 ID 节点**：用户不满意 PPT 生成效果时，系统会循环重新生成 PPT。此时，循环节点输出的任务 ID 将是一个数组。因此，需要添加代码节点，提取数组的最后一个元素，即最后一次循环生成的任务 ID。
   4. **生成 PPTX 源文件节点**：用户确认满意后，返回最终的 PPTX 源文件，支持下载到本地进行编辑与使用。
   ![Image=6158x1658](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/50ceb81c5fc449439ddff23fd906602c~tplv-goo7wpa0wc-image.image)

## 核心节点 {#9f398b15}
工作流的核心节点配置如下：
<!-- @cols-width: 185,504,266 -->
| | | | \
|**节点名称** |**说明** |**示例** |
|---|---|---|
| | | | \
|开始节点 |本教程无需设置开始节点。 |![Image=676x207](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/8ad9fe9f79cb455abb97f47f8a088660~tplv-goo7wpa0wc-image.image) |
| | | | \
|输入 PPT 关键信息节点（输入节点） |输入 PPT 关键信息节点为输入节点，用于输入 PPT 关键信息和模板信息。如果在智能体中调用工作流，运行到输入节点时会展示输入提示框，引导用户配置相关的输入参数。而直接在**开始节点**设置输入参数，再在智能体中运行时不会提示输入框。 |\
| |节点配置说明如下： |\
| | |\
| |* 新增 `topic` 参数：输入 PPT 关键信息，用于生成 PPT 大纲。例如 `生成一份大学生实习报告，展示工作成果与收获，包括实习公司介绍、实习工作、心得体会、未来展望等内容`。 |\
| |* 新增 `theme_keyword` 参数：输入 PPT 模板关键字，用于筛选模板。例如 `实习总结、职业规划、工作报告，职业风`。 |\
| |* 新增 `theme_tags` 参数：输入 PPT 模板标签，用于筛选模板。例如 `color.blue`。 |* 节点配置 |\
| | |   ![Image=675x320](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/ba601a00c2214f56871dd0b4995435e4~tplv-goo7wpa0wc-image.image) |\
| | |* 智能体对话 |\
| | |   ![Image=419x458](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/4018ce4b886b46e6a1743f2475ca2c2b~tplv-goo7wpa0wc-image.image) |
| | | | \
|循环节点 |循环节点用于循环筛选 PPT 模板以及生成 PPT 大纲和缩略图，直到用户满意再停止循环，并输出 PPT 任务 ID。包括如下节点： |\
| | |\
| |* 获取 PPT 模板节点（插件节点） |\
| |* 生成 PPT 大纲节点（插件节点） |\
| |* 生成 PPT 节点（插件节点） |\
| |* 展示 PPT 缩略图节点（输出节点） |\
| |* 确认节点（问答节点） |\
| |* 重新输入 PPT 关键信息节点（输入节点） |\
| |* 设置变量节点 |\
| |* 终止循环节点 |\
| | |\
| |循环节点配置说明如下： |\
| | |\
| |* **循环设置** |\
| |   * **循环类型**：选择**指定循环次数**。 |\
| |   * **循环次数**：按需设置循环次数。 |\
| |* **中间变量**：用于在多次循环中传递变量。 |\
| |   * 新增 `var_topic` 变量：引用**开始节点**的输入参数 `topic`。 |\
| |   * 新增 `var_theme_keyword` 变量：引用**开始节点**的输入参数 `theme_keyword`。 |\
| |   * 新增 `var_theme_tags` 变量：引用**开始节点**的输入参数 `theme_tags`。 |\
| |* **输出**：引用**生成 PPT 节点**的输出参数`historyId`，设置为 Array<string> 类型。 |![Image=680x635](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/9cdc985d81314d9dbd7571365122bb94~tplv-goo7wpa0wc-image.image) |
| | | | \
|获取 PPT 模板节点（插件节点） |获取 PPT 模板节点为插件节点，调用 iSlide 插件的 get_themes 工具，用于根据输入的模板关键字和标签等信息，筛选 PPT 模板。 |\
| |节点配置说明如下，参数详细说明请参考[get_themes 工具](/guides/islide_plugin#a15e68bf)。 |\
| | |\
| |* `keywords`：引用**循环节点**的中间变量 `var_theme_keyword`。 |\
| |* `tags`：引用**循环节点**的中间变量 `var_theme_tags`。 |\
| |* 其他参数保持默认配置。 |![Image=678x447](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/07f3be1b63be4e9688bcf6b508ded418~tplv-goo7wpa0wc-image.image) |
| | | | \
|生成 PPT 大纲节点（插件节点） |生成 PPT 大纲节点为插件节点，调用 iSlide 插件的 generate_outline 工具，用于根据输入的 PPT 关键信息生成 PPT 大纲。 |\
| |节点配置说明如下，参数详细说明请参考[generate_outline 工具](/guides/islide_plugin#a1f80d9d)。 |\
| |`topic`： PPT 关键信息，引用**循环节点**的中间变量 `var_topic`。 |![Image=672x280](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/2c99b18d5b2645b3b235713691895c9e~tplv-goo7wpa0wc-image.image) |
| | | | \
|生成 PPT 节点（插件节点） |生成 PPT 节点为插件节点，调用 iSlide 插件的 generate_presentation 工具，基于 PPT 大纲和 PPT 模板 ID 生成 PPT，并返回 PPT 缩略图。 |\
| |节点配置说明如下，参数详细说明请参考[generate_presentation 工具](/guides/islide_plugin#32359352)。 |\
| | |\
| |* `outline`： PPT 大纲 ID，引用**生成 PPT 大纲节点**的输出参数 `data.id`。 |\
| |* `themeId`：PPT 模板 ID，引用**获取 PPT 模板节点**的输出参数 `data.items.id`。 |\
| |* 其他参数保持默认配置。 |![Image=679x361](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/c8996bd344444fe99b0e3688468b5afe~tplv-goo7wpa0wc-image.image) |
| | | | \
|展示 PPT 缩略图节点（输出节点） |展示 PPT 缩略图节点为输出节点，用于展示 PPT 缩略图。节点配置说明如下： |\
| | |\
| |* **输出变量**：引用**生成 PPT 节点**的输出参数 `data.pages`，设置为 Array<object>  类型。 |\
| |* **输出内容**：输入 `{{output}}`，用于输出缩略图相关信息。 |\
| | |\
| |此节点可以和工作流卡片配合使用，用于展示 PPT 缩略图。 |\
| | |\
| |1. 在智能体中，单击该工作流的**卡片**图标，选择为**展示 PPT 缩略图**节点绑定卡片。 |\
| |2. 在卡片配置页面，选择合适的卡片模板，设置卡片数据源。 |\
| |   本教程以官方卡片为例，为卡片绑定**展示 PPT 缩略图节点**的输出参数`output`**。**`output` 中包含三个字段 `index`（数组索引）、`slideLayout`（PPT 版式）和 `thumbnail` 字段（PPT 缩略图）。因此，为标题元素绑定 index 字段，为内容元素绑定 slideLayout 字段，为图片元素绑定 thumbnail 字段。本卡片模板最多展示 20 张 PPT 缩略图，你也可以自定义卡片。具体操作，请参考[卡片](/guides/message_card)。 |* 节点配置 |\
| | |   ![Image=679x422](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/50959da984c94ada9a9015082fb679da~tplv-goo7wpa0wc-image.image) |\
| | |* 绑定卡片 |\
| | |   ![Image=1178x360](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/b4833e2f70ee46459734a39d8fcb77a7~tplv-goo7wpa0wc-image.image) |\
| | |   ![Image=1481x1116](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/d600a51356654cca8ed49eba48b7dd2c~tplv-goo7wpa0wc-image.image) |
| | | | \
|确认节点（问答节点） |确认节点为问答节点，用于询问用户是否满意生成的 PPT，满足则结束循环，不满意则重新输入 PPT 关键信息，重新生成 PPT 。节点配置说明如下： |\
| | |\
| |* **模型**：选择合适的模型，例如豆包·1.5·Pro·32k。 |\
| |* **提问内容**：设置为`对生成的 PPT 是否满意？`。 |\
| |* **回答类型**：选择**选项回答**。 |\
| |* **选项内容**： |\
| |   * `A：不满意，重新生成` |\
| |   * `B：满意，直接下载` |![Image=676x963](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/09351563d24e469285772af090acafa8~tplv-goo7wpa0wc-image.image) |
| | | | \
|重新输入 PPT 关键信息节点（输入节点） |重新输入 PPT 关键信息节点为输入节点，当用户不满意 PPT 生成效果时，可以通过该节点重新输入 PPT 关键信息。节点配置说明如下： |\
| | |\
| |* 新增 `topic`：输入 PPT 关键信息，用于生成 PPT 大纲。例如 `生成一份大学生实习报告，展示工作成果与收获，包括实习公司介绍、实习工作、心得体会、未来展望等内容`。 |\
| |* 新增 `theme_keyword`：输入模板关键字，用于筛选模板。例如 `实习总结、职业规划、工作报告，职业风`。 |\
| |* 新增 `theme_tags`：输入模板标签，用于筛选模板。例如 `color.blue`。 |![Image=683x316](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/78b182759eb94432a850ee01f8dced94~tplv-goo7wpa0wc-image.image) |
| | | | \
|设置变量节点 |设置变量节点用于重置循环变量的值，使其下次循环时使用重置后的值，即用户不满意 PPT 生成效果时，循环节点将根据重新输入的 PPT 关键信息生成 PPT。节点配置说明如下： |\
| | |\
| |* 新增中间变量 1，引用**循环节点**的中间变量 `var_topic`，其值引用**重新输入 PPT 关键信息节点**的输入参数`topic`。 |\
| |* 新增中间变量 2，引用**循环节点**的中间变量 `var_theme_keyword`，其值引用**重新输入 PPT 关键信息节点**的输入参数`theme_keyword`。 |\
| |* 新增中间变量 3，引用**循环节点**的中间变量 `var_theme_tags`，其值引用**重新输入 PPT 关键信息节点**的输入参数`theme_tags`。 |![Image=674x312](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/bcc44330df50442281b65a7dd08defbe~tplv-goo7wpa0wc-image.image) |
| | | | \
|提取最后一个任务 ID 节点（代码节点） |提取最后一个任务 ID 节点为代码节点，用于提取最后一个 PPT 生成任务 ID。节点配置说明如下： |\
| | |\
| |* **输入**：新增`input` 参数，引用**循环节点**的输出参数 `output`，设置为 Array<string>类型。 |\
| |* **代码：​**通过代码，提取 `output` 中的最后一个元素，即最后一个 PPT 生成任务 ID。 |\
| |   ```JavaScript |\
| |   async function main({ params }: Args): Promise<Output> { |\
| |       // 构建输出对象 |\
| |       const lastElement = params.input.length > 0  |\
| |       ? params.input[params.input.length - 1]  |\
| |       : ""; |\
| |       ret ={ lastElement} |\
| |       return ret; |\
| |   } |\
| |   ``` |\
| | |\
| |* **输出**：新增 `lastElement`参数，用于输出最后一个 PPT 生成任务 ID，设置为 String 类型。 |![Image=677x660](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/0683ed858fcf47e1a3d5654a8c46b672~tplv-goo7wpa0wc-image.image) |\
| | | |
| | | | \
|返回 PPTX 源文件节点（插件节点） |返回 PPTX 源文件节点为插件节点，调用 iSlide 插件的 download_presentation 工具，用于返回 PPTX 源文件，支持下载到本地进行编辑。 |\
| |节点配置说明如下，参数详细说明请参考[download_presentation 工具](/guides/islide_plugin#474a7e93)。 |\
| | `historyId` 参数，表示 PPT 生成任务 ID，引用**提取最后一个任务 ID 节点**的输出参数`lastElement`。 |![Image=684x283](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/ddb46ef1c49442f9ac96b47af33403f1~tplv-goo7wpa0wc-image.image) |
| | | | \
|结束节点 |结束节点用于输出 PPTX 源文件 URL。节点配置说明如下： |\
| | |\
| |* **输出模式**：选择**返回文本**。 |\
| |* **输出**：定义变量 `output`，引用**返回 PPTX 源文件节点**的输出参数`file`。 |\
| |* **回答内容**：设置为 `{{output}}`，表示输出 PPTX 源文件 URL。 |\
| | |\
| |:::tip 说明 |\
| |`file`有效期 2 小时，请及时转存。 |\
| |::: |![Image=678x475](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/129dbb7cd0ac4262a1d5a329dc0e1c5a~tplv-goo7wpa0wc-image.image) |


