Ejecutar el flujo de trabajo
Ejecutar el flujo de trabajo
Tras habilitar la API de flujo de trabajo y crear una API Key, se puede invocar el flujo de trabajo mediante solicitudes a la API y obtener los resultados de la ejecución del flujo de trabajo.
Método
POST
URL
https://api-${endpoint}.gptbots.ai/v1/workflow/invoke
Autenticación
Para más información, consulte el método de autenticación en la Visión general de la API.
Solicitud
Ejemplo
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>"
}
}
]
}'
Este bloque de código en una ventana flotante
Encabezados
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | Bearer ${API Key} | Y | Validación de llamadas mediante Authorization: Bearer ${API Key}. La clave se obtiene en la página API keys como API Key. |
| Content-Type | application/json | Y | Tipo de contenido; el valor es fijo: application/json. |
Cuerpo
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| userId | String | N | Se utiliza para etiquetar el ID de usuario de esta solicitud. |
| input | Object | Y | Nodo start del flujo de trabajo. Este objeto debe contener una estructura de parámetros de entrada que coincida exactamente con lo configurado en el nodo start del flujo de trabajo. |
| isAsync | Boolean | N | Define si esta solicitud se ejecuta de forma asíncrona. - true: ejecución asíncrona. - false (predeterminado): ejecución síncrona. Nota: Si es true, se puede usar «Consultar el resultado de la ejecución del flujo de trabajo» para recuperar el resultado, o se puede enviar el resultado a la dirección definida por webhook. Estos dos métodos no entran en conflicto. |
| webhook | Array | N | Al realizar una operación asíncrona, el resultado de la ejecución del flujo de trabajo se puede enviar al webhook especificado. Se pueden definir hasta 5 entradas de webhook. |
| webhook[].method | String | Y | Método de solicitud del webhook. |
| webhook[].url | String | Y | URL del webhook (dirección). |
| webhook[].headers | Object | N | Encabezados de la solicitud de webhook, que se pueden definir según sea necesario. |
Respuesta
Ejemplo
Si la ejecución es síncrona, el resultado se muestra a continuación:
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"input": {
"topic": "News"
},
"output": {
"news": [
{
"summary": "Fatal crash shuts down major highway in Haleiwa. According to Emergency Medical Services, paramedics responded to the scene of the crash Wednesday morning.",
"media": "Hawaii News Now",
"title": "Hawaii News Now - Breaking News, Latest News, Weather & Traffic"
},
{
"summary": "Hawaii Crime: Man, 65, critically injured in Waikīkī assault. Jamil Hart found guilty in Mililani murder case. HPD busts illegal gambling room in Nanakuli.",
"media": "KHON2",
"title": "KHON2: Hawaii News, Weather, Sports, Breaking News & Live"
}
]
},
"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": "Fatal crash shuts down major highway in Haleiwa. According to Emergency Medical Services, paramedics responded to the scene of the crash Wednesday morning.",
"media": "Hawaii News Now",
"title": "Hawaii News Now - Breaking News, Latest News, Weather & Traffic"
},
{
"summary": "Hawaii Crime: Man, 65, critically injured in Waikīkī assault. Jamil Hart found guilty in Mililani murder case. HPD busts illegal gambling room in Nanakuli.",
"media": "KHON2",
"title": "KHON2: Hawaii News, Weather, Sports, Breaking News & Live"
}
]
},
"workflowExecutionTime": 8347,
"status": "SUCCEED",
"totalCost": 0.6928,
"totalTokens": 1745,
"startTime": 1758765323024,
"endTime": 1758765331373
}
Este bloque de código en una ventana flotante
Si la ejecución es asíncrona, esta API devolverá el resultado inmediatamente, como se indica a continuación:
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"status": "PENDING"
}
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"status": "PENDING"
}
Este bloque de código en una ventana flotante
Se puede consultar de forma asíncrona el resultado de la ejecución utilizando el workflowRunId obtenido.
Cuerpo
| Campo | Tipo | Descripción |
|---|---|---|
| workflowId | String | ID del flujo de trabajo. |
| workflowName | String | Nombre del flujo de trabajo. |
| workflowVersion | String | Número de versión del flujo de trabajo. |
| workflowRunId | String | ID de ejecución del flujo de trabajo, utilizado para identificar de forma única esta ejecución. |
| input | Object | Entrada del nodo start, idéntica a la entrada de la solicitud. |
| output | Object | Salida del nodo end, que contiene los resultados de la ejecución del flujo de trabajo. |
| workflowExecutionTime | Number | Tiempo empleado en ejecutar el flujo de trabajo, en milisegundos. |
| status | String | Estado de la invocación del flujo de trabajo; los valores posibles incluyen: - SUCCEED: éxito - FAILED: fallo - PENDING: en cola - RUNNING: en ejecución |
| totalCost | Number | Coste total en créditos de esta ejecución. |
| totalTokens | Number | Total de tokens consumidos en esta ejecución. |
| startTime | Number | Marca de tiempo de inicio, en milisegundos. |
| endTime | Number | Marca de tiempo de fin, en milisegundos. |
