Partager via


Bibliothèque de dialogues

S’APPLIQUE À : SDK v4

Dialogues sont un concept central dans le Kit de développement logiciel (SDK), offrant des moyens de gérer une conversation de longue durée avec l’utilisateur. Une boîte de dialogue effectue une tâche qui peut représenter une partie ou un thread conversationnel complet. 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 fonctionnalités de la bibliothèque de dialogues.

  • Vous devez être familier avec le fonctionnement des bots (y compris ce qu'est un tour) et la gestion de l'état.
  • Chaque boîte de dialogue représente une tâche conversationnelle qui peut s’exécuter jusqu’à la fin et retourner des informations collectées.
  • Chaque dialogue représente une unité de base du flux de contrôle : il peut commencer, continuer et se terminer, suspendre 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 une boîte de dialogue, et la boîte de dialogue peut par la suite produire une valeur de retour 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 SDK-first existants, non créés dans Composer, envisagez d’exposer votre bot en tant que capacité et d’utiliser Composer pour le développement futur de bots.

État de la boîte de dialogue

Les dialogues peuvent mettre en œuvre une invite multitour et, à ce titre, ils s'appuient sur la persistance d'un état 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à collectées.

Pour conserver la place d’un dialogue dans la conversation, l’état du dialogue doit être récupéré et enregistré à la mémoire à chaque tour. Cet état est géré par l'intermédiaire 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 relatives à tous les dialogues actifs et aux enfants des dialogues actifs. Cela permet au bot de reprendre là où il s’est arrêté en dernier et de 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’une instance de dialogue 'objet. Là encore, cela doit être lu dans le bot et enregistré en mémoire à chaque tour.

Infrastructure de boîte 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, sachez-les et leur objectif est utile lors de la conception de dialogues pour un bot.

Classe Description
Dialog set Définit une collection de dialogues qui peuvent se référencer et travailler en concert.
Dialog context Contient des informations sur tous les dialogues actifs.
Dialog instance Contient des informations sur une boîte de dialogue active.
Dialog turn result Contient des informations d’état d’une boîte de dialogue active ou récemment active. Si le dialogue actif s'est terminé, il contient sa valeur de retour.

Types de boîtes de dialogue

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 plus loin dans cet article.

Type Description
fenêtre de dialogue Classe de base pour tous les dialogues.
container dialog Classe de base pour tous les dialogues conteneurs , comme les dialogues de composant et les dialogues adaptatifs. Il gère un jeu de dialogues interne et vous permet de traiter une collection de dialogues en tant qu’unité.
component dialog Type général de dialogue de conteneur qui encapsule un ensemble de dialogues, ce qui permet la réutilisation du jeu dans son ensemble. Lorsqu’un dialogue de composant démarre, il commence par un dialogue désigné dans sa collection. Une fois le processus interne terminé, la boîte de 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. Elles sont généralement conçues pour fonctionner dans le contexte d’un dialogue de composant.
dialogues de requête Demandez à l’utilisateur d’entrer et de retourner le résultat. Une requête se répète jusqu'à ce qu'elle reçoive une entrée valide ou qu'elle soit annulée. Elles sont conçues pour fonctionner avec les boîtes de dialogue en cascade.
Dialogue adaptatif Un type de dialogue conteneur utilisé par Composer pour fournir des flux conversationnels plus naturels. Il n'est pas destiné à être utilisé directement dans un robot utilisant d'abord le SDK.
dialogues d'action Type de dialogue qui prend en charge l’implémentation d’actions dans Composer. Il n'est pas destiné à être utilisé directement dans un robot utilisant d'abord le SDK.
boîtes de dialogue d’entrée Type de dialogue qui prend en charge l’implémentation d’actions d’entrée dans Composer. Il n'est pas destiné à être utilisé directement dans un robot utilisant d'abord le SDK.
skill dialog 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.
QnA Maker dialog 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

boîtes de dialogue adaptatives ont été ajoutées pour la première fois dans la version 4.9 du Kit de développement logiciel (SDK) C#. Les dialogues adaptatifs prennent en charge le Bot Framework Composer et ne sont pas destinés à être utilisés directement dans un bot conçu d'abord pour l'utilisation du SDK.

Modèles de boîte de dialogue

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

  1. Nous vous recommandons d’utiliser Bot Framework Composer pour créer des dialogues conversationnels, afin de bénéficier de fonctionnalités conversationnelles plus naturelles et libres. Pour plus d'informations, voir l'introduction au Bot Framework Composer. Ces bots peuvent toujours être étendus avec du code si nécessaire.
  2. Développez votre bot dans l'un des langages du SDK et utilisez la méthode d'extension run de votre dialogue racine. Pour plus d'informations sur l'utilisation de la méthode run avec un dialogue de composant, voir à propos des dialogues de composant et de cascade et comment implémenter un flux de conversation séquentiel.

La pile de dialogue

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

Bien que vous n'accédiez pas directement à la pile de dialogue, 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 dialogue.

Dialogues 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 ensemble de dialogues crée un champ d'application pour la résolution des ID de dialogues.

  • 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.

Dialog ID

Lorsque vous ajoutez une boîte de dialogue à un jeu de dialogues, vous lui attribuez un ID unique au sein de ce jeu. Les dialogues d’un ensemble se réfèrent les uns aux autres par leurs identifiants.

Lorsqu’un dialogue fait référence à un autre dialogue au moment de l’exécution, il le fait par l’ID du dialogue. Le contexte de dialogue tente de résoudre l’ID en fonction des autres dialogues de l’ensemble de dialogues immédiats. S'il n'y a pas de correspondance, il recherche une correspondance dans l'ensemble de dialogues contenant ou extérieur, 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 boîtes de dialogue de composant utilisent un modèle séquentiel pour les conversations, et chaque boîte de dialogue dans le conteneur est responsable de l'appel d'autres boîtes de dialogue dans le conteneur. Lorsque la pile de dialogues interne du dialogue de 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 davantage dynamique.

À propos des boîtes de dialogue des composants et de la cascade décrit plus en détail les boîtes de dialogue des composants, de la cascade et des requêtes.

Autres dialogues

Les dialogues QnA Maker et les dialogues de compétence peuvent être utilisés comme dialogues autonomes ou dans le cadre d'une collection de dialogues intégrée dans un conteneur.

QnA Maker dialog

Remarque

Azure AI QnA Maker sera mis hors service le 31 mars 2025. À compter du 1er octobre 2022, vous ne pourrez pas créer de nouvelles ressources ou bases de connaissances QnA Maker. Une version plus récente de la fonctionnalité de question et de réponse 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.

La boîte de dialogue QnA Maker accède à une base de connaissances QnA Maker et prend en charge les fonctionnalités d’invite de suivi et d’apprentissage actif de QnA Maker.

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

Pour plus d’informations, consultez :

Dialogue de compétences

Une boîte de dialogue de compétences permet d'accéder à une ou plusieurs compétences et de les gérer. 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 :

Étapes suivantes