Exécuter un workflow
Exécuter un workflow
Après avoir activé l'API Workflow et créé une clé API, vous pouvez invoquer le workflow via des entrées API et obtenir les résultats de l'exécution du workflow.
Méthode
POST
URL
https://api-${endpoint}.gptbots.ai/v1/workflow/invoke
Authentification
Pour plus de détails, consultez la méthode d'authentification dans la Présentation de l'API.
Requête
Exemple
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>"
}
}
]
}'
Ce bloc de code dans la fenêtre flottante
En-têtes
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | Bearer ${API Key} | O | Validez les appels en utilisant Authorization: Bearer ${API Key} ; obtenez la clé sur la page des clés API en tant que clé API. |
| Content-Type | application/json | O | Type de données, la valeur fixe est application/json. |
Corps
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| userId | String | N | Sert à identifier l'ID utilisateur de cette requête. |
| input | Object | O | Le nœud "start" du workflow. Cet objet doit contenir une structure de paramètres d'entrée correspondant exactement à la configuration du nœud "start" du workflow. |
| isAsync | Boolean | N | Définit si cette requête s'exécute de manière asynchrone. - true : exécution asynchrone. - false (par défaut) : exécution synchrone. Remarque : Si true, vous pouvez soit utiliser "Résultat de la requête du workflow" pour récupérer le résultat, soit envoyer le résultat à l'adresse définie par "Webhook". Ces deux méthodes ne sont pas incompatibles. |
| webhook | Tableau d'objets | N | Lors d'une opération asynchrone, le résultat d'exécution du workflow peut être envoyé au Webhook spécifié. Jusqu'à 5 entrées Webhook peuvent être définies. |
| webhook[].method | String | O | Méthode de requête du Webhook. |
| webhook[].url | String | O | URL (adresse) du Webhook. |
| webhook[].headers | Object | N | En-têtes pour la requête Webhook, à définir selon les besoins. |
Réponse
Exemple
Si l'exécution est synchrone, le résultat est le suivant :
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"input": {
"topic": "News"
},
"output": {
"news": [
{
"summary": "Un accident mortel bloque une autoroute principale à Haleiwa. Selon les services médicaux d'urgence, les ambulanciers sont intervenus sur les lieux de l'accident mercredi matin.",
"media": "Hawaii News Now",
"title": "Hawaii News Now - Breaking News, Latest News, Weather & Traffic"
},
{
"summary": "Crime à Hawaii : Un homme de 65 ans grièvement blessé dans une agression à Waikīkī. Jamil Hart reconnu coupable dans l'affaire de meurtre de Mililani. La police démantèle une salle de jeux illégale à 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": "Un accident mortel bloque une autoroute principale à Haleiwa. Selon les services médicaux d'urgence, les ambulanciers sont intervenus sur les lieux de l'accident mercredi matin.",
"media": "Hawaii News Now",
"title": "Hawaii News Now - Breaking News, Latest News, Weather & Traffic"
},
{
"summary": "Crime à Hawaii : Un homme de 65 ans grièvement blessé dans une agression à Waikīkī. Jamil Hart reconnu coupable dans l'affaire de meurtre de Mililani. La police démantèle une salle de jeux illégale à 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
}
Ce bloc de code dans la fenêtre flottante
Si l'exécution est asynchrone, cette API retournera immédiatement le résultat suivant :
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"status": "PENDING"
}
{
"workflowId": "xxxxxxxx",
"workflowName": "todayNews",
"workflowVersion": "1.0.1",
"workflowRunId": "xxxxxxxx",
"status": "PENDING"
}
Ce bloc de code dans la fenêtre flottante
Vous pouvez interroger de manière asynchrone le résultat de l'exécution à l'aide du workflowRunId obtenu.
Corps
| Champ | Type | Description |
|---|---|---|
| workflowId | String | ID du workflow. |
| workflowName | String | Nom du workflow. |
| workflowVersion | String | Numéro de version du workflow. |
| workflowRunId | String | ID d'exécution du workflow, utilisé pour identifier de manière unique cette exécution. |
| input | Object | Entrée pour le nœud "start", identique à l'entrée de la requête. |
| output | Object | Sortie du nœud "end", contenant les résultats de l'exécution du workflow. |
| workflowExecutionTime | Number | Temps d'exécution du workflow, en millisecondes. |
| status | String | Statut de l'invocation du workflow, valeurs possibles : - SUCCEED : succès - FAILED : échec - PENDING : en attente - RUNNING : en cours |
| totalCost | Number | Coût total en crédits pour cette exécution. |
| totalTokens | Number | Nombre total de jetons consommés pour cette exécution. |
| startTime | Number | Horodatage de début, en millisecondes. |
| endTime | Number | Horodatage de fin, en millisecondes. |
