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
Dialog |
Crea una nuova istanza della classe DialogContext. |
Dialog |
Crea una nuova istanza della classe DialogContext. |
Proprietà
active |
|
child | |
context | Ottiene l'oggetto contesto per il turno. |
dialog |
|
dialogs | Ottiene i dialoghi che possono essere chiamati direttamente da questo contesto. |
parent | Contesto del dialogo padre per questo contesto di dialogo o |
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
begin |
Avvia un'istanza del dialogo e la inserisce nello stack di dialoghi. Crea una nuova istanza del dialogo e lo inserisce nello stack. |
cancel |
Annulla tutti i dialoghi nello stack di dialoghi e cancella lo stack. |
continue |
Continua l'esecuzione del dialogo attivo, se presente, passando questo contesto di dialogo al relativo metodo Dialog.continueDialog. |
emit |
Cerca una finestra di dialogo con un ID specificato. |
end |
Termina un dialogo e lo rimuove dallo stack. Restituisce un risultato facoltativo all'elemento padre del dialogo. |
find |
Cerca una finestra di dialogo con un ID specificato. |
get |
Ottenere CultureInfo in DialogContext. |
prompt(string, string | Partial<Activity> | Prompt |
Funzione helper per semplificare la formattazione delle opzioni per chiamare una finestra di dialogo di richiesta. |
prompt(string, string | Partial<Activity> | Prompt |
Funzione helper per semplificare la formattazione delle opzioni per chiamare una finestra di dialogo di richiesta. |
replace |
Termina il dialogo attivo e avvia una nuova finestra di dialogo al suo posto. |
reprompt |
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
- contextOrDC
- DialogContext
Oggetto TurnContext
- 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
- contextOrDC
-
TurnContext
Oggetto TurnContext
- 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
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
- finestre di dialogo
- padre
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