> 技术文档 > 通过python API来调用扣子coze的工作流(支持文件上传)_扣子api

通过python API来调用扣子coze的工作流(支持文件上传)_扣子api


1.工作流的输入为普通文本时

在coze建立工作流并发布之后,用API的方式来调用,python代码如下:

import requestsimport json# API URLurl = \'https://api.coze.cn/v1/workflow/run\'# Headersheaders = { \'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# Headersheaders = { \'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