Install
openclaw skills install @imaoda/xyqAI 生图/视频创作工具,当用需要生成或者编辑图片、视频,或者查询相关创作的时候使用,触发关键词:pippit、小云雀、xiaoyunque、xyq、生图、生视频
openclaw skills install @imaoda/xyq在使用前,你需要明确区域,以确保正确的提供服务;
当确认海外区域时,你后续调用服务端时,请留意:
当确认国内区域时,你后续调用服务端时,请留意:
本文件同目录下的 xyq.config.json 的配置文件中,海外的还是国内的相关配置是完整的,优先用完整的;本文件同目录下的 xyq.config.json 下,他们的更新周期长,他们都衍生自用户浏览器上的 cookie,换言之,当用户提供了关键的 cookie,即 本文件同目录下的 xyq.config.json 中的 oversea.sid_tt 或 domestic.sessionid_pippitcn_web 后,其他信息都可以通过相应的接口请求获取到本文件同目录下的 xyq.config.json本文件同目录下的 xyq.config.json 路径不存在,说明是初始化场景,你需要帮我创建出来,该 config 文件的初始态如下:{
"oversea": {
"sid_tt": "",
"uid": "",
"workspace_id": "",
"space_id": ""
},
"domestic": {
"sessionid_pippitcn_web": "",
"uid": "",
"workspace_id": "",
"space_id": ""
}
}
本文件同目录下的 xyq.config.json 中,在 本文件同目录下的 xyq.config.json 里路径分为:
oversea.sid_ttdomestic.sessionid_pippitcn_web有时候,用户会分享给你一个生成历史的链接,其 url 种包含 /generate-history,如下:
https://pippit-cms.bytedance.net/#/generate-history?generate_id=xxx®ion=I18N&user_id=xxx
虽然它域名是 bytedance.net,但它并不是上文提及的 cms api,但是它是一个 cms 管理后台的链接;
用户发送这个链接,通常是想指代一次生成任务,你只需要提取其中的关键信息
你可以通过 API /v1/agent/get_thread 来获取本 thread 的详情,然后回答用户的问题
当用户向你发出一个生图或者生视频的要求时,比如用户说 “帮我生成一张豆浆的图片”,此时你应该:
当用户要延续之前某次 thread 继续对话时,你只需 /v1/agent/submit_run 在延续之前的 thread_id,其他逻辑和上述要求一样。
记住如果用户有生图生视频指令,无论成功与否,你都要回复用户,给用户通知;通知用户时,如果有产物链接,请以 markdown 格式回复给用户
注:并非所有 API 调用场景都需要 uid workspace_id space_id,你只需遵循 API 要求,按需获取这些信息。
当需要这些信息事,你可以:
本文件同目录下的 xyq.config.json 中是否有 uid、workspace_id、space_id 等信息,如果有,直接使用;如果没有,需要先获取一次,然后保存到 本文件同目录下的 xyq.config.json 中;本文件同目录下的 xyq.config.json 中的存放位置也不一样当 本文件同目录下的 xyq.config.json 中没有相关信息,或者你使用接口明确这些信息不可用时候,你可以通过以下方式来获取/更新它们:
国内获取 uid workspace_id space_id 等信息的流程
https://xyq.jianying.com/commerce/v1/subscription/user_info,携带 sessionid_pippitcn_web cookie,另外 body 里放入 "aid" : 795647,然后从返回的数据中获取 uidhttps://xyq.jianying.com/api/web/v1/workspace/get_user_workspace,body 里放入 {uid},以及 header 携带 sessionid_pippitcn_web cookie,然后从返回的数据中获取 workspace_id 和 space_id海外获取 uid workspace_id space_id 等信息的流程
https://www.pippit.ai/home,一定要注意的是,get 的时候,headers 的 cookie 里一定要携带 sid_tt 这个 cookie,从你获得的 html 数据中,找到 __userInfoStringify 字符串,这个字符串内部,有 user_id (即为 uid)、workspace_id、space_id 等信息 (由于这个 html 有 200k 字符,建议你启一个 subagent 专门获取)["run_list.entry_list"](固定)当你获得了 /v1/agent/get_thread 的返回的 json 数据后,你可以按以下方式,了解其中的信息:
当你明确要提交的消息后,可以调用本文件同级 scripts/generate_submit_run_body.sh 脚本,生成提交的请求体,然后发送即可;注意,该脚本执行时,-r domestic 表示国内站 -r oversea 表示海外站,-p 是要提交的消息
关于 thread_id 如何获取:如果你是要在之前已经存在的对话中,继续提交内容,则要延续之前的 thread_id,在 scripts/generate_submit_run_body.sh 时,可额外提供 -t 参数提供你要延续的 thread_id;但如果是新对话场景,则无需提供
agent 生成的内容,并不会在 post 请求后返回,因为是一个异步的过程;例如,生成视频可能需要几分钟,而生成图片可能需要几十秒;所以,如果你需要获取内容,则要通过 /v1/agent/get_thread 接口查询;记住,你需要记得刚才的 thread_id 是啥,因为查询时,你需要提供 thread_id,才能获取到对应的内容
这个接口查询到的数据,自然包含你刚才提交的 message;