Partager via


DialogSet class

Ensemble de dialogues connexes qui peuvent tous s’appeler les uns les autres.

Remarques

Le constructeur du jeu de dialogues doit être passé une propriété d’état qui sera utilisée pour conserver la pile de dialogues pour l’ensemble :

const { ConversationState, MemoryStorage, ActivityTypes } = require('botbuilder');
const { DialogSet, Dialog, DialogTurnStatus } = require('botbuilder-dialogs');

const convoState = new ConversationState(new MemoryStorage());
const dialogState = convoState.createProperty('dialogState');
const dialogs = new DialogSet(dialogState);

Le bot peut ajouter des dialogues ou des invites à l’ensemble à l’aide de la méthode add() :

class GreetingDialog extends Dialog {
    async beginDialog(dc, options) {
        await dc.context.sendActivity(`Hi! I'm a bot.`);
        return await dc.endDialog();
    }
}

dialogs.add(new GreetingDialog('greeting'));

Pour interagir avec les dialogues de jeux, vous pouvez appeler createContext() avec la TurnContextactuelle. Cela crée une DialogContext qui peut être utilisée pour démarrer ou poursuivre l’exécution des dialogues de jeux :

// Create DialogContext for the current turn
const dc = await dialogs.createContext(turnContext);

// Try to continue executing an active multi-turn dialog
const result = await dc.continueDialog();

// Send greeting if no other dialogs active
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.Message) {
    await dc.beginDialog('greeting');
}

Constructeurs

DialogSet(StatePropertyAccessor<DialogState>)

Crée une instance DialogSet.

Propriétés

telemetryClient

Définissez le client de télémétrie pour ce jeu de dialogues et appliquez-le à tous les dialogues actuels. Définissez le client de télémétrie pour ce jeu de dialogues et appliquez-le à tous les dialogues actuels. Les boîtes de dialogue futures ajoutées à l’ensemble héritent également de ce client.

Méthodes

add<T>(T)

Ajoute une nouvelle boîte de dialogue ou une invite au jeu.

createContext(TurnContext)

Crée un contexte de dialogue qui peut être utilisé pour travailler avec les dialogues de l’ensemble.

find(string)

Recherche une boîte de dialogue qui a été précédemment ajoutée à l’ensemble à l’aide de add().

getDialogs()

Obtient les dialogues du jeu.

getVersion()

Retourne un hachage 32 bits de toutes les valeurs Dialog.version dans l’ensemble.

Détails du constructeur

DialogSet(StatePropertyAccessor<DialogState>)

Crée une instance DialogSet.

new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)

Paramètres

dialogState

StatePropertyAccessor<DialogState>

(Facultatif) propriété d’état utilisée pour conserver la pile de dialogues de jeux.

Remarques

Si la propriété dialogState n’est pas passée, les appels à createContext() retournent une erreur. Vous devez créer une DialogContext pour l’ensemble manuellement et passer votre propre objet d’état pour conserver la pile des jeux de dialogue :

const dc = new DialogContext(dialogs, turnContext, state);

Détails de la propriété

telemetryClient

Définissez le client de télémétrie pour ce jeu de dialogues et appliquez-le à tous les dialogues actuels. Définissez le client de télémétrie pour ce jeu de dialogues et appliquez-le à tous les dialogues actuels. Les boîtes de dialogue futures ajoutées à l’ensemble héritent également de ce client.

BotTelemetryClient telemetryClient

Valeur de propriété

BotTelemetryClient

Le BotTelemetryClient à utiliser pour la journalisation.

Détails de la méthode

add<T>(T)

Ajoute une nouvelle boîte de dialogue ou une invite au jeu.

function add<T>(dialog: T): this

Paramètres

dialog

T

Boîte de dialogue ou invite à ajouter. Si un telemetryClient est présent sur le jeu de dialogues, il est ajouté à chaque dialogue.

Retours

this

Boîte de dialogue définie une fois l’opération terminée.

Remarques

Si la Dialog.id ajoutée existe déjà dans l’ensemble, l’ID des dialogues est mis à jour pour inclure un suffixe qui le rend unique. Par conséquent, l’ajout de 2 boîtes de dialogue nommées « dupliquées » à l’ensemble entraînerait un ID de « dupliqué » et le second ayant un ID de « doublon2 ».

createContext(TurnContext)

Crée un contexte de dialogue qui peut être utilisé pour travailler avec les dialogues de l’ensemble.

function createContext(context: TurnContext): Promise<DialogContext>

Paramètres

context

TurnContext

Contexte pour le tour de conversation actuel avec l’utilisateur.

Retours

Promise<DialogContext>

Promesse représentant l’opération asynchrone.

find(string)

Recherche une boîte de dialogue qui a été précédemment ajoutée à l’ensemble à l’aide de add().

function find(dialogId: string): Dialog | undefined

Paramètres

dialogId

string

ID de la boîte de dialogue ou invite à rechercher.

Retours

Dialog | undefined

Boîte de dialogue s’il est trouvé ; sinon non défini.

Remarques

Cet exemple recherche une boîte de dialogue nommée « message d’accueil » :

const dialog = dialogs.find('greeting');

getDialogs()

Obtient les dialogues du jeu.

function getDialogs(): Dialog[]

Retours

Dialog[]

Tableau de boîte de dialogue.

getVersion()

Retourne un hachage 32 bits de toutes les valeurs Dialog.version dans l’ensemble.

function getVersion(): string

Retours

string

Version qui change lorsque l’une des boîtes de dialogue enfants change.

Remarques

Ce hachage est conservé dans le stockage d’état et utilisé pour détecter les modifications apportées à un jeu de dialogues.