Skip to content

工作流流式执行

接口信息

接口地址:/api/v1/workflow/{id}/streamExecute

请求方式:POST

请求数据类型:application/json

响应数据类型:text/event-stream

接口描述:

流式运行指定的工作流,请求体为动态参数,根据工作流定义的入参传递。响应为 Server-Sent Events (SSE) 流

请求示例:

javascript
{
  "question": "用户输入的问题"
}

请求参数

请求头

参数名类型必填描述示例值
AuthorizationstringAPI KeyBearer ak-xxxxeyJhbGciOiJIUzI1NiJ9

路径参数:

参数名称参数说明是否必须数据类型
id工作流IDinteger(int64)

请求体参数:

动态参数,根据工作流定义的入参传递对应的 key-value 键值对。

响应参数:

响应为 Server-Sent Events (SSE) 格式的文本流,每个事件包含工作流执行的中间结果。

CURL示例

shell
curl 'http://127.0.0.1:8081/api/v1/workflow/20/streamExecute' \
  -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ak-d1f2129c4ba24629b8448af3354f9dd0' \
  --data-raw '{"question": "用户输入问题"}'

测试用例

#场景结果
1流式执行已发布的工作流成功,返回 SSE 事件流
2流式执行不存在或未发布的工作流失败,返回错误响应

TS模板示例

ts
/** 
 * 工作流流式执行
 * @param {number} id - 工作流ID
 * @param {Record<string, unknown>} params - 工作流动态入参
 * @returns
 */
export function streamExecuteWorkflow(id: number, params: Record<string, unknown>): Promise<void> {
  return request.post(`/api/v1/workflow/${id}/streamExecute`, params, {
    responseType: 'text',
    onDownloadProgress: (event) => {
      // 处理 SSE 事件流
      const chunk = event.currentTarget.response;
      // 解析 SSE 格式: data: {...}
    }
  });
}