Partager via


DialogSet class

Ensemble associé de boîtes de dialogue qui peuvent toutes s’appeler.

Remarques

Une propriété d’état doit être transmise au constructeur du jeu de dialogues qui sera utilisée pour conserver la pile des 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 boîtes de dialogue 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 boîtes de dialogue d’ensembles, vous pouvez appeler createContext() avec le actuel TurnContext. Cela crée un DialogContext qui peut être utilisé pour démarrer ou poursuivre l’exécution des boîtes de dialogue 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 cet ensemble de dialogues et appliquez-le à tous les dialogues actuels. Définissez le client de télémétrie pour cet ensemble de dialogues et appliquez-le à tous les dialogues actuels. Les boîtes de dialogue ultérieures ajoutées à l’ensemble hériteront également de ce client.

Méthodes

add<T>(T)

Ajoute une nouvelle boîte de dialogue ou une nouvelle invite à l’ensemble.

createContext(TurnContext)

Crée un contexte de dialogue qui peut être utilisé pour utiliser 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 boîtes de dialogue de l’ensemble.

getVersion()

Retourne un hachage 32 bits de toutes les Dialog.version valeurs de 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 rendre persistante la pile des boîtes de dialogue sets.

Remarques

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

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

Détails de la propriété

telemetryClient

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

BotTelemetryClient telemetryClient

Valeur de propriété

BotTelemetryClient

BotTelemetryClient à utiliser pour la journalisation.

Détails de la méthode

add<T>(T)

Ajoute une nouvelle boîte de dialogue ou une nouvelle invite à l’ensemble.

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

Paramètres

dialog

T

Boîte de dialogue ou invite à ajouter. Si un telemetryClient est présent dans l’ensemble de dialogues, il est ajouté à chaque boîte de dialogue.

Retours

this

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

Remarques

Si le Dialog.id en cours d’ajout existe déjà dans le jeu, l’ID des boîtes de dialogue est mis à jour pour inclure un suffixe qui le rend unique. Ainsi, l’ajout de 2 boîtes de dialogue nommées « dupliquer » à l’ensemble aurait pour résultat que la première a l’ID « dupliquer » et la seconde un ID « duplicate2 ».

createContext(TurnContext)

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

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

Paramètres

context

TurnContext

Contexte de la tour actuelle de la conversation 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 de l’invite de recherche.

Retours

Dialog | undefined

Boîte de dialogue si elle est trouvée ; sinon non défini.

Remarques

Cet exemple recherche une boîte de dialogue nommée « greeting » :

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

getDialogs()

Obtient les boîtes de dialogue de l’ensemble.

function getDialogs(): Dialog[]

Retours

Dialog[]

Tableau de dialogue.

getVersion()

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

function getVersion(): string

Retours

string

Version qui change lorsque l’une des versions 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.