執行工作流程
執行工作流程
啟用工作流程 API 並建立 API Key 後,您可以透過 API 請求輸入調用工作流程並取得執行結果。
方法
POST
URL
https://api-${endpoint}.gptbots.ai/v1/workflow/invoke
認證
您可以參考 API 概述 取得授權驗證相關說明。
請求
範例
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/workflow/invoke' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"userId": "<your_user_id>",
"input": {
<your_workflow_input_params>
},
"isAsync": true,
"webhook": [
{
"method": "POST",
"url": "https://example-1.com",
"headers": {
"Accept": "application/json",
"Authorization": "Bearer <your_token>"
}
},
{
"method": "GET",
"url": "https://example-2.com?fr=google",
"headers": {
"Accept": "application/json",
"Authorization": "Bearer <your_token>"
}
}
]
}'
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/workflow/invoke' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"userId": "<your_user_id>",
"input": {
<your_workflow_input_params>
},
"isAsync": true,
"webhook": [
{
"method": "POST",
"url": "https://example-1.com",
"headers": {
"Accept": "application/json",
"Authorization": "Bearer <your_token>"
}
},
{
"method": "GET",
"url": "https://example-2.com?fr=google",
"headers": {
"Accept": "application/json",
"Authorization": "Bearer <your_token>"
}
}
]
}'
此代碼塊在浮窗中顯示
標頭
| 欄位 | 類型 | 必填 | 描述 |
|---|---|---|---|
| Authorization | Bearer ${API Key} | 是 | 使用 Authorization: Bearer ${API Key} 進行授權驗證;API Key 可於 API Keys 頁面取得。 |
| Content-Type | application/json | 是 | 資料類型,固定值為 application/json。 |
主體
| 欄位 | 類型 | 必填 | 描述 |
|---|---|---|---|
| userId | String | 否 | 用於標記本次請求的使用者 ID。 |
| input | Object | 是 | 工作流程 "start" 節點的輸入。此物件需包含與 "start" 節點配置一致的輸入參數結構。 |
| isAsync | Boolean | 否 | 是否以非同步方式執行。 - true:非同步執行- false(預設):同步執行說明:若為 true,可透過「查詢工作流程運行結果」取得結果,或將結果發送至 Webhook(Web 鉤子)指定的網址,兩種方式可並行使用。 |
| webhook | Array Object | 否 | 執行非同步操作時,可將工作流程執行結果發送至指定的 Webhook(Web 鉤子),最多可定義 5 個項目。 |
| webhook[].method | String | 是 | Webhook 請求方法。 |
| webhook[].url | String | 是 | Webhook URL(地址)。 |
| webhook[].headers | Object | 否 | Webhook 請求標頭,可依需求自訂。 |
回應
範例
若為同步執行,回傳結果如下:
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"input": {
"topic": "News"
},
"output": {
"news": [
{
"summary": "致命車禍導致 Haleiwa 主要高速公路封閉。根據緊急醫療服務部門,救護人員於週三早上趕赴事故現場。",
"media": "Hawaii News Now",
"title": "Hawaii News Now - 即時新聞、最新消息、天氣與交通"
},
{
"summary": "夏威夷犯罪:65 歲男子在 Waikīkī 襲擊中重傷。Jamil Hart 在 Mililani 謀殺案中被判有罪。HPD 突襲 Nanakuli 非法賭博房。",
"media": "KHON2",
"title": "KHON2:夏威夷新聞、天氣、體育、突發新聞與即時"
}
]
},
"workflowExecutionTime": 8347,
"status": "SUCCEED",
"totalCost": 0.6928,
"totalTokens": 1745,
"startTime": 1758765323024,
"endTime": 1758765331373
}
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"input": {
"topic": "News"
},
"output": {
"news": [
{
"summary": "致命車禍導致 Haleiwa 主要高速公路封閉。根據緊急醫療服務部門,救護人員於週三早上趕赴事故現場。",
"media": "Hawaii News Now",
"title": "Hawaii News Now - 即時新聞、最新消息、天氣與交通"
},
{
"summary": "夏威夷犯罪:65 歲男子在 Waikīkī 襲擊中重傷。Jamil Hart 在 Mililani 謀殺案中被判有罪。HPD 突襲 Nanakuli 非法賭博房。",
"media": "KHON2",
"title": "KHON2:夏威夷新聞、天氣、體育、突發新聞與即時"
}
]
},
"workflowExecutionTime": 8347,
"status": "SUCCEED",
"totalCost": 0.6928,
"totalTokens": 1745,
"startTime": 1758765323024,
"endTime": 1758765331373
}
此代碼塊在浮窗中顯示
若為非同步執行,API 會立即回傳如下內容:
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"status": "PENDING"
}
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"status": "PENDING"
}
此代碼塊在浮窗中顯示
您可使用取得的 workflowRunId 非同步查詢執行結果。
主體
| 欄位 | 類型 | 描述 |
|---|---|---|
| workflowId | String | 工作流程 ID。 |
| workflowName | String | 工作流程名稱。 |
| workflowVersion | String | 工作流程版本號。 |
| workflowRunId | String | 工作流程執行 ID,用於唯一標識本次執行。 |
| input | Object | "start" 節點的輸入,與請求內容相同。 |
| output | Object | "end" 節點的輸出,包含工作流程執行結果。 |
| workflowExecutionTime | Number | 工作流程執行所花費的時間(毫秒)。 |
| status | String | 工作流程調用狀態,可能值: - SUCCEED:成功 - FAILED:失敗 - PENDING:排隊中 - RUNNING:執行中 |
| totalCost | Number | 本次執行的總點數成本。 |
| totalTokens | Number | 本次執行消耗的總 Token 數。 |
| startTime | Number | 開始時間戳(毫秒)。 |
| endTime | Number | 結束時間戳(毫秒)。 |
