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
Dialog |
Crée une instance DialogSet. |
Propriétés
telemetry |
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. |
create |
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(). |
get |
Obtient les boîtes de dialogue de l’ensemble. |
get |
Retourne un hachage 32 bits de toutes les |
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.