API介绍
API开发模式适用于有一定开发能力的用户,可以通过API接口实现自动调用现有工作流并得到返回结果。🖥️ 开通API应用
要通过API进行工作流的调用,请在开发者API中创建应用以获得API KEY。 为避免滥用接口,每个API KEY对应的速率限制为每分钟60次调用,每名用户最多创建3个应用,我们会视情况调整。📖 API文档
目前支持运行工作流及检查工作流运行状态两个API接口。您可以在任意工作流详情页点击更多操作里的【API访问】按钮查看对应工作流的调用示例代码。目前的 API 版本是 20240508
运行工作流
为了运行一个特定的工作流,您需要提供工作流的ID,以及输入参数(即工作流使用界面的输入内容)。对于特定工作流,您可以在工作流详情页查看由系统自动生成的示例代码,里面包含了工作流ID和输入参数节点ID等。调用示例
在上述代码中的 payload 内的参数:
python
import requests
api_key = "YOUR_API_KEY"
url = "https://vectorvein.com/api/v1/open-api/workflow/run"
headers = {
"VECTORVEIN-API-KEY": api_key,
"VECTORVEIN-API-VERSION": "20240508"
}
payload = {
"wid": "abcde0985736457aa72cc667f17bfc89",
"output_scope": "output_fields_only",
"wait_for_completion": False,
"input_fields": [
{
"node_id": "8fc6eceb-8599-46a7-87fe-58bf7c0b633e",
"field_name": "商品名称",
"value": ""
}
]
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
print(response.status_code)
print(result)
<font style="color:rgb(31, 35, 40);">wid</font>
为工作流ID<font style="color:rgb(31, 35, 40);">output_scope</font>
可设置为 ‘all’ 或 ‘output_fields_only’- ‘all’ 会返回工作流的所有输出结果,包括不呈现在输出节目的节点结果。
- ‘output_fields_only’ 仅返回输出界面中的工作流节点结果。
<font style="color:rgb(31, 35, 40);">wait_for_completion</font>
可设置为 True 或 False- True 会等待工作流运行完成后返回结果
- False 会立即返回工作流运行记录ID,您可以通过该ID检查工作流运行状态
<font style="color:rgb(31, 35, 40);">input_fields</font>
代表了需要填写参数的各个输入节点,与输入界面中要填写的字段一一对应。
返回格式
如果<font style="color:rgb(31, 35, 40);">wait_for_completion</font>
设置为 False,当工作流运行请求成功时,返回的 JSON结果如下
其中
json
{
"status": 200,
"msg": "success",
"data": {
"rid": "6b43fe264c8848c0908e56b351b71234"
}
}
<font style="color:rgb(31, 35, 40);">rid</font>
为工作流运行记录的 ID,您可以通过该ID检查工作流运行状态。
如果 <font style="color:rgb(31, 35, 40);">wait_for_completion</font>
设置为 True,则会一直等待到工作流运行完成后返回最终结果。注意同步方式最多等待 30 秒,如果超时未完成会返回工作流运行记录 ID,您可以通过该 ID 检查工作流运行状态。
### 检查工作流运行状态
当得到工作流运行记录的 ID 后,您可以通过该 ID 检查工作流运行状态。
调用示例
python
import time
import requests
api_key = "YOUR_API_KEY"
rid = "RECORD_ID"
payload = {
"rid": rid
}
url = "https://vectorvein.com/api/v1/open-api/workflow/check-status"
headers = {
"VECTORVEIN-API-KEY": api_key,
"VECTORVEIN-API-VERSION": "20240508"
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
while result["status"] == 202:
time.sleep(5)
response = requests.post(url, headers=headers, json=payload)
result = response.json()
print(response.status_code)
print(result)
返回格式
♾️ 当工作流正在运行时,返回的 JSON 结果如下❌ 如果工作流运行出错,则返回的 JSON 结果如下
json
{
"status": 202,
"msg": "RUNNING",
"data": {}
}
其中
json
{
"status": 500,
"msg": "FAILED",
"data": {
"error_task": "web_crawlers.bilibili_crawler"
}
}
<font style="color:rgb(31, 35, 40);">error_task</font>
为具体出错的任务节点名称。
✔️ 如果工作流运行成功,则返回的 JSON 结果如下
在上面的数据中,
json
{
"status": 200,
"msg": "FINISHED",
"data": [
{
"type": "Text",
"title": "网址",
"value": "[开源一个无代码AI工作流+本地 知识库软件:向量脉络](https://mp.weixin.qq.com/s?__biz=MzIzMTcxMDMzMg==&mid=2247484289&idx=1&sn=5b599481ef131022b5e35c2e51e61432&chksm=e8a14892dfd6c184b142db0c06cab65e5352feb7f6cf3178b6ce8162f74f06af02d8fa70175e&token=1260801520&lang=zh_CN#rd)",
},
{
"type": "Mindmap",
"title": "Mindmap",
"value": "# 向量脉络产品介绍 ...",
},
{
"type": "Text",
"title": "Markdown 格式思维导图",
"value": "# 向量脉络产品介绍\n## 开源版本\n- vectorvein.com ...",
},
{
"type": "Text",
"title": "抓取到的网页正文",
"value": "最近做了一个无代码AI工作流+知识库的产品vectorvein.com ...",
},
],
}
<font style="color:rgb(31, 35, 40);">data</font>
是一个列表,里面包含了所有输出字段的具体信息,每个字段处理完成的信息都在里面。
下面是某个字段的示例内容
可以看到这个对应的节点类型(type)是
json
{
"type": "Text",
"title": "Markdown 格式思维导图",
"value": "# 向量脉络产品介绍\n## 开源版本 ...",
}
<font style="color:rgb(31, 35, 40);">Text</font>
,其中的 <font style="color:rgb(31, 35, 40);">value</font>
就是我们需要的输出结果。
作者: 毕老师
更新时间: 2024/5/9 15:51