Skip to content

工作流执行

执行已发布的工作流,并返回执行结果。支持两种响应模式:

  • blocking:同步等待执行完成后返回 JSON

  • streaming:通过 SSE 持续返回执行事件

  • 接口路径:POST /v1/openapi/workflow/invoke

请求头

参数名必填说明
Content-Typeapplication/json
Authorization鉴权凭证,格式 Bearer sk_xxx

请求参数

json
{
  "workflow_id": "1368b2d9-60ff-48fc-9f14-0c39711896ef",
  "input": {"input": "华西"},
  "parameters": {"input": "华西"},
  "response_mode": "blocking"
}
参数名类型必填说明
workflow_idstring(uuid)工作流 ID,必须是合法 UUID
inputany工作流输入参数,优先级高于 parameters
parametersany兼容字段;当 input 未传时作为工作流输入
response_modestringblockingstreaming;不传时默认为 streaming

输入归一化规则

服务端会将 inputparameters 归一化为 map[string]any 后执行工作流。

传入值实际输入
input 未传且 parameters 未传{"input": ""}
inputnullparameters 有值使用 parameters
{}{"input": ""}
"hello"{"input": "hello"}
"{\"city\":\"上海\"}"{"city": "上海"}
{"city":"上海"}原样透传
数字、布尔、数组等其他 JSON 值{"input": value}

blocking 响应

response_mode=blocking 时,接口同步返回执行结果。

成功响应

json
{
  "code": 200,
  "message": "success",
  "data": {
    "workflow_id": "1368b2d9-60ff-48fc-9f14-0c39711896ef",
    "execute_id": "fe421aca-d4d8-4084-b1b8-4e107bf4d4c2",
    "status": "success",
    "output": {
      "output": "华西通常指四川大学华西医院。"
    },
    "final_output": "华西通常指四川大学华西医院。",
    "token": 202,
    "cost": "0.00000"
  },
  "trace_id": "e3302bb5788035dec7160e58d2261824"
}
字段类型说明
workflow_idstring(uuid)工作流 ID
execute_idstring(uuid)本次执行 ID
statusstring执行状态,成功为 success
outputobject工作流完整输出
final_outputany对外最终结果;优先取 output.output,其次取 output.result,单字段输出时取唯一字段值
tokenint64本次执行总 token
coststring成本信息

失败响应

json
{
  "code": 0,
  "message": "工作流运行失败",
  "data": null,
  "trace_id": "e3302bb5788035dec7160e58d2261824"
}

常见业务失败包括:

  • 无效的workflow_id
  • 无效的response_mode参数, 只支持blocking或streaming
  • 工作流执行失败时返回具体失败信息

streaming 响应

response_mode=streamingresponse_mode 未传时,返回 SSE 事件流。

SSE 响应头

text
Content-Type: text/event-stream; charset=utf-8
Cache-Control: no-cache
Connection: keep-alive
X-Accel-Buffering: no

事件格式

text
id: <message_id>
event: <event_name>
data: <json_payload>

事件类型

事件名说明
Message工作流输出内容
NodeStart节点开始执行
NodeEnd节点执行结束
Done工作流成功结束
Error工作流失败或取消
Interrupt工作流中断等待处理
errorSSE 读取异常

事件字段

不同事件会返回不同字段,客户端应按需读取。

字段类型说明
execute_idstring(uuid)执行 ID
workflow_idstring(uuid)工作流 ID
statusstring工作流或节点状态
contentstringMessage 事件的输出内容
content_typestring内容类型,当前常见为 text
node_seq_idstring同一节点内的消息序号
node_idstring节点 ID
node_is_finishbool当前节点输出是否结束
node_typestring节点类型
node_titlestring节点标题
node_statusstring节点状态,常见为 runningsuccessfail
inputany节点输入
outputany节点输出
raw_outputany节点原始输出
durationint64节点耗时,单位毫秒
error_infostring节点错误信息
error_levelstring错误级别
tokenint64token 总数
token_infoobjecttoken 明细,见下方 token_info 字段说明
debug_urlstring调试链接
error_codeint64错误码
error_messagestring错误信息
interrupt_dataobject中断事件数据,见下方 interrupt_data 字段说明

token_info 字段说明

字段类型说明
input_tokensint64输入 token 数
output_tokensint64输出 token 数
total_tokensint64总 token 数

interrupt_data 字段说明

字段类型说明
event_idstring中断事件 ID,格式为 {execute_id}/{interrupt_event_id}
typeint64中断事件类型,1-问题中断,2-输入节点中断,100-LLM 中断
datastring中断数据

SSE 示例

text
id: 0
event: NodeStart
data: {"execute_id":"fe421aca-d4d8-4084-b1b8-4e107bf4d4c2","workflow_id":"1368b2d9-60ff-48fc-9f14-0c39711896ef","content_type":"text","node_seq_id":"0","node_id":"start","node_is_finish":false,"node_type":"Start","node_title":"开始","node_status":"running","input":{"input":"华西"}}

id: 1
event: Message
data: {"execute_id":"fe421aca-d4d8-4084-b1b8-4e107bf4d4c2","workflow_id":"1368b2d9-60ff-48fc-9f14-0c39711896ef","content":"华西通常指四川大学华西医院。","content_type":"text","node_seq_id":"0","node_id":"answer","node_is_finish":false,"node_type":"Answer","node_title":"回复","token":202,"token_info":{"input_tokens":31,"output_tokens":171,"total_tokens":202}}

id: 2
event: Done
data: {"execute_id":"fe421aca-d4d8-4084-b1b8-4e107bf4d4c2","workflow_id":"1368b2d9-60ff-48fc-9f14-0c39711896ef","status":"success","debug_url":"/workflow/debug?execute_id=fe421aca-d4d8-4084-b1b8-4e107bf4d4c2&workflow_id=1368b2d9-60ff-48fc-9f14-0c39711896ef"}

中断示例

text
id: 3
event: Interrupt
data: {"execute_id":"fe421aca-d4d8-4084-b1b8-4e107bf4d4c2","workflow_id":"1368b2d9-60ff-48fc-9f14-0c39711896ef","status":"interrupted","debug_url":"/workflow/debug?execute_id=fe421aca-d4d8-4084-b1b8-4e107bf4d4c2&workflow_id=1368b2d9-60ff-48fc-9f14-0c39711896ef","interrupt_data":{"event_id":"fe421aca-d4d8-4084-b1b8-4e107bf4d4c2/01965de1-1920-7fe4-aa38-2e6836c46f22","type":1,"data":"..."}}

调用示例

blocking

bash
curl -X POST 'https://runtime-api.invalid/v1/openapi/workflow/invoke' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sk_your_api_key' \
  -d '{
    "workflow_id": "1368b2d9-60ff-48fc-9f14-0c39711896ef",
    "input": {"input": "华西"},
    "response_mode": "blocking"
  }'

streaming

bash
curl -N -X POST 'https://runtime-api.invalid/v1/openapi/workflow/invoke' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sk_your_api_key' \
  -d '{
    "workflow_id": "1368b2d9-60ff-48fc-9f14-0c39711896ef",
    "parameters": {"input": "华西"},
    "response_mode": "streaming"
  }'

AI 应用开发平台 - 面向医疗场景的 AI 应用创新引擎