API介绍

API开发模式适用于有一定开发能力的用户,可以通过API接口实现自动调用现有工作流并得到返回结果。

🖥️ 开通API应用

要通过API进行工作流的调用,请在开发者API中创建应用以获得API KEY。 为避免滥用接口,每个API KEY对应的速率限制为每分钟60次调用,每名用户最多创建3个应用,我们会视情况调整。

📖 API文档

目前支持运行工作流检查工作流运行状态两个API接口。您可以在任意工作流详情页点击更多操作里的【API访问】按钮查看对应工作流的调用示例代码。

目前的 API 版本是 20240508

运行工作流

为了运行一个特定的工作流,您需要提供工作流的ID,以及输入参数(即工作流使用界面的输入内容)。对于特定工作流,您可以在工作流详情页查看由系统自动生成的示例代码,里面包含了工作流ID和输入参数节点ID等。

调用示例

  1. python
  2. import requests
  3. api_key = "YOUR_API_KEY"
  4. url = "https://vectorvein.com/api/v1/open-api/workflow/run"
  5. headers = {
  6. "VECTORVEIN-API-KEY": api_key,
  7. "VECTORVEIN-API-VERSION": "20240508"
  8. }
  9. payload = {
  10. "wid": "abcde0985736457aa72cc667f17bfc89",
  11. "output_scope": "output_fields_only",
  12. "wait_for_completion": False,
  13. "input_fields": [
  14. {
  15. "node_id": "8fc6eceb-8599-46a7-87fe-58bf7c0b633e",
  16. "field_name": "商品名称",
  17. "value": ""
  18. }
  19. ]
  20. }
  21. response = requests.post(url, headers=headers, json=payload)
  22. result = response.json()
  23. print(response.status_code)
  24. print(result)
在上述代码中的 payload 内的参数:
  • <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>代表了需要填写参数的各个输入节点,与输入界面中要填写的字段一一对应。
具体不同工作流需要填写什么参数是由工作流中的节点决定的,只有那些您选择显示在使用界面的输入参数才需要在API调用时提供。如果一个节点的某个参数不显示在使用界面,那么通过API调用工作流运行时,工作流会使用该节点的默认参数值。

返回格式

如果 <font style="color:rgb(31, 35, 40);">wait_for_completion</font> 设置为 False,当工作流运行请求成功时,返回的 JSON结果如下
  1. json
  2. {
  3. "status": 200,
  4. "msg": "success",
  5. "data": {
  6. "rid": "6b43fe264c8848c0908e56b351b71234"
  7. }
  8. }
其中 <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 检查工作流运行状态。

调用示例

  1. python
  2. import time
  3. import requests
  4. api_key = "YOUR_API_KEY"
  5. rid = "RECORD_ID"
  6. payload = {
  7. "rid": rid
  8. }
  9. url = "https://vectorvein.com/api/v1/open-api/workflow/check-status"
  10. headers = {
  11. "VECTORVEIN-API-KEY": api_key,
  12. "VECTORVEIN-API-VERSION": "20240508"
  13. }
  14. response = requests.post(url, headers=headers, json=payload)
  15. result = response.json()
  16. while result["status"] == 202:
  17. time.sleep(5)
  18. response = requests.post(url, headers=headers, json=payload)
  19. result = response.json()
  20. print(response.status_code)
  21. print(result)

返回格式

♾️ 当工作流正在运行时,返回的 JSON 结果如下
  1. json
  2. {
  3. "status": 202,
  4. "msg": "RUNNING",
  5. "data": {}
  6. }
如果工作流运行出错,则返回的 JSON 结果如下
  1. json
  2. {
  3. "status": 500,
  4. "msg": "FAILED",
  5. "data": {
  6. "error_task": "web_crawlers.bilibili_crawler"
  7. }
  8. }
其中 <font style="color:rgb(31, 35, 40);">error_task</font> 为具体出错的任务节点名称。 ✔️ 如果工作流运行成功,则返回的 JSON 结果如下
  1. json
  2. {
  3. "status": 200,
  4. "msg": "FINISHED",
  5. "data": [
  6. {
  7. "type": "Text",
  8. "title": "网址",
  9. "value": "[开源一个无代码AI工作流+本地 知识库软件:向量脉络](https://mp.weixin.qq.com/s?__biz=MzIzMTcxMDMzMg==&mid=2247484289&idx=1&sn=5b599481ef131022b5e35c2e51e61432&chksm=e8a14892dfd6c184b142db0c06cab65e5352feb7f6cf3178b6ce8162f74f06af02d8fa70175e&token=1260801520&lang=zh_CN#rd)",
  10. },
  11. {
  12. "type": "Mindmap",
  13. "title": "Mindmap",
  14. "value": "# 向量脉络产品介绍 ...",
  15. },
  16. {
  17. "type": "Text",
  18. "title": "Markdown 格式思维导图",
  19. "value": "# 向量脉络产品介绍\n## 开源版本\n- vectorvein.com ...",
  20. },
  21. {
  22. "type": "Text",
  23. "title": "抓取到的网页正文",
  24. "value": "最近做了一个无代码AI工作流+知识库的产品vectorvein.com ...",
  25. },
  26. ],
  27. }
在上面的数据中,<font style="color:rgb(31, 35, 40);">data</font> 是一个列表,里面包含了所有输出字段的具体信息,每个字段处理完成的信息都在里面。 下面是某个字段的示例内容
  1. json
  2. {
  3. "type": "Text",
  4. "title": "Markdown 格式思维导图",
  5. "value": "# 向量脉络产品介绍\n## 开源版本 ...",
  6. }
可以看到这个对应的节点类型(type)是 <font style="color:rgb(31, 35, 40);">Text</font>,其中的 <font style="color:rgb(31, 35, 40);">value</font> 就是我们需要的输出结果。 作者: 毕老师 更新时间: 2024/5/9 15:51