我们在机器人里面引用工作流,当然也可以通过 API 直接调用工作流,coze 也提供了这一套的 API 接口。coze 的 API 接口肯定也不只是接入工作流,Bots,文件,知识库等,都有相关接口。这个文档我们也只专注在工作流的 API 接口调用上,我们之后也会补充其他形式的 API 接口调用,尤其是对话的。
1. 创建授权
https://www.coze.cn/open/oauth/pats
所有的 API 请求都必须在请求头的 Authorization 参数中包含你的访问令牌(Access Token)。
我们这边只用来测试和调试,所以选择个人访问令牌,如果是生产的那种还是要选择 OAuth 令牌。个人访问令牌需要设置:
- 名称
- 过期时间
- 开通的权限:了每个模块里面有具体的细的权限,比如创建 bot 这种。
注意:创建好的令牌,会以弹窗形式展示,且只展示一次,要保存好。
2. 调用工作流参数
调用工作流有 3 个,执行工作流,执行工作流(流失响应),恢复运行工作流。后面 2 个明显是对话型的,跟我们之前的不符,所以我们用第一种的就可以了。
调用条件
-
已经发布的工作流
-
令牌开启工作流 run 的权限
-
不支持通过此 API 执行包括以下节点的工作流
- 消息节点
- 开启了流式输出的结束节点
- 问答节点
请求地址
POST:https://api.coze.cn/v1/workflow/run
Header
参数 | 取值 | 说明 |
---|---|---|
Authorization | Bearer $Access_Token | 用于验证客户端身份的访问令牌,根据步骤 1 就可以生成了 |
Content-Type | application/json | 解释请求正文的方式。 |
Body
我就列出来需要用到的字段,详细的见 https://www.coze.cn/docs/developer_guides/workflow_run#7232055f
workflow_id
类型:String
是否可选:必选
说明:
已发布的工作流 ID,此 ID 在工作流编译页面的 URL 可以看到。如下图,workflow id 就是 73***47
parameters
类型:json object
是否可选:可选
说明:
就是工作流开始节点的传参,如果有必填的参数,这个 parameters 就必须要传
响应字段
参数 | 类型 | 说明 |
---|---|---|
code | Integer | 调用状态码。 0 表示调用成功。 其他值表示调用失败。你可以通过 msg 字段判断详细的错误原因。 |
msg | String | 状态信息。API 调用失败时可通过此字段查看详细错误信息。 |
data | String | 工作流执行结果,通常为 JSON 序列化字符串,部分场景下可能返回非 JSON 结构的字符串。 |
debug_url | String | 就是工作流试运行的结果页面,可以在这里,看每个节点的输入和输出 |
token | Integer | 预留字段,无需关注。 |
cost | String | 预留字段,无需关注。 |
3. 示例
curl --location 'https://api.coze.cn/v1/workflow/run' \
--header 'Authorization: Bearer pat_wnYsF9b8yptspzZgRiRNdNo' \
--header 'Content-Type: application/json' \
--data '{
"workflow_id":"7398147",
"parameters": {
"app_id":"fd3a68cb4",
"app_secret": "8cd697584",
"file_url":"https://nan.mp3?q-sign-algorithm=sha1&q-ak=AKIDK0KlmmalwSAkmJBRT_erx-b_BryIgsYPxmTm0HvmhuXQu9EamTIHS0eWuMn5TSg3&q-sign-time=1724914917;1724918517&q-key-time=1724914917;1724918517&q-header-list=host&q-url-param-list=&q-signature=236c79445ebc243c9aac40d9763f4baed2d52dfa&x-cos-security-token=DJtmN5Jcau4LZJ4a0pSQsH5NmjXBupGa039e275dfbdb83cd8e9a8c21c54e5f83USChUjnaEEk2jFkZgo3fmVskxICCOi36fGTmC3zsFdTTjrcwERxVFoApbMStOVgKhkOj6uD_OGHjAkMpo_PCY90em7XWIymODi4EpDcc410u8ZHDEKBJmEqjAbrTGZ0-Wpp9VtuSl2G4kMamp4L0hmfJyz2PcZf3osSsOU8MrYXSmedGh79wpjcLVIJbOlrZ",
"ext": "wav"
}
}'
返回的 data 里面是一个 json 格式的结构,这个似乎没有标准输出,只能看每个工作流输出什么东西,再去做修改。
到这里 Coze 的部分就结束了,下面我们就看看在 Dify 里面是怎么创建插件,工作流,API 调用的,Coze使用开放平台接口-【6】Dify 也来一遍。