Condividi tramite


DialogContext class

Contesto del dialogo corrente rispetto a un specifico DialogSet.

Commenti

Sono inclusi il contesto dei turni, le informazioni sul set di dialoghi e lo stato dello stack di dialoghi.

Dal codice all'esterno di una finestra di dialogo nel set, usare DialogSet.createContext per creare il contesto del dialogo. Usare quindi i metodi del contesto del dialogo per gestire la progressione dei dialoghi nel set.

Quando si implementa un dialogo, il contesto del dialogo è un parametro disponibile per i vari metodi di cui si esegue l'override o l'implementazione.

Per esempio:

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

Costruttori

DialogContext(DialogSet, DialogContext, DialogState)

Crea una nuova istanza della classe DialogContext.

DialogContext(DialogSet, TurnContext, DialogState)

Crea una nuova istanza della classe DialogContext.

Proprietà

activeDialog
child
context

Ottiene l'oggetto contesto per il turno.

dialogManager
dialogs

Ottiene i dialoghi che possono essere chiamati direttamente da questo contesto.

parent

Contesto del dialogo padre per questo contesto di dialogo o undefined se questo contesto non ha un elemento padre.

services

Ottiene la raccolta di servizi contestuale a questo contesto di dialogo.

stack

Ottiene lo stack di dialoghi corrente.

state

Ottiene DialogStateManager che gestisce la visualizzazione di tutti gli ambiti di memoria.

Metodi

beginDialog(string, object)

Avvia un'istanza del dialogo e la inserisce nello stack di dialoghi. Crea una nuova istanza del dialogo e lo inserisce nello stack.

cancelAllDialogs(boolean, string, any)

Annulla tutti i dialoghi nello stack di dialoghi e cancella lo stack.

continueDialog()

Continua l'esecuzione del dialogo attivo, se presente, passando questo contesto di dialogo al relativo metodo Dialog.continueDialog.

emitEvent(string, any, boolean, boolean)

Cerca una finestra di dialogo con un ID specificato.

endDialog(any)

Termina un dialogo e lo rimuove dallo stack. Restituisce un risultato facoltativo all'elemento padre del dialogo.

findDialog(string)

Cerca una finestra di dialogo con un ID specificato.

getLocale()

Ottenere CultureInfo in DialogContext.

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

Funzione helper per semplificare la formattazione delle opzioni per chiamare una finestra di dialogo di richiesta.

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

Funzione helper per semplificare la formattazione delle opzioni per chiamare una finestra di dialogo di richiesta.

replaceDialog(string, object)

Termina il dialogo attivo e avvia una nuova finestra di dialogo al suo posto.

repromptDialog()

Richiede al dialogo attivo di richiedere di nuovo all'utente l'input.

Dettagli costruttore

DialogContext(DialogSet, DialogContext, DialogState)

Crea una nuova istanza della classe DialogContext.

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

Parametri

dialogs
DialogSet

DialogSet per cui creare il contesto del dialogo.

contextOrDC
DialogContext

Oggetto TurnContext per il turno corrente del bot.

state
DialogState

Oggetto di stato da usare per leggere e scrivere DialogState nell'archiviazione.

Commenti

Il passaggio di un DialogContext'istanza di clonerà il contesto del dialogo.

DialogContext(DialogSet, TurnContext, DialogState)

Crea una nuova istanza della classe DialogContext.

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

Parametri

dialogs
DialogSet

DialogSet per cui creare il contesto del dialogo.

contextOrDC

TurnContext

Oggetto TurnContext per il turno corrente del bot.

state
DialogState

Oggetto di stato da usare per leggere e scrivere DialogState nell'archiviazione.

Commenti

Il passaggio di un DialogContext'istanza di clonerà il contesto del dialogo.

Dettagli proprietà

activeDialog

DialogInstance | undefined activeDialog

Valore della proprietà

DialogInstance | undefined

Informazioni sullo stato per il dialogo nella parte superiore dello stack di dialoghi o undefined se lo stack è vuoto.

child

DialogContext | undefined child

Valore della proprietà

DialogContext | undefined

Contesto del dialogo per figlio se il dialogo attivo è un contenitore.

context

Ottiene l'oggetto contesto per il turno.

context: TurnContext

Valore della proprietà

TurnContext

dialogManager

Avviso

Questa API è ora deprecata.

This property serves no function.

DialogManager dialogManager

Valore della proprietà

Istanza corrente di Gestione dialoghi. Questa proprietà è deprecata.

dialogs

Ottiene i dialoghi che possono essere chiamati direttamente da questo contesto.

dialogs: DialogSet

Valore della proprietà

parent

Contesto del dialogo padre per questo contesto di dialogo o undefined se questo contesto non ha un elemento padre.

parent: DialogContext | undefined

Valore della proprietà

DialogContext | undefined

Commenti

Quando tenta di avviare una finestra di dialogo, il contesto del dialogo cerca il Dialog.id nelle finestre di dialogo . Se il dialogo da avviare non viene trovato in questo contesto di dialogo, cerca nel contesto del dialogo padre e così via.

services

Ottiene la raccolta di servizi contestuale a questo contesto di dialogo.

services: TurnContextStateCollection

Valore della proprietà

TurnContextStateCollection

stack

Ottiene lo stack di dialoghi corrente.

stack: DialogInstance[]

Valore della proprietà

state

Ottiene DialogStateManager che gestisce la visualizzazione di tutti gli ambiti di memoria.

state: DialogStateManager

Valore della proprietà

Dettagli metodo

beginDialog(string, object)

Avvia un'istanza del dialogo e la inserisce nello stack di dialoghi. Crea una nuova istanza del dialogo e lo inserisce nello stack.

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

Parametri

dialogId

string

ID della finestra di dialogo da avviare.

options

object

Opzionale. Argomenti da passare alla finestra di dialogo all'avvio.

Restituisce

Promise<DialogTurnResult>

una promessa che risolve il risultato del turno del dialogo.

Commenti

Se è già presente un dialogo attivo nello stack, tale finestra di dialogo verrà sospesa fino a quando non sarà nuovamente la finestra di dialogo superiore nello stack.

Lo stato dell'oggetto restituito descrive lo stato dello stack di dialoghi al termine di questo metodo.

Questo metodo genera un'eccezione se il dialogo richiesto non viene trovato in questo contesto di dialogo o in uno dei relativi predecessori.

Per esempio:

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

Vedere anche

cancelAllDialogs(boolean, string, any)

Annulla tutti i dialoghi nello stack di dialoghi e cancella lo stack.

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

Parametri

cancelParents

boolean

Opzionale. Se true verranno annullati anche tutti i dialoghi padre.

eventName

string

Opzionale. Nome di un evento personalizzato da generare quando le finestre di dialogo vengono annullate. Per impostazione predefinita, cancelDialog.

eventValue

any

Opzionale. Valore da passare insieme all'evento di annullamento personalizzato.

Restituisce

Promise<DialogTurnResult>

una promessa che risolve il risultato del turno del dialogo.

Commenti

Viene chiamato il metodo Dialog.endDia log di ogni dialogo prima di rimuovere il dialogo dallo stack.

Se inizialmente sono presenti dialoghi nello stack, lo stato del valore restituito viene annullato; in caso contrario, è vuoto.

In questo esempio viene cancellato uno stack di dialoghi, dc, prima di avviare una finestra di dialogo 'bookFlight'.

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

Vedere anche

continueDialog()

Continua l'esecuzione del dialogo attivo, se presente, passando questo contesto di dialogo al relativo metodo Dialog.continueDialog.

function continueDialog(): Promise<DialogTurnResult>

Restituisce

Promise<DialogTurnResult>

una promessa che risolve il risultato del turno del dialogo.

Commenti

Al termine della chiamata, è possibile controllare il contesto di turno ha risposto proprietà per determinare se la finestra di dialogo ha inviato una risposta all'utente.

Lo stato dell'oggetto restituito descrive lo stato dello stack di dialoghi al termine di questo metodo.

In genere, è necessario chiamare questa operazione dall'interno del gestore dei turni del bot.

Per esempio:

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)

Cerca una finestra di dialogo con un ID specificato.

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

Parametri

name

string

Nome dell'evento da generare.

value

any

Opzionale. Valore da inviare insieme all'evento.

bubble

boolean

Opzionale. Flag per controllare se l'evento deve essere indirizzato all'elemento padre se non gestito localmente. Il valore predefinito è true.

fromLeaf

boolean

Opzionale. Indica se l'evento viene generato da un nodo foglia.

Restituisce

Promise<boolean>

true se l'evento è stato gestito.

Commenti

Genera un evento denominato per la finestra di dialogo corrente, o un utente che lo ha avviato, da gestire.

endDialog(any)

Termina un dialogo e lo rimuove dallo stack. Restituisce un risultato facoltativo all'elemento padre del dialogo.

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

Parametri

result

any

Opzionale. Risultato da passare alla logica padre. Potrebbe trattarsi del dialogo successivo nello stack o se si tratta dell'ultimo dialogo nello stack, di un contesto del dialogo padre o del gestore dei turni del bot.

Restituisce

Promise<DialogTurnResult>

una promessa che risolve il risultato del turno del dialogo.

Commenti

La finestra di dialogo padre è la finestra di dialogo successiva nello stack di dialoghi, se presente. Questo metodo chiama il metodo dialog.resumeDialog dell'elemento padre, passando il risultato restituito dal dialogo finale. Se non è presente alcun dialogo padre, il turno termina e il risultato è disponibile per il bot tramite il risultato restituito proprietà.

Lo stato dell'oggetto restituito descrive lo stato dello stack di dialoghi al termine di questo metodo.

In genere, è necessario chiamare questa operazione dall'interno della logica per un dialogo specifico per segnalare al contesto del dialogo che il dialogo è stato completato, il dialogo deve essere rimosso dallo stack e il dialogo padre deve riprendere.

Per esempio:

return await dc.endDialog(returnValue);

Vedere anche

findDialog(string)

Cerca una finestra di dialogo con un ID specificato.

function findDialog(dialogId: string): Dialog | undefined

Parametri

dialogId

string

ID della finestra di dialogo da cercare.

Restituisce

Dialog | undefined

Finestra di dialogo per l'ID specificato.

Commenti

Se il dialogo da avviare non viene trovato nel DialogSet associato a questo contesto di dialogo, tenta di trovare il dialogo nel contesto del dialogo padre.

Vedere anche

getLocale()

Ottenere CultureInfo in DialogContext.

function getLocale(): string

Restituisce

string

stringa delle impostazioni locali.

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

Funzione helper per semplificare la formattazione delle opzioni per chiamare una finestra di dialogo di richiesta.

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

Parametri

dialogId

string

ID della finestra di dialogo di richiesta da avviare.

promptOrOptions

string | Partial<Activity> | PromptOptions

Testo del prompt iniziale per inviare l'utente, l'attività da inviare come richiesta iniziale o l'oggetto con cui formattare la finestra di dialogo di richiesta.

Restituisce

Promise<DialogTurnResult>

Commenti

Questo metodo helper formatta l'oggetto da usare come parametro options e quindi chiama beginDialog per avviare la finestra di dialogo di richiesta specificata.

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

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

Funzione helper per semplificare la formattazione delle opzioni per chiamare una finestra di dialogo di richiesta.

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

Parametri

dialogId

string

ID della finestra di dialogo di richiesta da avviare.

promptOrOptions

string | Partial<Activity> | PromptOptions

Testo del prompt iniziale per inviare l'utente, l'Activity da inviare come prompt iniziale o l'oggetto con cui formattare la finestra di dialogo di richiesta.

choices

string | Choice[]

Opzionale. Matrice di opzioni tra cui scegliere l'utente, da usare con un ChoicePrompt.

Restituisce

Promise<DialogTurnResult>

Commenti

Questo metodo helper formatta l'oggetto da usare come parametro options e quindi chiama beginDialog per avviare la finestra di dialogo di richiesta specificata.

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

replaceDialog(string, object)

Termina il dialogo attivo e avvia una nuova finestra di dialogo al suo posto.

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

Parametri

dialogId

string

ID della finestra di dialogo da avviare.

options

object

Opzionale. Argomenti da passare alla nuova finestra di dialogo all'avvio.

Restituisce

Promise<DialogTurnResult>

una promessa che risolve il risultato del turno del dialogo.

Commenti

Ciò è particolarmente utile per la creazione di un ciclo o il reindirizzamento a un'altra finestra di dialogo.

Lo stato dell'oggetto restituito descrive lo stato dello stack di dialoghi al termine di questo metodo.

Questo metodo è simile a quello di terminare il dialogo corrente e iniziare immediatamente quello nuovo. Tuttavia, la finestra di dialogo padre non viene ripresa né notificata in altro modo.

Vedere anche

repromptDialog()

Richiede al dialogo attivo di richiedere di nuovo all'utente l'input.

function repromptDialog(): Promise<void>

Restituisce

Promise<void>

Commenti

Viene chiamato il metodo di del dialogo attivo.

Per esempio:

await dc.repromptDialog();