Partager via


À propos des consommateurs de compétences

S'APPLIQUE À : SDK v4

Un consommateur de compétences est un bot qui peut appeler une ou plusieurs compétences. En ce qui concerne les compétences, un bot racine est un bot accessible par l’utilisateur qui est également un consommateur de compétences.

Du point de vue de l’utilisateur, le bot racine est le bot avec lequel il interagit. Du point de vue de la compétence, l'utilisateur de la compétence est le canal par lequel il communique avec l’utilisateur. (Pour plus d’informations, consultez la vue d’ensemble des compétences.)

En tant que consommateur de compétences, un bot racine inclut une logique supplémentaire pour gérer le trafic entre celui-ci et une compétence :

  • Informations de configuration pour chaque compétence que la racine utilise.
  • Fabrique d’identifiants de conversation qui permet à la racine de naviguer entre les conversations qu’elle a avec l’utilisateur et celles qu’elle a avec une fonctionnalité.
  • Client de compétences qui peut empaqueter et transférer des activités à un bot de compétences.
  • Gestionnaire de compétences qui peut recevoir des demandes et décompresser des activités d’un bot de compétences.

Gestion des compétences

Le démarrage et laisser une seule compétence s'exécuter jusqu'à son achèvement est facilité par quelques ajouts au consommateur de compétences. Des scénarios plus complexes sont possibles, avec plusieurs compétences ou threads de conversation.

Un consommateur de compétences implémente au moins deux points de terminaison HTTP :

  • Un point de terminaison de messagerie reçoit des activités de l’utilisateur ou du canal. Il s’agit du point de terminaison de messagerie habituel que tous les bots implémentent.
  • Point de terminaison de l’hôte de compétence pour recevoir des activités d’une compétence. Il s’agit d’une URL de rappel, URL de service à laquelle la compétence répond. (L'utilisateur de la compétence doit associer du code qui reçoit la requête de méthode HTTP de la compétence avec un gestionnaire de la compétence.)

Descriptions des compétences

Pour chaque compétence, ajoutez un objet de compétence Bot Framework au fichier de configuration du consommateur de compétences. Chacun d’eux aura un ID, un identifiant d’application et un point de terminaison pour la fonctionnalité.

Propriété Descriptif
Identifiant ID ou clé de la compétence, propre au consommateur de compétences.
ID d’application appId est attribué à la ressource de bot lorsque la compétence a été enregistrée sur Azure.
Point de terminaison de compétence Point de terminaison de messagerie pour la compétence. Il s'agit de l'URL que le consommateur utilisera pour communiquer avec la fonctionnalité.

Client de compétence et gestionnaire de compétence

L'utilisateur de compétences utilise une interface de compétences pour envoyer des activités à une compétence. Le client :

  • Envoie une activité à l'application, soit initiée par un utilisateur, soit générée par le système du consommateur.
  • Configure l'URL du service sur l'activité envoyée vers la compétence à l'endroit de terminaison de l'hôte de compétence du consommateur.
  • Remplace la référence originale de conversation par une référence à une conversation sur les compétences du consommateur.
  • Ajoute un jeton d’authentification bot-à-bot.
  • Envoie l’activité mise à jour à la compétence.

Le consommateur de compétences utilise un gestionnaire de compétence pour recevoir des activités d’une compétence. Gestionnaire :

  • Gère les méthodes de l’API REST du service de canal.
  • Applique l’authentification et la validation des revendications.
  • Récupère la référence de conversation d’origine.
  • Génère une activité pour l’adaptateur du consommateur. Cette activité signale que la compétence est terminée ou qu’elle est une activité à transférer à l’utilisateur.

Gérer directement une compétence

Vous devez ajouter une logique à votre utilisateur d'application pour répertorier les compétences actives. Il appartient au consommateur de savoir comment il gère les compétences en général, qu’il puisse maintenir plusieurs compétences actives en parallèle ou non, et ainsi de suite. Les scénarios spécifiques à prendre en compte sont les suivants :

  • Initiation d'une nouvelle conversation sur les compétences des consommateurs. (Cela sera associé à une conversation consommateur-utilisateur spécifique.)
    • Pour passer des paramètres à une compétence, définissez la propriété valeur dans l’activité initiale sur la compétence.
  • Continuer une conversation existante sur les compétences des consommateurs.
  • Reconnaître une endOfConversation activité de la compétence comme signalant une fin d’une conversation de compétences de consommateur.
    • Pour récupérer une valeur de retour à partir d’une compétence, vérifiez la propriété valeur de l’activité.
    • Pour vérifier pourquoi la compétence se termine, vérifiez le paramètre de code de l’activité, ce qui peut indiquer que la compétence a rencontré une erreur.
  • Annulation d’une compétence du consommateur en envoyant une endOfConversation activité à la compétence.

Découvrez comment implémenter un consommateur de compétences pour un consommateur qui gère directement une compétence.

Gérer une compétence à l’aide d’une boîte de dialogue de compétence

Si vous utilisez la bibliothèque de dialogues, vous pouvez utiliser une boîte de dialogue de compétence pour gérer une compétence. Bien que la boîte de dialogue de compétence soit la boîte de dialogue active, elle transfère les activités à la compétence associée.

  • Lorsque vous créez la boîte de dialogue de compétence, utilisez le paramètre d’options de dialogue pour fournir toutes les informations dont le dialogue a besoin pour gérer la compétence, telles que l’ID d’application du consommateur et l’URL de rappel, la fabrique d’ID de conversation à utiliser, les propriétés de la compétence, etc.
    • Si vous souhaitez gérer plusieurs compétences en tant que boîte de dialogue, vous devez créer un dialogue de compétence distinct pour chaque compétence.
    • Souvent, vous ajoutez le dialogue de compétence à un dialogue de composant.
  • Pour démarrer la boîte de dialogue de compétence, utilisez la méthode begin du contexte de dialogue et fournissez l’ID du dialogue de compétence. Utilisez le paramètre d’options pour fournir l’activité que le consommateur enverra en tant que première activité à la compétence.
  • Vous pouvez annuler ou interrompre la boîte de dialogue de compétence comme vous le feriez pour n’importe quel autre dialogue. Découvrez comment gérer les interruptions utilisateur pour un exemple.

Découvrez comment utiliser un dialogue pour exploiter une compétence pour un utilisateur qui emploie un dialogue pour gérer une compétence.

Utilisation d’un mode de remise des réponses attendues

Les bots et les fonctionnalités utilisent REST et JSON conformes aux normes de l'industrie via HTTPS pour la communication. Le processus de traitement d'activité normal démarre lorsque le bot racine reçoit un message d'un canal sur son endpoint de messagerie. Le bot racine envoie ensuite l'action à la fonctionnalité pour traitement. Les réponses de la fonction sont renvoyées au point de terminaison de l'hôte de fonction du bot racine, et non à son point de terminaison de messagerie. Enfin, les réponses sont traitées ou renvoyées au canal par le bot racine. Ce flux normal peut être modifié en modifiant le mode de distribution de l’activité envoyée à la compétence. Si le mode de remise est défini sur « ExpectReplies », la compétence ne revient pas au point de terminaison de l’hôte de compétence. Au lieu de cela, toutes les activités de réponse sont sérialisées dans le corps de la réponse. Le bot racine effectue ensuite une itération sur ces activités, les traitant de la façon dont elles auraient été traitées par le point de terminaison du serveur de compétences.

Pour plus d’informations, consultez le mode de remise dans la spécification de l’activité.