Service de détection Webhook
Permet aux développeurs de détecter la disponibilité du service webhook GPTBots, ainsi que la disponibilité de l'URL webhook configurée pour l'Agent cible.
Détecter la disponibilité du service webhook configuré pour l'Agent
GPTBots permet aux développeurs de détecter, via l'API, la disponibilité de toutes les URL Webhook configurées pour l'Agent cible, y compris la disponibilité des URL webhook configurées pour la réception des « messages envoyés » et pour le « service humain - webhook ». Lorsqu'un développeur appelle cette interface, GPTBots détecte automatiquement toutes les URL Webhook déjà configurées pour l'Agent associé à l'API Key actuelle, sans qu'il soit nécessaire de spécifier une cible de détection supplémentaire, et retourne dans la réponse le résultat de détection de chaque Webhook, élément par élément.
Les services Webhook du développeur concernés par le champ istest sont les suivants :
- Le corps de la requête envoyée à webhook par l'API d'envoi de message en réponse contient ce champ, Voir les détails
- Le corps de la requête de notification de demande de conversation du service humain et des messages utilisateur contient ce champ, Voir les détails
Lorsqu'il reçoit une requête, le service Webhook du développeur doit identifier le champ
istestdans le corps du message : lorsqueistest=true, il s'agit d'une requête de test de disponibilité, qui ne doit pas être traitée comme un message métier réel (par exemple, ne pas l'enregistrer en base, ne pas déclencher le service humain, etc.) ; renvoyer le code de statut HTTP200signifie que ce Webhook est disponible.
Méthode de requête
POST
URL de la requête
https://api-${endpoint}.gptbots.ai/v1/webhook/check
Authentification de la requête
Pour plus de détails, consultez les instructions d'authentification de Présentation de l'API. Cette interface identifie l'Agent cible via l'API Key et détecte les Webhooks configurés pour cet Agent.
Requête
Exemple de requête
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json'
En-têtes de la requête
| Champ | Type | Description |
|---|---|---|
| Authorization | Bearer ${API Key} | Utilisez Authorization: Bearer ${API Key} pour l'authentification de l'appel. Obtenez la clé sur la page des clés API et utilisez-la comme API Key. |
| Content-Type | application/json | Type de données, à définir sur application/json. |
Paramètres de la requête
Cette interface ne nécessite aucun paramètre de requête ; GPTBots détecte automatiquement toutes les URL Webhook déjà configurées pour l'Agent associé à l'API Key actuelle.
Réponse
Exemple de réponse
{
"results": [
{
"type": "message",
"component_id": null,
"component_name": null,
"webhook_url": "https://your_domain/webhook/message",
"reachable": true,
"http_status": 200,
"latency_ms": 156
},
{
"type": "human_service",
"component_id": "665d88b03ce2b13cf2d57346",
"component_name": "人工服务-售前",
"webhook_url": "https://your_domain/presale/human/service/conversation/establish",
"reachable": true,
"http_status": 200,
"latency_ms": 188
},
{
"type": "human_service",
"component_id": "665d88b03ce2b13cf2d57347",
"component_name": "人工服务-售后",
"webhook_url": "https://your_domain/aftersale/human/service/conversation/establish",
"reachable": false,
"http_status": 502,
"latency_ms": 3000
}
]
}
Réponse réussie
| Champ | Type | Description |
|---|---|---|
| results | JSON Array | Liste des résultats de détection ; retourne élément par élément le résultat de détection de chaque Webhook configuré pour cet Agent. Les Webhooks non configurés n'apparaissent pas dans la liste. Lorsqu'un même Agent a configuré plusieurs composants de service humain (handoff), chaque composant correspond à un résultat human_service. |
| type | string | Type de Webhook. message : Webhook de réception des messages de réponse de l'Agent ; human_service : Webhook configuré en mode webhook du composant de service humain. |
| component_id | string | Identifiant unique du composant de service humain (handoff), permettant de distinguer les cas où plusieurs composants de service humain sont configurés. Vaut null pour le type message. |
| component_name | string | Nom du composant de service humain (handoff). Vaut null pour le type message. |
| webhook_url | string | URL du Webhook détecté. |
| reachable | boolean | Indique si ce Webhook est disponible. true signifie disponible, false signifie indisponible. |
| http_status | int | Code de statut HTTP retourné par la requête de détection ; vaut null ou 0 en cas d'échec de connexion ou de délai dépassé. |
| latency_ms | long | Durée de la requête de détection (en millisecondes). |
Recommandations pour le jugement de disponibilité
GPTBots envoie à l'URL Webhook une requête de détection portant istest=true au format de message standard, et juge la disponibilité d'après le résultat retourné :
| Situation | Jugement |
|---|---|
Retour du code de statut HTTP 200 |
Ce Webhook est disponible (reachable=true) |
Retour d'un code autre que 200 (par ex. 4xx/5xx) / délai de requête dépassé / échec de connexion |
Ce Webhook est indisponible (reachable=false) |
Réponse en cas d'échec
| Champ | Type | Description |
|---|---|---|
| code | int | Code d'erreur. |
| message | string | Détails de l'erreur. |
Codes d'erreur
| Code | Message |
|---|---|
| 40000 | Erreur de paramètre |
| 40127 | Échec de l'authentification du développeur |
| 40378 | Agent supprimé |
| 40379 |
Détection de l'état du service Webhook GPTBots
GPTBots fournit une interface de surveillance de santé pour détecter le service webhook ; les développeurs peuvent appeler cette interface pour vérifier si le service webhook GPTBots fonctionne normalement. Si l'interface retourne le code de statut HTTP 200 et que le corps de la réponse contient l'identifiant en anglais de service normal (par ex. service is normal), cela signifie que le service webhook GPTBots fonctionne normalement. Cette interface ne nécessite aucune authentification et retourne du texte brut.
Méthode de requête
GET
URL de la requête
https://api.gptbots.ai/v1/webhook/service/health
Exemple de requête
curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'
Réponse
Lorsque le service GPTBots fonctionne normalement, l'interface retourne le code de statut HTTP 200, et le corps de la réponse retourne l'identifiant en anglais de service normal.
service is normal
Recommandations pour le jugement de disponibilité
L'appelant n'a besoin que du code de statut HTTP comme critère :
| Situation | Jugement |
|---|---|
Retour de 200 et corps de réponse égal à service is normal |
Le service GPTBots fonctionne normalement |
Retour d'un code autre que 200 (par ex. 5xx) / délai de requête dépassé / échec de connexion |
Le service GPTBots est indisponible |
Il est recommandé de définir un délai de requête raisonnable (par ex. 3 à 5 secondes) et d'effectuer un sondage à une fréquence fixe (QPM:3) ; cette interface ne nécessite aucune authentification, il n'est donc pas nécessaire de transmettre l'API Key lors de l'appel.
