Skill 流式调用(36 配置)
POST/v1/skills/stream
使用平台 API Key 调用 Skill,以 SSE 返回流式结果。 文档按以下 36 个固定配置拆分展示:
- fashion-campaign-director(Aris岚岚-AI创意总监)
- street-style-photographer(Wesley扎克-AI街拍摄影师)
- icon-designer(Soren阿尚-AI时尚设计师)
- beauty-photography-master(Astor宝哥-AI香水大师)
- beverage-photography(Kairos老玖-AI酒水饮料拍摄大师)
- ecom_shoe_image_shotlist(Modus阿步-AI鞋靴电商专家)
- app-beauty-storyboard-artist(Aura-7雯雯-AI美妆分镜大师)
- beverage-ecom-detail-page(Ayn阿饮-AI饮料详情页生成专家)
- home-appliance-detail-page(Adian阿电-AI家电详情页生成专家)
- product-animation-video(Kara贝贝-AI产品动画视频导演)
- xhs-kol-product-photos(Willa丸辣-AI种草图生成专家)
- appliance-photography(Elias伊亮-AI小家电大片拍摄专家)
- fashion-shoot(Viora布布拍-AI女装拍摄专家)
- kidswear-photography-master(Tania童童-AI童装拍摄专家)
- product-motion(Nina倪娜-AI商品动效生成专家)
- app-ppt-structure-preserving-polisher(Mia美小妹-AI PPT美化专家)
- ai-comic-drama-screenwriter(Belle边边-AI漫剧剧本创作专家)
- social-media-creator-ops(Yvonne莹莹-AI 社媒全案运营专家)
- ai-comic-drama-video(Mann小曼-AI漫画视频生成专家)
- ai-comic-drama-role-image(Sylvia大萱-AI漫剧角色设计专家)
- xiaohongshu-content-expert(Blade大块头-AI鞋服 小红书图文专家)
- brand-content-strategy(Roy 阿略-AI内容策略专家)
- generic-ai-koc(Awon阿旺-AI虚拟达人定制专家)
- mixed-editing-sop-portable-flat-with-voice(Carter卡特-AI批量混剪专家)
- app-video-remix-prep(Pat帕特-AI批量成片拆条专家)
- app-data-analysis-orchestrator(Yuyu云云-AI 电商数据分析专家)
- app-live-stream-analysis-master(Tutu涂涂-AI直播数据分析专家)
- app-fancy-ops-review-delivery(Kitty阿猫-淘宝内容数据分析专家)
- app-ppt-framework-master-genready-colleague(Fenton阿峰-PPT逻辑框架设计专家)
- app-mall-leasing-proposal-master(Sion商商-AI招商方案策划专家)
- snacks-product-video(Candy糖小柔—休闲零食视频生成专家)
- skincare-kol-product-video(Mancy曼汐—护肤品KOL视频生成专家)
- fizzy-drink-product-video(Chase阿澈—气泡补水视频生成专家)
- women-clothing-detail-page(Shana香香—女装详情页生成专家)
- fizzy-drink-kol-video(Bubble泡泡—气泡水KOL视频生成专家)
- kidswear-detail-page(Togen童匠—童装详情页生成专家)
- app-fashion-product-video(Easeen衣见—AI服装视频生成专家)
- app-footwear-product-video(Wanford望步—AI鞋类视频生成专家)
- app-alcohol-product-video(Orin小屿—AI酒类视频生成专家)
- app-product-manager(Product Manager-指南针)
- app-backend-engineer(Backend Engineer-服务匠)
- app-frontend-engineer(Frontend Engineer-界面匠)
- app-qa-test-engineer(QA Test Engineer-质检官)
- app-devops-sre-engineer(Devops Sre Engineer-发布官)
- app-software-architect(Software Architect-蓝图师)
Request
Responses
- 200
- 400
- 401
- 402
- 403
SSE 流式返回
请求体无效、缺少 skill_key,或 prompt 与 attachments 同时为空。
API Key 无效或缺失
余额不足
API Key 已停用、过期,或无权调用该 Skill。
SSE 流式返回事件说明(通用)
SSE 每条业务消息都通过 data: {json}\n\n 推送,客户端按顶层 type 解析。
type | 含义 | 前端处理建议 |
|---|---|---|
system | 流初始化事件(通常 subtype=init) | 提取平台下发的 session_id,后续请求必须带上 |
assistant | 助手输出内容块(文本/图片/thinking 等) | 作为主消息流渲染 |
user | 工具执行输出 | 建议标记为“工具输出”,不要当作用户手输内容 |
file_upload_request | 请求用户上传图片或文件 | 展示上传入口,上传完成后将文件 URL 组织进下一轮 attachments,并携带同一 session_id 继续调用 /v1/skills/stream |
ask_user_question | 请求用户回答问题或选择选项 | 展示问题和选项,收集答案后组织进下一轮 prompt,并携带同一 session_id 继续调用 /v1/skills/stream |
token_stats | 本轮 token 用量增量(输入/输出/缓存) | 用于展示用量,不要当助手正文渲染。收到后立即扣费 |
turn_media_stats | 本次新扣费的生成图片/视频 | 用于展示用量,不要当助手正文渲染。收到后立即扣费。会话总量自行累加 |
result | 本轮成功结束信号 | 停止流式拼接,进入完成态 |
error | 本轮失败结束信号 | 停止流式拼接,提示错误并允许重试 |
done | 可选的结束提示 | 可用于关闭 loading,但业务完成仍以 result / error 为准 |
heartbeat | 保活事件(JSON data,约每 15 秒一次) | 忽略业务渲染 |
low_balance | 余额低于 Skill 阈值(可能在本轮结束后下发) | 提示充值,不要当流失败处理 |
接入扣费流程
能收到的用量事件就是该记账的增量。把收到的事件累加即可,不要从 assistant 正文抠 URL 计费。
- 第一轮
POST /v1/skills/stream不必传session_id。 - 收到
system:存下session_id,后续请求都带上。 - 收到
token_stats:按事件里的inputTokens/outputTokens/ 缓存字段立即记账(本段增量)。 - 收到
turn_media_stats:按media_summary.image_count、video_count以及images/videos立即记账(本次新扣的图/视频)。没有新素材时不会下发这条。 - 流断开:用同一把 Key 调用
GET /v1/skills/usage?session_id=...对账;重连带上该session_id,已扣过的图/视频不会再下发。
本地落账时可用 billing_event_id 做幂等键。
补充说明:
- 流中会定期收到
{"type":"heartbeat"},用于保活,忽略业务渲染即可。 - 流结束时可能出现
data: [DONE],按传输结束处理,不是业务事件。 - 用户补充输入(回答追问、回传上传结果等)通过下一轮
POST /v1/skills/stream继续,并带上同一session_id。 - 对未知
type做“可观测但不阻断”处理(记录日志 + 忽略渲染)。流中还可能出现stream_event等额外事件,同样忽略渲染。 token_stats/turn_media_stats是本轮/本段增量,会话总量需自行累加。用量事件会带上request_id、session_id、sequence(同一次 HTTP 请求内递增)、billing_event_id、billing_mode: "delta"、billable。turn_media_stats只在本次有新的图片/视频 URL 扣费时下发。media_summary.images/videos以及数量就是本次扣费内容。已扣过的 URL 在重连时不会再下发、也不会再扣。- 收到用量事件时按事件实时扣费;整段流都没有这两类事件时,才在流结束时按汇总用量扣费。
- 第一轮不必自带
session_id。从首个system事件取出平台下发的session_id,后续请求必须带上。SSE 建连成功后立刻记下响应头X-Oneapi-Request-Id。若连接中断但已经扣费,用同一把 API Key 调用GET /v1/skills/usage。优先用下发的session_id;已读到响应头可用request_id;billing_event_id只能对上已经收到的那一条用量事件。
file_upload_request 示例:
{
"type": "file_upload_request",
"questionId": "d7078aab-b67a-427d-ac0c-a87bb7e07dcf",
"uploads": [
{
"prompt": "上传您的服装或 lookbook 图片即可开始(JPG/PNG,支持多张)",
"header": "服装图片",
"accept": "image/*",
"description": "支持 JPG、PNG、WebP 格式"
}
]
}
ask_user_question 示例:
{
"type": "ask_user_question",
"toolUseId": "eabec243-a985-458d-a3e0-50f7fa8e128e",
"questionId": "eabec243-a985-458d-a3e0-50f7fa8e128e",
"questions": [
{
"question": "今天由哪位大师为你设计?",
"header": "选择你的大师",
"options": [
{
"label": "可可·香奈儿",
"value": "Coco Chanel",
"description": "通过简约解放身体——释放身体,磨砺心智"
},
{
"label": "克里斯汀·迪奥",
"value": "Christian Dior",
"description": "新风貌——女性美的建筑学"
}
]
}
]
}
token_stats 示例:
{
"type": "token_stats",
"turn_id": "turn-1",
"inputTokens": 500,
"outputTokens": 100,
"cacheReadInputTokens": 0,
"cacheCreationInputTokens": 0,
"request_id": "req-123",
"session_id": "sess_abc123",
"sequence": 1,
"billing_event_id": "skill:req-123:sess_abc123:turn-1:token_stats:1",
"billing_mode": "delta",
"billable": true
}
turn_media_stats 示例:
{
"type": "turn_media_stats",
"turn_id": "turn-1",
"media_summary": {
"image_count": 1,
"video_count": 1,
"images": [
{
"url": "https://assets.example.com/a.png"
}
],
"videos": [
{
"url": "https://assets.example.com/v.mp4",
"duration_seconds": 3.5
}
]
},
"request_id": "req-123",
"session_id": "sess_abc123",
"sequence": 2,
"billing_event_id": "skill:req-123:sess_abc123:turn-1:turn_media_stats:2",
"billing_mode": "delta",
"billable": true
}