Partager via


DialogContext class

Contexte du tour de dialogue actuel par rapport à un DialogSet spécifique.

Remarques

Cela inclut le contexte de tour, les informations sur le jeu de dialogues et l’état de la pile de dialogues.

À partir du code en dehors d’un dialogue dans l’ensemble, utilisez DialogSet.createContext pour créer le contexte de dialogue. Utilisez ensuite les méthodes du contexte de dialogue pour gérer la progression des dialogues dans l’ensemble.

Lorsque vous implémentez une boîte de dialogue, le contexte de dialogue est un paramètre disponible pour les différentes méthodes que vous remplacez ou implémentez.

Par exemple:

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

Constructeurs

DialogContext(DialogSet, DialogContext, DialogState)

Crée une instance de la classe DialogContext.

DialogContext(DialogSet, TurnContext, DialogState)

Crée une instance de la classe DialogContext.

Propriétés

activeDialog
child
context

Obtient l’objet de contexte pour le tour.

dialogManager
dialogs

Obtient les dialogues qui peuvent être appelés directement à partir de ce contexte.

parent

Contexte de dialogue parent pour ce contexte de dialogue ou undefined si ce contexte n’a pas de parent.

services

Obtient la collection de services contextuelle à ce contexte de dialogue.

stack

Obtient la pile de dialogues actuelle.

state

Obtient le DialogStateManager qui gère l’affichage de toutes les étendues de mémoire.

Méthodes

beginDialog(string, object)

Démarre une instance de dialogue et l’envoie (push) sur la pile de dialogues. Crée une instance de la boîte de dialogue et l’envoie (push) sur la pile.

cancelAllDialogs(boolean, string, any)

Annule tous les dialogues de la pile de dialogues et efface la pile.

continueDialog()

Poursuit l’exécution du dialogue actif, s’il en existe un, en transmettant ce contexte de dialogue à sa méthode Dialog.continueDialog.

emitEvent(string, any, boolean, boolean)

Recherche une boîte de dialogue avec un ID donné.

endDialog(any)

Termine une boîte de dialogue et l’affiche hors de la pile. Retourne un résultat facultatif au parent du dialogue.

findDialog(string)

Recherche une boîte de dialogue avec un ID donné.

getLocale()

Obtenez cultureInfo dans DialogContext.

prompt(string, string | Partial<Activity> | PromptOptions)

Fonction d’assistance pour simplifier la mise en forme des options d’appel d’une boîte de dialogue d’invite.

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Fonction d’assistance pour simplifier la mise en forme des options d’appel d’une boîte de dialogue d’invite.

replaceDialog(string, object)

Termine le dialogue actif et démarre un nouveau dialogue à sa place.

repromptDialog()

Demande à l’utilisateur de réinscrire l’entrée dans la boîte de dialogue active.

Détails du constructeur

DialogContext(DialogSet, DialogContext, DialogState)

Crée une instance de la classe DialogContext.

new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)

Paramètres

dialogs
DialogSet

Le DialogSet pour lequel créer le contexte de dialogue.

contextOrDC
DialogContext

Objet TurnContext pour le tour actuel du bot.

state
DialogState

Objet d’état à utiliser pour lire et écrire DialogState dans le stockage.

Remarques

Le passage d’une instance DialogContext clone le contexte de dialogue.

DialogContext(DialogSet, TurnContext, DialogState)

Crée une instance de la classe DialogContext.

new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)

Paramètres

dialogs
DialogSet

Le DialogSet pour lequel créer le contexte de dialogue.

contextOrDC

TurnContext

Objet TurnContext pour le tour actuel du bot.

state
DialogState

Objet d’état à utiliser pour lire et écrire DialogState dans le stockage.

Remarques

Le passage d’une instance DialogContext clone le contexte de dialogue.

Détails de la propriété

activeDialog

DialogInstance | undefined activeDialog

Valeur de propriété

DialogInstance | undefined

Informations d’état pour la boîte de dialogue en haut de la pile de dialogues ou undefined si la pile est vide.

child

DialogContext | undefined child

Valeur de propriété

DialogContext | undefined

Contexte de boîte de dialogue pour enfant si le dialogue actif est un conteneur.

context

Obtient l’objet de contexte pour le tour.

context: TurnContext

Valeur de propriété

TurnContext

dialogManager

Avertissement

Cette API est à présent déconseillée.

This property serves no function.

DialogManager dialogManager

Valeur de propriété

Instance actuelle du gestionnaire de dialogues. Cette propriété est déconseillée.

dialogs

Obtient les dialogues qui peuvent être appelés directement à partir de ce contexte.

dialogs: DialogSet

Valeur de propriété

parent

Contexte de dialogue parent pour ce contexte de dialogue ou undefined si ce contexte n’a pas de parent.

parent: DialogContext | undefined

Valeur de propriété

DialogContext | undefined

Remarques

Lorsqu’il tente de démarrer un dialogue, le contexte de dialogue recherche le Dialog.id dans ses dialogues . Si la boîte de dialogue à démarrer est introuvable dans ce contexte de dialogue, elle recherche dans son contexte de dialogue parent, et ainsi de suite.

services

Obtient la collection de services contextuelle à ce contexte de dialogue.

services: TurnContextStateCollection

Valeur de propriété

TurnContextStateCollection

stack

Obtient la pile de dialogues actuelle.

stack: DialogInstance[]

Valeur de propriété

state

Obtient le DialogStateManager qui gère l’affichage de toutes les étendues de mémoire.

state: DialogStateManager

Valeur de propriété

Détails de la méthode

beginDialog(string, object)

Démarre une instance de dialogue et l’envoie (push) sur la pile de dialogues. Crée une instance de la boîte de dialogue et l’envoie (push) sur la pile.

function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>

Paramètres

dialogId

string

ID de la boîte de dialogue à démarrer.

options

object

Optionnel. Arguments à passer dans la boîte de dialogue au démarrage.

Retours

Promise<DialogTurnResult>

une promesse de résolution du résultat du tour de dialogue.

Remarques

S’il existe déjà un dialogue actif sur la pile, ce dialogue sera suspendu jusqu’à ce qu’il soit à nouveau le dialogue supérieur de la pile.

L’état de l’objet retourné décrit l’état de la pile de dialogues une fois cette méthode terminée.

Cette méthode lève une exception si le dialogue demandé est introuvable dans ce contexte de dialogue ou dans l’un de ses ancêtres.

Par exemple:

const result = await dc.beginDialog('greeting', { name: user.name });

Voir également

cancelAllDialogs(boolean, string, any)

Annule tous les dialogues de la pile de dialogues et efface la pile.

function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>

Paramètres

cancelParents

boolean

Optionnel. Si true tous les dialogues parents sont également annulés.

eventName

string

Optionnel. Nom d’un événement personnalisé à déclencher en tant que dialogues annulés. Cette valeur par défaut est cancelDialog.

eventValue

any

Optionnel. Valeur à transmettre avec l’événement d’annulation personnalisé.

Retours

Promise<DialogTurnResult>

une promesse de résolution du résultat du tour de dialogue.

Remarques

Cela appelle la méthode Dialog.endDialog de chaque dialogue avant de supprimer le dialogue de la pile.

S’il y avait des dialogues sur la pile initialement, l’état de la valeur de retour est annulé; sinon, il est vide.

Cet exemple efface une pile de dialogues, dc, avant de démarrer une boîte de dialogue « bookFlight ».

await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');

Voir également

  • endDialog

continueDialog()

Poursuit l’exécution du dialogue actif, s’il en existe un, en transmettant ce contexte de dialogue à sa méthode Dialog.continueDialog.

function continueDialog(): Promise<DialogTurnResult>

Retours

Promise<DialogTurnResult>

une promesse de résolution du résultat du tour de dialogue.

Remarques

Une fois l’appel terminé, vous pouvez vérifier l'du contexte de tour a répondu propriété pour déterminer si la boîte de dialogue a envoyé une réponse à l’utilisateur.

L’état de l’objet retourné décrit l’état de la pile de dialogues une fois cette méthode terminée.

En règle générale, vous appelez cela à partir du gestionnaire de tour de votre bot.

Par exemple:

const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
    // Send fallback message
    await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}

emitEvent(string, any, boolean, boolean)

Recherche une boîte de dialogue avec un ID donné.

function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>

Paramètres

name

string

Nom de l’événement à déclencher.

value

any

Optionnel. Valeur à envoyer avec l’événement.

bubble

boolean

Optionnel. Indicateur pour contrôler si l’événement doit être en bulles à son parent s’il n’est pas géré localement. La valeur par défaut est true.

fromLeaf

boolean

Optionnel. Indique si l’événement est émis à partir d’un nœud feuille.

Retours

Promise<boolean>

true si l’événement a été géré.

Remarques

Émet un événement nommé pour la boîte de dialogue active, ou une personne qui l’a démarrée, pour gérer.

endDialog(any)

Termine une boîte de dialogue et l’affiche hors de la pile. Retourne un résultat facultatif au parent du dialogue.

function endDialog(result?: any): Promise<DialogTurnResult>

Paramètres

result

any

Optionnel. Résultat à passer à la logique parente. Il peut s’agir du dialogue suivant sur la pile, ou s’il s’agissait du dernier dialogue de la pile, d’un contexte de dialogue parent ou du gestionnaire de tour du bot.

Retours

Promise<DialogTurnResult>

une promesse de résolution du résultat du tour de dialogue.

Remarques

Le dialogue parent est le dialogue suivant de la pile de dialogues, s’il en existe un. Cette méthode appelle la méthode Dialog.resumeDialog du parent, en passant le résultat retourné par la boîte de dialogue de fin. S’il n’existe aucune boîte de dialogue parente, le tour se termine et le résultat est disponible pour le bot via le résultat de l’objet retourné propriété.

L’état de l’objet retourné décrit l’état de la pile de dialogues une fois cette méthode terminée.

En règle générale, vous devez appeler cela dans la logique d’un dialogue spécifique pour signaler au contexte de dialogue que le dialogue a terminé, le dialogue doit être supprimé de la pile et le dialogue parent doit reprendre.

Par exemple:

return await dc.endDialog(returnValue);

Voir également

findDialog(string)

Recherche une boîte de dialogue avec un ID donné.

function findDialog(dialogId: string): Dialog | undefined

Paramètres

dialogId

string

ID de la boîte de dialogue à rechercher.

Retours

Dialog | undefined

Boîte de dialogue de l’ID fourni.

Remarques

Si la boîte de dialogue à démarrer est introuvable dans le DialogSet associée à ce contexte de dialogue, elle tente de trouver le dialogue dans son contexte de dialogue parent.

Voir également

  • boîtes de dialogue
  • parent

getLocale()

Obtenez cultureInfo dans DialogContext.

function getLocale(): string

Retours

string

chaîne de paramètres régionaux.

prompt(string, string | Partial<Activity> | PromptOptions)

Fonction d’assistance pour simplifier la mise en forme des options d’appel d’une boîte de dialogue d’invite.

function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>

Paramètres

dialogId

string

ID de la boîte de dialogue d’invite à démarrer.

promptOrOptions

string | Partial<Activity> | PromptOptions

Texte de l’invite initiale pour envoyer l’utilisateur, l’activité à envoyer en tant qu’invite initiale ou l’objet avec lequel mettre en forme la boîte de dialogue d’invite.

Retours

Promise<DialogTurnResult>

Remarques

Cette méthode d’assistance met en forme l’objet à utiliser comme paramètre options, puis appelle beginDialog pour démarrer la boîte de dialogue d’invite spécifiée.

return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Fonction d’assistance pour simplifier la mise en forme des options d’appel d’une boîte de dialogue d’invite.

function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>

Paramètres

dialogId

string

ID de la boîte de dialogue d’invite à démarrer.

promptOrOptions

string | Partial<Activity> | PromptOptions

Texte de l’invite initiale pour envoyer l’utilisateur, l’activité à envoyer en tant qu’invite initiale ou l’objet avec lequel mettre en forme la boîte de dialogue d’invite.

choices

string | Choice[]

Optionnel. Tableau de choix pour l’utilisateur parmi lequel choisir, à utiliser avec un ChoicePrompt.

Retours

Promise<DialogTurnResult>

Remarques

Cette méthode d’assistance met en forme l’objet à utiliser comme paramètre options, puis appelle beginDialog pour démarrer la boîte de dialogue d’invite spécifiée.

return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);

replaceDialog(string, object)

Termine le dialogue actif et démarre un nouveau dialogue à sa place.

function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>

Paramètres

dialogId

string

ID de la boîte de dialogue à démarrer.

options

object

Optionnel. Arguments à passer dans la nouvelle boîte de dialogue au démarrage.

Retours

Promise<DialogTurnResult>

une promesse de résolution du résultat du tour de dialogue.

Remarques

Cela est particulièrement utile pour créer une boucle ou rediriger vers un autre dialogue.

L’état de l’objet retourné décrit l’état de la pile de dialogues une fois cette méthode terminée.

Cette méthode est similaire à la fin du dialogue actuel et commence immédiatement la nouvelle. Toutefois, la boîte de dialogue parente n’est ni reprise ni avertie.

Voir également

repromptDialog()

Demande à l’utilisateur de réinscrire l’entrée dans la boîte de dialogue active.

function repromptDialog(): Promise<void>

Retours

Promise<void>

Remarques

Cela appelle la méthode repromptDialog du dialogue actif.

Par exemple:

await dc.repromptDialog();