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 请求时,默认只向用户要:

  1. X-API-Key
  2. productId

其余参数由你自动生成。


输入规则

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-Id
  • Content-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

不要改写,不要补充解释,不要替换成别的说法。

不要默认再追问:

  • draftId
  • userInputs
  • config
  • summary
  • negativePrompt
  • seed
  • browserInfo
  • imagesSpace

自动生成规则

1. 自动获取 draftId

拿到 productId 后,先通过以下接口获取产品详情:

curl 'http://picospark.cn/api/products/<PRODUCT_ID>'

从返回结果中读取:

  • draftId
  • formConfig

然后再生成 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. 统计所需图片数量
  2. 用户可以一次性或分批黏贴 1-N 张图片,无需命名或排序
  3. 每次收到新图片后,重新计算剩余数量并提示:"还要贴 X 张图"
  4. 达到所需张数后,自动按 formConfig 中 image 字段顺序映射已有图片
  5. 将图片写入当前目录的 imagesSpace/<productId>/<变量名>/
  6. 用保存后的文件路径构造 imagesSpace JSON

输出格式

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-Key
  • productId

但如果当前对话里已经输入过合法的 X-API-Key

  • 不要再次追问 X-API-Key
  • 先输出:
已经输入过X-API-Key

当追问 productId 时,同时输出:

http://picospark.cn/home 查看产品对应的productId

如果生成的是非图片产品请求,在输出完整 curl 后,再补一句:

是否继续

场景 2:用户说“只给请求头”

只追问:

  • X-API-Key

然后输出请求头。

场景 3:用户说“生成 task 请求”

追问:

  • X-API-Key
  • taskId

但如果当前对话里上一条 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 请求),就只输出那一部分
    Good AI Tools