logo
Développement
Rechercher
Service de détection Webhook

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 istest dans le corps du message : lorsque istest=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 HTTP 200 signifie 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'
                      
                      curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json'

                    
Ce bloc de code dans la fenêtre flottante

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 } ] }
                      
                      {
  "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
    }
  ]
}

                    
Ce bloc de code dans la fenêtre flottante

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'
                      
                      curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'

                    
Ce bloc de code dans la fenêtre flottante

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
                      
                      service is normal

                    
Ce bloc de code dans la fenêtre flottante

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.