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 TurnContext
actuelle. 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
Dialog |
Crée une instance DialogSet. |
Propriétés
telemetry |
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. |
create |
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(). |
get |
Obtient les dialogues du jeu. |
get |
Retourne un hachage 32 bits de toutes les valeurs |
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.