Bibliothèque de boîtes de dialogues

S'APPLIQUE À : SDK v4

Les dialogues sont un concept Microsoft Entra dans le kit de développement logiciel (SDK), qui permet de gérer une conversation de longue durée avec l'utilisateur. Un dialogue effectue une tâche qui peut représenter une partie d'un fil de conversation ou le fil dans son ensemble. Il peut s'étendre à un seul tour ou plusieurs, et peut s'étendre sur une courte ou longue période de temps.

Cet article décrit les principales classes et caractéristiques de la bibliothèque de dialogue.

  • Vous devez être au fait du fonctionnement des bots (notamment de ce que représente un tour) et de la gestion de l'état.
  • Chaque dialogue représente une tâche conversationnelle qui peut être exécutée jusqu'à son terme et renvoyer les informations collectées.
  • Chaque dialogue représente une unité de base du flux de contrôle : il peut commencer, continuer et se terminer, faire une pause et reprendre, ou être annulé.
  • Les dialogues sont similaires à une méthode ou une fonction dans un langage de programmation. Vous pouvez transmettre des arguments ou des paramètres lorsque vous démarrez un dialogue, cette dernière peut ensuite produire une valeur renvoyée lorsqu'elle se termine.

Conseil

Si vous débutez avec le développement de bots avec Bot Framework ou la création d'une nouvelle expérience conversationnelle, commencez par Bot Framework Composer. Pour les bots kit de développement logiciel (SDK) existants qui n'ont pas été créés dans Composer, envisagez d'exposer votre bot en tant que compétence et d'utiliser Composer pour le développement de futurs bots.

État de dialogue

Les dialogues peuvent implémenter une conversation à plusieurs tours et, à ce titre, ils s'appuient sur un état persistant entre les tours. Sans état dans les dialogues, votre bot ne saurait pas où il en est dans la conversation ni quelles informations il a déjà recueillies.

Pour conserver la place d'un dialogue dans la conversation, l'état du dialogue doit être récupéré et enregistré dans la mémoire à chaque tour. Cette opération est gérée à l'aide d'un accesseur de propriété d'état de dialogue défini sur l'état de conversation du bot. Cet état de dialogue gère les informations de tous les dialogues actifs et les enfants des dialogues actifs. Ainsi, le bot peut reprendre là où il s'est arrêté en dernier et gérer différents modèles de conversation.

Au moment de l'exécution, la propriété d'état du dialogue inclut des informations sur l'emplacement où le dialogue se trouve dans son processus logique, y compris les informations collectées en interne sous la forme d'un objet d'instance de dialogue. Une fois encore, ces données doivent être lues dans le bot et enregistrées dans la mémoire à chaque tour.

Infrastructure de dialogue

Outre différents types de dialogues, les classes suivantes sont impliquées dans la conception et le contrôle des conversations. Bien que vous n'ayez généralement pas besoin d'interagir directement avec ces classes, il est utile de les connaître et de savoir à quoi elles servent lorsque vous concevez des dialogues pour un bot.

Classe Description
Jeu de dialogue Définit une collection de dialogues qui peuvent se référencer les uns les autres et travailler de concert.
Contexte du dialogue Contient des informations sur tous les dialogues actifs.
Instance de dialogue Contient des informations sur un dialogue actif.
Résultat du tour de dialogue Contient des informations sur l'état d'un dialogue actif ou récemment actif. Si le dialogue actif s'est terminé, il contient sa valeur de retour.

Types de dialogues

La bibliothèque de dialogues fournit quelques types de dialogues pour faciliter la gestion des conversations de votre bot. Certains de ces types sont décrits plus en détail dans la suite de cet article.

Type Description
fenêtre de dialogue Classe de base pour tous les dialogues.
dialogue sur le conteneur Classe de base pour tous les dialogues de conteneur , comme les dialogues de composant et adaptatifs. Il maintient un ensemble de dialogues internes et vous permet de traiter une collection de dialogues comme une unité.
dialogue composant Un type de dialogue conteneur à usage général qui encapsule un ensemble de dialogues, permettant la réutilisation de l'ensemble. Lorsqu'un dialogue de composant démarre, il commence par un dialogue désigné dans sa collection. Lorsque le processus interne est terminé, le dialogue du composant se termine.
Dialogue en cascade Définit une séquence d'étapes, ce qui permet à votre bot de guider un utilisateur par le biais d'un processus linéaire. Elle est généralement conçue pour fonctionner dans le contexte d’une boîte de dialogue de composant.
dialogues d'invite Demander à l'utilisateur d'entrer des données et renvoyer le résultat. Une invite se répète jusqu'à ce qu'elle reçoive une entrée valide ou qu'elle soit annulée. Ils sont conçus pour fonctionner avec des dialogues en cascade.
Dialogue adaptatif Un type de dialogue conteneur utilisé par Composer pour fournir des flux conversationnels plus naturels. Non destiné à être utilisé directement dans un bot du kit de développement logiciel (SDK).
dialogues d'action Type de dialogue qui prend en charge l'implémentation d'actions dans Composer. Non destiné à être utilisé directement dans un bot du kit de développement logiciel (SDK).
dialogues d'entrée Type de dialogue qui prend en charge l'implémentation d'actions d'entrée dans Composer. Non destiné à être utilisé directement dans un bot du kit de développement logiciel (SDK).
Dialogue de compétence Automatise la gestion d'un ou plusieurs bots de compétences à partir d'un consommateur de compétences. Composer prend directement en charge les compétences en tant qu'actions.
Dialogue QnA Maker Automatise l'accès à une base de connaissances QnA Maker. Ce dialogue est conçu pour fonctionner également en tant qu'action dans Composer.

Important

Les dialogues adaptatifs ont été ajoutés pour la première fois dans la version 4.9 du Kit de développement logiciel (SDK) C#. Les dialogues adaptatifs prennent en charge Bot Framework Composer et ne sont pas destinés à être utilisés directement dans un bot de kit de développement logiciel (SDK).

Modèles de dialogue

Il existe deux modèles principaux pour démarrer et gérer des dialogues à partir d'un bot.

  1. Nous recommandons d'utiliser Bot Framework Composer pour créer des dialogues conversationnels, afin de bénéficier de capacités de conversation plus naturelles et plus fluides. Pour plus d'informations, consultez Introduction à Bot Framework Composer.. Ces bots peuvent encore être complétés par du code si nécessaire.
  2. Développez votre bot dans l'un des langages du kit de développement logiciel (SDK) et utilisez la méthode d'extension d'exécution de votre boîte de dialogue racine. Pour plus d'informations sur l'utilisation de la méthode d'exécution avec un dialogue de composant, consultez les dialogues de composant et de cascade et l'implémentation d'un flux de conversation séquentiel.

Pile de dialogues

Un contexte de dialogue contient des informations sur tous les dialogues actifs et inclut une pile de dialogues, qui agit comme pile des appels pour tous les dialogues actifs. Chaque dialogue conteneur possède un ensemble interne de dialogues qu'il contrôle, et donc chaque dialogue conteneur actif introduit un contexte de dialogue interne et une pile de dialogues dans son état.

Bien que vous ne soyez pas amené à accéder directement à la pile, le fait de savoir qu'elle existe et de connaître sa fonction vous aidera à comprendre le fonctionnement des différents aspects de la bibliothèque de dialogues.

Dialogues de conteneurs

Un dialogue conteneur peut faire partie d'un ensemble de dialogues plus volumineux. Chaque conteneur a un jeu de dialogues interne qui est également géré.

  • Chaque jeu de dialogue crée une extension pour la résolution des ID de dialogue.

  • Le kit de développement logiciel (SDK) implémente actuellement deux types de dialogues de conteneur : les dialogues de composant et les dialogues adaptatifs.

    La structure conceptuelle des deux est très différente. Toutefois, un bot Composer peut utiliser les deux.

ID de dialogue

Lorsque vous ajoutez un dialogue à un jeu de dialogues, vous lui affectez un ID unique au sein de ce jeu. Les dialogues d'un même jeu sont référencés par leur ID.

Lorsqu'un dialogue fait référence à un autre dialogue au moment de l'exécution, il le fait par le biais de l'ID du dialogue. Le contexte de dialogue tente de résoudre l'ID en se basant sur les autres dialogues du jeu de dialogues immédiats. S'il n'y a pas de correspondance, il recherche une correspondance dans le jeu de dialogue interne ou externe, et ainsi de suite. Si aucune correspondance n'est trouvée, une exception ou une erreur est générée.

Dialogues de composants

Les dialogues de composants utilisent un modèle de séquence pour les conversations, et chaque dialogue dans le conteneur est responsable de l'appel d'autres dialogues dans le conteneur. Lorsque la pile de dialogue interne du composant est vide, le composant se termine.

Envisagez d'utiliser des dialogues de composants et des dialogues en cascade si votre bot a un flux de contrôle relativement simple qui ne nécessite pas un flux de conversation plus dynamique.

À propos des dialogues de composants et en cascade décrit plus en détail les dialogues de composant, de cascade et d'invite.

Autres dialogues

Les dialogues de QnA Maker et de compétences peuvent être utilisés de manière autonome ou dans le cadre d'une collection de dialogues dans un conteneur.

Dialogue QnA Maker

Remarque

Azure AI QnA Maker sera mis hors service le 31 mars 2025. À partir du 1er octobre 2022, vous ne pourrez plus créer de nouvelles ressources ou bases de connaissances QnA Maker. Une version plus récente de la fonctionnalité de questions et réponses est désormais disponible dans le cadre d’Azure AI Language.

La réponse aux questions personnalisées, une fonctionnalité d'Azure AI Language, est la version mise à jour du service QnA Maker. Pour plus d'informations sur la prise en charge des questions et réponses dans le kit de développement logiciel (SDK) Bot Framework, consultez Compréhension du langage naturel.

Le dialogue de QnA Maker accède à une base de connaissances de QnA Maker et prend en charge les caractéristiques d'invite de suivi et d'apprentissage actif de QnA Maker.

  • Les invites de suivi, également appelées invites à plusieurs tour, permettent à une base de connaissances de demander à l'utilisateur d'obtenir plus d'informations avant de répondre à sa question.
  • Les suggestions d'apprentissage actif permettent d'améliorer la base de connaissances au fil du temps. Le dialogue QnA Maker prend en charge les commentaires explicites pour la fonctionnalité d’apprentissage actif.

Pour plus d’informations, consultez l’article suivant :

Dialogue de compétences

Un dialogue de compétence accède à une ou plusieurs compétences et gère une ou plusieurs compétences. Le dialogue de compétence publie les activités du bot parent pour le bot de compétences et renvoie les réponses de compétence à l’utilisateur.

Pour plus d’informations, consultez l’article suivant :

Étapes suivantes