PicoSparkInvoke
stars:0
forks:0
watches:0
last updated:N/A
PicoSparkInvoke
用于生成并按需执行以下本地接口:
GET http://picospark.cn/api/products/{productId}
POST http://picospark.cn/api/generate/image/product
GET http://picospark.cn/api/generate/tasks/{taskId}
核心目标
把用户输入压缩到最少。
生成 product 请求时,默认只向用户要:
X-API-KeyproductId
其余参数由你自动生成。
输入规则
0. 第一次加载时固定提示
当这个 skill 在当前对话中第一次被调用、且尚未进入具体参数收集前,先输出这句文案:
http://picospark.cn/login/getOpenApiKey上获取token
不要改写,不要补充解释,不要替换成别的说法。
1. 只提示输入一个请求头字段
请求头只向用户追问:
X-API-Key
如果当前对话中用户已经输入过合法的 X-API-Key,则在下次启动该 skill 时:
- 不要再次向用户索取
X-API-Key - 先输出这句文案:
已经输入过X-API-Key
不要改写,不要补充解释,不要替换成别的说法。
不要再向用户索取:
X-External-User-IdContent-Type
2. 从 X-API-Key 自动解析 userId
当 key 形如:
user_<userId>.<secret>
例如:
user_2044005440009797632.xxxxx
则自动解析出:
2044005440009797632
并生成:
-H 'X-External-User-Id: 2044005440009797632'
如果 key 不符合 user_<userId>.<secret>:
- 明确提示当前 skill 仅支持这种用户级 token
- 要求用户重新提供符合格式的 key
- 不要猜测 userId
3. 只提示输入一个业务参数
product 请求时只向用户追问:
productId
当向用户追问 productId 时,同时显示这句文案:
http://picospark.cn/home 查看产品对应的productId
不要改写,不要补充解释,不要替换成别的说法。
不要默认再追问:
draftIduserInputsconfigsummarynegativePromptseedbrowserInfoimagesSpace
自动生成规则
1. 自动获取 draftId
拿到 productId 后,先通过以下接口获取产品详情:
curl 'http://picospark.cn/api/products/<PRODUCT_ID>'
从返回结果中读取:
draftIdformConfig
然后再生成 POST /api/generate/image/product 请求。
如果拿不到 draftId:
- 明确提示无法从 product 详情自动解析 draftId
- 不要编造 draftId
1.1 自动判断需要几张参考图
从 formConfig 中统计所有 image 类型的字段数量,得出所需参考图总数。
2. 自动生成 userInputs
从 formConfig 中提取所有非 image 类型的字段,按以下规则填充:
| 类型 | 规则 |
|---|---|
| text | 使用字段的 placeholder 值 |
| area | 使用字段的 placeholder 值 |
| select | 使用默认值或第一个选项 |
3. 自动生成 config
{
"resolution": "1K",
"aspectRatio": "1:1"
}
4. 自动生成 imagesSpace
当 formConfig 包含 image 类型字段时:
- 统计所需图片数量
- 用户可以一次性或分批黏贴 1-N 张图片,无需命名或排序
- 每次收到新图片后,重新计算剩余数量并提示:"还要贴 X 张图"
- 达到所需张数后,自动按
formConfig中 image 字段顺序映射已有图片 - 将图片写入当前目录的
imagesSpace/<productId>/<变量名>/ - 用保存后的文件路径构造
imagesSpaceJSON
输出格式
1. 仅请求头
-H 'Content-Type: application/json' \
-H 'X-API-Key: <USER_PROVIDED_KEY>' \
-H 'X-External-User-Id: <PARSED_USER_ID_FROM_KEY>'
2. 仅请求体
{
"draftId": "<AUTO_FETCHED_DRAFT_ID>",
"productId": "<USER_PROVIDED_PRODUCT_ID>",
"userInputs": {
"示例字段": "示例内容"
},
"config": {
"resolution": "1K",
"aspectRatio": "1:1"
},
"imagesSpace": {
"变量名": ["file://imagesSpace/<productId>/变量名/图片文件名"]
}
}
对话行为规则
场景 1:用户只说“生成请求”
只追问:
X-API-KeyproductId
但如果当前对话里已经输入过合法的 X-API-Key:
- 不要再次追问
X-API-Key - 先输出:
已经输入过X-API-Key
当追问 productId 时,同时输出:
http://picospark.cn/home 查看产品对应的productId
如果生成的是非图片产品请求,在输出完整 curl 后,再补一句:
是否继续
场景 2:用户说“只给请求头”
只追问:
X-API-Key
然后输出请求头。
场景 3:用户说“生成 task 请求”
追问:
X-API-KeytaskId
但如果当前对话里上一条 POST /api/generate/image/product 已经返回了 taskId:
- 直接复用该
taskId生成 task 查询轮询 curl - 不要再次提示用户输入
taskId
场景 3.5:产品包含 image 字段
- 先自动判断总共需要几张图片
- 直接告诉用户当前还需要黏贴几张图片
- 每次收到新图片后,重新计算剩余数量
- 不要求用户标注
参考图1、参考图2、参考图3 - 不要求用户按变量顺序上传
- 达到所需张数后继续流程
- 按 image 字段顺序自动映射已有图片
- 同时把图片写入当前工作目录下的
imagesSpace/<productId>/<变量名>/ - 自动执行请求、轮询查询 task,并把结果图写回
imagesSpace/<productId>/
场景 4:用户说“写入某个文件”
生成内容后写入指定文件。
场景 5:用户已经给了完整信息
不要重复追问,直接输出结果。
注意事项
- 请求头只提示用户输入
X-API-Key - 如果当前对话里已经输入过合法的
X-API-Key,下次启动 skill 时不要再次索取,并输出已经输入过X-API-Key - 业务参数只默认提示用户输入
productId X-External-User-Id必须从X-API-Key自动解析draftId必须从产品详情自动获取,不要再默认向用户索取- 仅支持
user_<userId>.<secret>这种用户级 token - 除非产品包含 image 字段且用户已黏贴图片,否则默认只生成命令,不主动发请求
- 对于非图片产品,生成命令后补一句
是否继续,由用户决定是否继续执行 - 当
POST /api/generate/image/product已返回taskId时,直接生成下一条 task 轮询请求,不要再向用户索取taskId - 如果产品包含 image 类型字段,先自动统计所需图片张数;每次不足时提示"还要贴 X 张图";达到所需张数后,再按 image 字段顺序自动映射已有图片
- 图片落盘目录固定为当前工作目录下的
imagesSpace/<productId>/<变量名>/ - 如果用户只要某一部分(header / body / task 请求),就只输出那一部分
