通过python API来调用扣子coze的工作流(支持文件上传)
1.工作流的输入为普通文本时
在coze建立工作流并发布之后,用API的方式来调用,python代码如下:
import requests import json # API URL url = 'https://api.coze.cn/v1/workflow/run' # Headers headers = { 'Authorization': 'Bearer pat_l0jv6QE****', # 替换为真实的token 'Content-Type': 'application/json' } # 请求数据 data = { "workflow_id": "7451****", # 替换为实际的workflow_id "parameters": { # 你的工作流的输入 "input": "你好" } } response = requests.post(url, headers=headers, data=json.dumps(data)) print(response.status_code) print(response.json()) # 如果返回的是 JSON 数据代码中Authorization的获取方式:在下图这里添加新令牌,添加后把token复制出来,记得前面的Bearer别漏了。
workflow_id的获取方式:打开你的工作流后在浏览器的地址栏可以看到。

2.工作流的输入为文件时
如需将本地文件作为工作流API的输入,因为coze工作流文件的传递是基于文件url,所以先要获得文件的url,可以使用coze官方的文件上传。
方式如下:
curl --location --request POST https://api.coze.cn/v1/files/upload \ --header "Content-Type: multipart/form-data" \ --header "Authorization: Bearer pat_*****" \ --form 'file=@"test/a.jpeg"' 或者python代码方式:
import requests # Headers headers = { 'Authorization': 'Bearer pat_******' # 替换为真实的token } def upload_file(file_path): url = "https://api.coze.cn/v1/files/upload" with open(file_path, "rb") as file: files = {"file": file} response = requests.post(url, headers=headers, files=files) print(response.status_code) return response.json() res = upload_file('test/a.jpeg') file_id = res['data']['id'] print(file_id)以上方法会将文件上传到coze的服务器,返回file_id(无法得到url),可以直接将此file_id传入到工作流中,只需将工作流的请求参数改成如下形式,以一个简单的图片内容理解工作流为例:
data = { "workflow_id": "751******", # 替换为实际的workflow_id "parameters": { # 你的工作流的输入 "question": "请描述图中的内容", "image": "{\"file_id\": \"******\"}" # 替换为实际的file_id } }工作流:



虽然image传入的是一个file_id,在调用工作流时会自动转成url,要上传其他类型的文件也是同样的方法。
参考文档:https://www.coze.cn/open/docs/developer_guides/workflow_run