使用 ChatPPT CLI 通过 AI 自动生成 PPT,适用于根据主题文字或 Word/PDF/Markdown 文件生成,支持登录、生成、文件导入和结果查询全流程。
ChatPPT CLI Skill是一项面向实际任务的技能,主要用于CLI 安装;运行npm命令进行安装,安装前先检查是否已存在chatppt命令;
配置文件路径(默认 $HOME/.chatppt/config.yaml );d, --debug;启用调试模式;f, --format string;输出格式: json。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
运行npm命令进行安装,安装前先检查是否已存在chatppt命令。
npm install -g @yooai/cli
安装后可运行chatppt命令进行调用,比如:
chatppt --help
| Flag | 说明 |
|---|---|
--config string |
配置文件路径(默认 $HOME/.chatppt/config.yaml) |
-d, --debug |
启用调试模式 |
-f, --format string |
输出格式:json(默认)/ table / pretty |
-h, --help |
帮助 |
-v, --version |
版本 |
1. 检查登录状态(auth status 2. 未登录 → 执行登录(auth login) 3. 生成 PPT(ppt generate 或 ppt import_file) 4. 自动轮询等待结果(直到 `2` 或 `3`) 5. 询问用户要直接下载pptx文件还是跳转到线上编辑器
images.urls,可直接把图片链接展示给用户。2或3 后,仅返回成功结果与关键信息,不执行任何后续操作(后续接口未就绪)。--web-search 涉及额外收费,启用前必须先告知用户并获得明确确认;未确认则按关闭处理(传 --web-search=false)。主题 或导入时的 文件路径)。font-name、theme-color、ai-picture、image-style、template-id、custom-template-id、custom-page-countbanana-style-id、banana-doc-type、banana-reference-imageweb-search 为额外收费项,不能并入“默认就行”;必须单独征得用户同意后才启用。template-idbanana-style-id| 目标 | 命令 |
|---|---|
| 查看登录状态 | auth status |
| 登录 | auth login |
| 登出 | auth logout |
| 刷新令牌 | auth refresh |
| 生成 PPT(主题文字) | ppt generate "主题" |
| 生成绘图PPT(主题文字) | ppt generate_banana "主题" |
| 生成 PPT(文件导入) | ppt import_file "/path/to/file" |
| 生成绘图PPT(文件导入) | ppt import_file_banana "/path/to/file" |
| 查询 PPT 结果 | ppt result |
| 查看配置 | config show |
| 重载配置 | config reload |
| 查看版本 | version |
所有 PPT 生成命令都需要先登录。
# 查看当前登录状态 chatppt auth status # 登录(默认自动打开浏览器) chatppt auth login # 登录但不自动打开浏览器 chatppt auth login --no-browser # 刷新令牌(令牌即将过期时使用) chatppt auth refresh # 登出 chatppt auth logout
典型返回(status)
{
"success": true,
"code": 200,
"data": {
"is_logged_in": true,
"user": { "id": "string", "nickname": "string", "mobile": "string" }
}
}
普通生成
chatppt ppt generate "主题描述" [options]
绘图生成
chatppt ppt generate_banana "主题描述" [options]
| 参数 | 说明 |
|---|---|
主题描述 |
PPT 主题,1–200 字符 |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--complex |
int | 0 | 内容复杂度 1=简单,2=中等,3=复杂 |
--language |
string | — | 语言:zh-CN / en-US / zh-TW |
--web-search |
bool | false | 联网补充内容(额外收费,启用前需用户明确确认) |
--poll |
bool | true | 是否自动轮询等待结果 |
--interval |
int | 5 | 轮询间隔(秒) |
--max-retries |
int | 60 | 最大轮询次数(约 5 分钟) |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--font-name |
string | — | 字体名,如 微软雅黑 |
--theme-color |
string | — | 主题色:蓝色 红色 绿色 橙色 紫色 黄色 粉色 |
--ai-picture |
bool | true | 是否启用 AI 配图 |
--image-style |
string | — | 配图风格描述,如 商务风 |
--template-id |
string | — | 预制矢量模板 ID |
--custom-template-id |
string | — | 自定义模板 ID |
--custom-page-count |
int | 0 | 页数,0 = 自动 |
约束说明:
- 在生成之前询问用户是否需要浏览并指定模板,需要的话调用chatppt ppt template获取--template-id参数数据,调用之后的数据,一定要将每一项的至少一张图片展示给用户挑选。
chatppt ppt picture_style
获取PPT模板风格列表,支持分页查询
支持查看模板的详细信息,包括:
示例: chatppt ppt template # 获取第1页,每页10个 chatppt ppt template --page 2 # 获取第2页 chatppt ppt template --limit 20 # 每页显示20个 chatppt ppt template --page 2 --limit 5 # 获取第2页,每页5个
chatppt ppt template
| 参数 | 类型 | 说明 |
|---|---|---|
--banana-style-id |
string | 绘图风格ID |
--banana-doc-type |
string | 绘图排版样式 |
--banana-reference-image |
string | 参考图片 URL 或路径 |
约束说明:
- 绘图生成路径参数允许全部为空。
- 普通路径与绘图生成路径是两条平级路线,不存在“更高级”关系。
- Agent 必须先确认用户走哪条路径,再组装对应参数。
- 生成任务默认开启轮询(
--poll=true),接口内自动调用轮询接口持续查询直到SUCCESS或FAILED。- 在生成之前询问用户是否需要浏览并指定风格,需要的话调用chatppt ppt banana-template获取--banana-style-id参数数据。
获取绘图生成PPT模板风格列表,支持分页查询
支持查看模板的详细信息,包括:
示例: chatppt ppt banana-template # 获取第1页,每页10个 chatppt ppt banana-template --page 2 # 获取第2页 chatppt ppt banana-template --limit 20 # 每页显示20个 chatppt ppt banana-template --page 2 --limit 5 # 获取第2页,每页5个
chatppt ppt banana-template
chatppt ppt template_banana_style
# 基础生成 chatppt ppt generate "人工智能发展趋势" --language zh # 普通生成路径(带样式) chatppt ppt generate "2024年度工作总结" --language zh --font-name "微软雅黑" --theme-color blue --custom-page-count 15 --image-style "商务风" # 绘图生成风格路径(参数可部分或全部为空) chatppt ppt generate_banana "产品介绍" --banana-style-id style_001 --banana-doc-type business # 异步模式(不等待结果,手动查询) chatppt ppt generate "主题" --poll=false
{
"success": true,
"code": 200,
"data": {
"ppt_id": "ppt_1234567890",
"request_id": "string",
"title": "string",
"task_status": "2",
"images": {
"urls": [{ "url": "https://example.com/ppt/slide1.jpg" }]
}
}
}
task_status 说明
| 值 | 含义 |
|---|---|
1 |
生成中 |
2 |
已完成 |
3 |
失败 |
上传本地文件后基于其内容生成 PPT,适合将现有 Word / PDF / Markdown 转为演示文稿。
导入生成普通PPT
chatppt ppt import_file --file-path "/绝对路径/文档.docx"
导入生成绘图PPT
chatppt ppt import_file_banana --file-path "/绝对路径/文档.docx"
| 参数 | 说明 |
|---|---|
--file-path |
本地文件绝对路径 |
| 格式 | 扩展名 | 大小上限 |
|---|---|---|
| Word | .doc .docx |
100 MB |
.pdf |
100 MB | |
| Markdown | .md |
100 MB |
| 纯文本 | .txt |
100 MB |
文本文件须为 UTF-8 编码。
其余可选参数与 ppt generate 完全相同,包括普通路径参数与 Banana 路径参数。
# Word 文档导入 chatppt ppt import_file --file-path "/Users/me/docs/product.docx" --theme-color 蓝色 # PDF 导入,绘图生成风格 chatppt ppt import_file_banana --file "/Users/me/docs/annual.pdf" --banana-style-id style_002 --banana-doc-type business
返回格式与 ppt generate 相同。
在异步模式(--poll=false)下使用,主动查询任务状态。
chatppt ppt result[-f pretty]
| 参数 | 说明 |
|---|---|
ppt_id |
ppt generate / ppt import_file 返回的 ppt_id |
-f |
输出格式(继承全局 flag) |
# 查看当前配置 chatppt config show # 重新加载配置文件 chatppt config reload
典型返回(show)
{
"success": true,
"code": 200,
"data": {
"app": { "name": "ChatPPT CLI", "version": "1.0.0" },
"api": { "url": "http://localhost:9157", "timeout": 30000 },
"auth": { "type": "Bearer", "access_key_id": "csVyGKphwM..." },
"ppt": { "default_ai_picture": true }
}
}
chatppt ppt downloadppt [ppt-id]
chatppt ppt editor [ppt-id]
| 错误码 | 原因 | 处理 |
|---|---|---|
| 400 | 参数错误(topic 超长、路径无效等) | 修正参数后重试 |
| 401 | 未登录或令牌失效 | 执行 auth login |
| 403 | 文件上传权限不足 | 检查 BCE AK/SK 配置 |
| 413 | 文件超过 100 MB | 压缩或拆分文件 |
| 429 | 请求频率过高 | 等待 5 秒后重试,最多 3 次 |
| 500 | 服务端错误 | 等待 10 秒后重试,最多 3 次 |
{
"success": false,
"code": 400,
"message": "错误描述",
"error_type": "VALIDATION_ERROR",
"error_details": { "field": "topic", "reason": "主题长度必须在 1-200 字符之间" },
"suggestion": "请检查输入参数并重试"
}
auth login。