AI PPT/演示文稿生成。根据用户主题或内容自动生成PPT演示文稿项目。当用户想要创建PPT、演示文稿、幻灯片时使用,触发词包括"创建PPT"、"做PPT"、"做个演示文稿"、"生成幻灯片"、"create PPT"、"make slides"、"generate presentation"、"make a PPT"等。
根据用户提供的主题、内容或文件,自动生成PPT演示文稿项目。
以下规则必须严格执行,不得跳过、变通或使用替代方案:
create-project 接口。⚠️ 以下想法是错误的,如果你发现自己在这样想,请立即停止:
在调用任何 API 之前,先检查凭证状态。
读取凭证文件,判断认证状态:
cat ~/.aitubiao/credentials 2>/dev/null
根据结果判断:
API_KEY 为空 → 执行下方"配置凭证"流程API_KEY 不以 sk_v1_ 开头 → 告知用户"当前 API Key 已失效,请前往 API Key 管理页面 重新创建一个 API Key"BASE_URL 为空或不等于 https://api.aitubiao.com → 执行下方"配置凭证"流程(保留现有 API_KEY,仅修正 BASE_URL)API_KEY 格式正确且 BASE_URL 正确 → 认证通过认证通过后,加载环境变量:
source ~/.aitubiao/credentials
export BASE_URL="${BASE_URL:-https://api.aitubiao.com}"
sk_v1_...)。如果没有,引导用户前往 API Key 管理页面 创建一个新的 API Key,然后将创建好的 Key 粘贴回来。mkdir -p ~/.aitubiao
cat > ~/.aitubiao/credentials << EOF
API_KEY=<用户提供的key>
BASE_URL=https://api.aitubiao.com
EOF
chmod 600 ~/.aitubiao/credentials
凭证保存在 ~/.aitubiao/credentials,跨会话持久生效。
所有 API 使用统一的服务地址:
| 默认地址 | API前缀 | 认证方式 |
|---|---|---|
https://api.aitubiao.com/ | /api/v1/agent | Authorization: Bearer <API_KEY> |
重要:所有非流式响应都包裹在统一格式中:
{ "code": 0, "msg": "ok", "data": { ... } }
实际业务数据在 data 字段内。即使 HTTP 状态码为 200,也必须检查 code 字段是否为 0,非 0 表示业务错误。
| 输入方式 | 处理方法 |
|---|---|
| 主题文本 | 用户直接输入主题(如"人工智能发展趋势"),直接作为 prompt |
| 粘贴内容 | 用户粘贴完整文本,作为 prompt |
| 本地文件(TXT/MD/CSV) | 用 Read 工具读取文件内容,作为 prompt |
| Excel 文件(.xlsx/.xls) | 使用 xlsx skill 或 Read 工具读取,禁止手动编写 Python 脚本解析 |
每一步必须在前一步完成后才能开始。禁止跳步。
运行检查凭证流程。认证未通过时按"认证"章节流程处理。
认证未通过时,停止。不要读取用户数据,不要做任何分析。
获取用户内容后,向用户确认以下信息:
pptGeneratePageLimit)light / 深色 dark,默认浅色)#004eff、橙色#f16f0b、红色#ee4646、天蓝#2197fc、紫色#8a61ec、绿色#35b13f、动态配色dynamic)requirements)在创建PPT前,必须检查用户的 AI贝余额和项目配额,并向用户确认费用后才能继续。
收到 401/403 按强制规则 5 处理。超时/500 按强制规则 6 处理。
curl -s --max-time 10 -X GET "${BASE_URL}/api/v1/agent/quota" \
-H "Authorization: Bearer ${API_KEY}"
使用 features.pptProjectCreate 的 cost 和 billingModel 计算费用:
| billingModel | 计算方式 | 示例 |
|---|---|---|
per-page | 总费用 = cost × pageCount | 生成6页PPT: 10 × 6 = 60 AI贝 |
必须在调用生成接口前向用户展示费用确认信息,并等待用户确认后才能继续:
本次操作将消耗 {totalCost} 个 AI贝(PPT/图文生成,按页计费:{cost} AI贝/页 × {pageCount} 页)
当前余额: {shellBalance} 个 AI贝
操作后余额: {shellBalance - totalCost} 个 AI贝
项目数: 已用 {projectsUsed}/{projectsLimit}
是否继续?
shellBalance < totalCost:告知用户当前 AI贝余额不足,需前往 aitubiao 网站购买会员或充值后再继续,不要继续projectsRemaining <= 0:告知用户当前项目数已满,需前往 aitubiao 网站升级会员,或在网站中删除旧项目后再继续,不要继续pageCount > pptGeneratePageLimit:告知用户请求的页数超过当前会员等级限制(最多 pptGeneratePageLimit 页),请减少页数或升级会员,不要继续只有用户明确确认费用后才能执行此步骤。
API 会在项目创建后立即返回项目地址(不等待所有页面生成完成)。用户可以通过项目地址实时查看生成进度。
curl -s --max-time 120 -X POST "${BASE_URL}/api/v1/agent/infographic/create-project" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"prompt": "<用户的主题或内容>",
"pageCount": 6,
"theme": "light",
"projectName": "我的PPT"
}'
响应格式(需解析 data 字段):
{
"code": 0,
"msg": "ok",
"data": {
"success": true,
"outlineId": "uuid...",
"project": {
"id": "cuid...",
"title": "我的PPT",
"status": "generating",
"width": 960,
"height": 540,
"projectUrl": "https://app.aitubiao.com/workspace/cuid..."
},
"quota": {
"shellCoinCost": 60,
"shellBalance": 40,
"projectsUsed": 6,
"projectsLimit": 50,
"projectsRemaining": 44,
"canCreateProject": true
},
"totalPages": 6,
"completedPages": 0,
"failedPages": 0,
"processingTime": "5000ms"
}
}
完整请求/响应格式详见 ppt-api.md。
立即向用户展示项目 URL(从 data.project.projectUrl 获取)。PPT 页面仍在后台生成中,用户可以在浏览器中打开此链接实时查看生成进度和最终效果。格式示例:
您的 PPT 项目已创建成功!页面正在后台生成中(通常需要 5-10 分钟)。
请点击下方链接实时查看生成进度和编辑 PPT: