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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐