Condividi tramite


Dialog class

Classe di base per tutti i dialoghi. I dialoghi sono il componente principale del framework BotBuilder. I bot usano Dialoghi per gestire conversazioni arbitrariamente complesse con un utente.

Extends

Metodi

addDialogTrigger(ActionSet, string)

Chiamato una volta per ogni dialogo all'interno di una libreria per consentire al dialogo di aggiungere il relativo triggerAction() al set di azioni globali delle librerie. Questi trigger vengono mappati a un beginDialogAction() che avvia la finestra di dialogo quando viene soddisfatta la condizione del trigger.

begin<T>(Session, T)

Chiamato all'avvio di una nuova sessione di dialogo.

beginDialogAction(string, string, IBeginDialogActionOptions)

Associa un'azione alla finestra di dialogo che avvierà un'altra finestra di dialogo ogni volta che viene attivata. Il nuovo dialogo verrà inserito nello stack in modo da non terminare automaticamente l'attività corrente. L'attività corrente verrà continuata al termine della nuova finestra di dialogo. Le richieste predefinite richiederanno automaticamente all'utente una volta che ciò si verifica, ma tale comportamento può essere disabilitato impostando il flag promptAfterAction quando si chiama un prompt predefinito.

cancelAction(string, TextOrMessageType, ICancelActionOptions)

Associa un'azione alla finestra di dialogo che annulla la finestra di dialogo ogni volta che viene attivata. In caso di annullamento, il padre dei dialoghi verrà ripreso con un ripreso codice che indica che è stato annullato.

clone(ActionSet)

Restituisce un clone di un ActionSet esistente.

customAction(IDialogActionOptions)

Associa un'azione personalizzata alla finestra di dialogo che chiamerà l'oggetto passato in onSelectAction gestore quando viene attivato.

dialogInterrupted(Session, string, any)

Chiamato quando un dialogo radice viene interrotto da un altro dialogo. In questo modo, il dialogo che viene interrotto consente di eseguire la logica personalizzata prima che venga rimossa dallo stack. Il dialogo stesso è responsabile della cancellazione dello stack di dialoghi e dell'avvio del nuovo dialogo.

dialogResumed<T>(Session, IDialogResult<T>)

Una finestra di dialogo figlio è terminata e quella corrente viene ripresa.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Associa un'azione che terminerà la conversazione con l'utente quando viene attivata.

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Chiamato durante la Library.findRoutes() chiamare per ogni finestra di dialogo nello stack per determinare se una delle azioni di dialogo viene attivata dall'espressione degli utenti.

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

Analizza l'espressione degli utenti e assegna un punteggio compreso tra 0,0 e 1,0 che indica quanto sia sicuro che il dialogo abbia compreso l'espressione degli utenti. Questo metodo viene sempre chiamato per il dialogo attivo nello stack. Un punteggio di 1,0 indicherà una corrispondenza perfetta e terminerà qualsiasi ulteriore riconoscimento. Quando il punteggio è minore di 1,0, ogni dialogo nello stack avrà il metodo recognizeAction() chiamato anche per verificare se sono presenti azioni denominate associate al dialogo che corrisponde meglio all'espressione degli utenti. Verranno valutate anche le azioni globali registrate a livello di bot. Se il punteggio del dialogo è superiore a qualsiasi azione associata, i dialoghi metodo replyReceived() verranno chiamati con l'oggetto risultato restituito dalla chiamata recognize(). In questo modo, il dialogo passa dati aggiuntivi raccolti durante la fase di riconoscimento al metodo replyReceived() per la gestione.

Se è presente un'azione con un punteggio maggiore, la finestra di dialogo verrà richiamata invece del metodo replyReceived() dei dialoghi. La finestra di dialogo rimarrà nello stack e potrebbe essere ripresa a un certo punto se l'azione richiama una nuova finestra di dialogo in modo che i dialoghi siano preparati per le chiamate impreviste a dialogResumed().

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

Associa un'azione alla finestra di dialogo che causerà il caricamento del dialogo ogni volta che viene attivato. Ciò è utile per implementare la logica che gestisce espressioni utente come "start over".

replyReceived(Session, IRecognizeResult)

Chiamato quando un nuovo messaggio di risposta è stato ricevuto da un utente. Le classi derivate devono implementare questa opzione per elaborare il messaggio ricevuto dall'utente.

selectActionRoute(Session, IRouteResult)

Seleziona la route con il punteggio di attendibilità più alto per l'espressione.

triggerAction(ITriggerActionOptions)

Associa un'azione alla finestra di dialogo che lo rende il dialogo attivo ogni volta che viene attivato. Il comportamento predefinito consiste nell'interupuping di qualsiasi dialogo esistente cancellando lo stack e avviando il dialogo nella radice dello stack. La finestra di dialogo interrotta può intercettare questa interruzione aggiungendo un personalizzato onInterrupted gestore alle relative opzioni di azione trigger. Inoltre, è possibile personalizzare il modo in cui viene avviata la finestra di dialogo attivata fornendo un personalizzato inSelectAction gestore per le opzioni di azione trigger.

Dettagli metodo

addDialogTrigger(ActionSet, string)

Chiamato una volta per ogni dialogo all'interno di una libreria per consentire al dialogo di aggiungere il relativo triggerAction() al set di azioni globali delle librerie. Questi trigger vengono mappati a un beginDialogAction() che avvia la finestra di dialogo quando viene soddisfatta la condizione del trigger.

function addDialogTrigger(actions: ActionSet, dialogId: string)

Parametri

actions
ActionSet

Set di azioni globali delle librerie.

dialogId

string

ID completo della finestra di dialogo da attivare.

begin<T>(Session, T)

Chiamato all'avvio di una nuova sessione di dialogo.

function begin<T>(session: Session, args?: T)

Parametri

session
Session

Oggetto sessione per la conversazione corrente.

args

T

(Facoltativo) argomenti passati alla finestra di dialogo dal relativo elemento padre.

beginDialogAction(string, string, IBeginDialogActionOptions)

Associa un'azione alla finestra di dialogo che avvierà un'altra finestra di dialogo ogni volta che viene attivata. Il nuovo dialogo verrà inserito nello stack in modo da non terminare automaticamente l'attività corrente. L'attività corrente verrà continuata al termine della nuova finestra di dialogo. Le richieste predefinite richiederanno automaticamente all'utente una volta che ciò si verifica, ma tale comportamento può essere disabilitato impostando il flag promptAfterAction quando si chiama un prompt predefinito.

function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)

Parametri

name

string

Nome univoco per assegnare l'azione.

id

string

ID della finestra di dialogo da avviare.

options
IBeginDialogActionOptions

(Facoltativo) opzioni usate per configurare l'azione. Se corrisponde viene specificata, l'azione ascolterà l'utente di pronunciare una parola o una frase che attiva l'azione. In caso contrario, l'azione deve essere associata a un pulsante usando CardAction.dialogAction() per attivare l'azione. È anche possibile usare dialogArgs per passare parametri aggiuntivi alla finestra di dialogo avviata.

Restituisce

cancelAction(string, TextOrMessageType, ICancelActionOptions)

Associa un'azione alla finestra di dialogo che annulla la finestra di dialogo ogni volta che viene attivata. In caso di annullamento, il padre dei dialoghi verrà ripreso con un ripreso codice che indica che è stato annullato.

function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

Parametri

name

string

Nome univoco per assegnare l'azione.

msg
TextOrMessageType

(Facoltativo) messaggio per inviare l'utente prima di annullare la finestra di dialogo.

options
ICancelActionOptions

(Facoltativo) opzioni usate per configurare l'azione. Se corrisponde viene specificata, l'azione ascolterà l'utente di pronunciare una parola o una frase che attiva l'azione. In caso contrario, l'azione deve essere associata a un pulsante usando CardAction.dialogAction() per attivare l'azione.

Restituisce

clone(ActionSet)

Restituisce un clone di un ActionSet esistente.

function clone(copyTo?: ActionSet)

Parametri

copyTo
ActionSet

(Facoltativo) Istanza in cui copiare l'oggetto corrente. Se manca una nuova istanza verrà creata.

Restituisce

customAction(IDialogActionOptions)

Associa un'azione personalizzata alla finestra di dialogo che chiamerà l'oggetto passato in onSelectAction gestore quando viene attivato.

function customAction(options: IDialogActionOptions)

Parametri

options
IDialogActionOptions

Opzioni utilizzate per configurare l'azione. Se corrisponde viene specificata l'azione ascolterà l'utente per pronunciare una parola o una frase che attiva l'azione. È possibile fornire logica di corrispondenza personalizzata usando onFindAction.

Restituisce

dialogInterrupted(Session, string, any)

Chiamato quando un dialogo radice viene interrotto da un altro dialogo. In questo modo, il dialogo che viene interrotto consente di eseguire la logica personalizzata prima che venga rimossa dallo stack. Il dialogo stesso è responsabile della cancellazione dello stack di dialoghi e dell'avvio del nuovo dialogo.

function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)

Parametri

session
Session

Oggetto sessione per la conversazione corrente.

dialogId

string

ID della finestra di dialogo che deve essere avviata.

dialogArgs

any

Argomenti che devono essere passati al nuovo dialogo.

dialogResumed<T>(Session, IDialogResult<T>)

Una finestra di dialogo figlio è terminata e quella corrente viene ripresa.

function dialogResumed<T>(session: Session, result: IDialogResult<T>)

Parametri

session
Session

Oggetto sessione per la conversazione corrente.

result

IDialogResult<T>

Risultato restituito dal dialogo figlio.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Associa un'azione che terminerà la conversazione con l'utente quando viene attivata.

function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

Parametri

name

string

Nome univoco per assegnare l'azione.

msg
TextOrMessageType

(Facoltativo) messaggio per inviare l'utente prima di terminare la conversazione.

options
ICancelActionOptions

(Facoltativo) opzioni usate per configurare l'azione. Se corrisponde viene specificata, l'azione ascolterà l'utente di pronunciare una parola o una frase che attiva l'azione. In caso contrario, l'azione deve essere associata a un pulsante usando CardAction.dialogAction() per attivare l'azione.

Restituisce

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Chiamato durante la Library.findRoutes() chiamare per ogni finestra di dialogo nello stack per determinare se una delle azioni di dialogo viene attivata dall'espressione degli utenti.

function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)

Parametri

context
IRecognizeDialogContext

Contesto del messaggio in arrivo, nonché del dialogData per la finestra di dialogo valutata.

callback

(err: Error, results: IRouteResult[]) => void

Funzione da richiamare con le route candidate principali.

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

Analizza l'espressione degli utenti e assegna un punteggio compreso tra 0,0 e 1,0 che indica quanto sia sicuro che il dialogo abbia compreso l'espressione degli utenti. Questo metodo viene sempre chiamato per il dialogo attivo nello stack. Un punteggio di 1,0 indicherà una corrispondenza perfetta e terminerà qualsiasi ulteriore riconoscimento. Quando il punteggio è minore di 1,0, ogni dialogo nello stack avrà il metodo recognizeAction() chiamato anche per verificare se sono presenti azioni denominate associate al dialogo che corrisponde meglio all'espressione degli utenti. Verranno valutate anche le azioni globali registrate a livello di bot. Se il punteggio del dialogo è superiore a qualsiasi azione associata, i dialoghi metodo replyReceived() verranno chiamati con l'oggetto risultato restituito dalla chiamata recognize(). In questo modo, il dialogo passa dati aggiuntivi raccolti durante la fase di riconoscimento al metodo replyReceived() per la gestione.

Se è presente un'azione con un punteggio maggiore, la finestra di dialogo verrà richiamata invece del metodo replyReceived() dei dialoghi. La finestra di dialogo rimarrà nello stack e potrebbe essere ripresa a un certo punto se l'azione richiama una nuova finestra di dialogo in modo che i dialoghi siano preparati per le chiamate impreviste a dialogResumed().

function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)

Parametri

context
IRecognizeDialogContext

Contesto della richiesta.

callback

(err: Error, result: IRecognizeResult) => void

Funzione da richiamare con i risultati del riconoscimento.

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

Associa un'azione alla finestra di dialogo che causerà il caricamento del dialogo ogni volta che viene attivato. Ciò è utile per implementare la logica che gestisce espressioni utente come "start over".

function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)

Parametri

name

string

Nome univoco per assegnare l'azione.

msg
TextOrMessageType

(Facoltativo) messaggio per inviare l'utente prima di ricaricare la finestra di dialogo.

options
IBeginDialogActionOptions

(Facoltativo) opzioni usate per configurare l'azione. Se corrisponde viene specificata, l'azione ascolterà l'utente di pronunciare una parola o una frase che attiva l'azione. In caso contrario, l'azione deve essere associata a un pulsante usando CardAction.dialogAction() per attivare l'azione. È anche possibile usare dialogArgs per passare parametri aggiuntivi alla finestra di dialogo quando viene ricaricato.

Restituisce

replyReceived(Session, IRecognizeResult)

Chiamato quando un nuovo messaggio di risposta è stato ricevuto da un utente. Le classi derivate devono implementare questa opzione per elaborare il messaggio ricevuto dall'utente.

function replyReceived(session: Session, recognizeResult: IRecognizeResult)

Parametri

session
Session

Oggetto sessione per la conversazione corrente.

recognizeResult
IRecognizeResult

Risultati restituiti da una chiamata precedente al metodo recognize() dei dialoghi .

selectActionRoute(Session, IRouteResult)

Seleziona la route con il punteggio di attendibilità più alto per l'espressione.

function selectActionRoute(session: Session, route: IRouteResult)

Parametri

session
Session

Oggetto sessione per la conversazione corrente.

route
IRouteResult

Risultati restituiti dalla chiamata a findActionRoutes().

triggerAction(ITriggerActionOptions)

Associa un'azione alla finestra di dialogo che lo rende il dialogo attivo ogni volta che viene attivato. Il comportamento predefinito consiste nell'interupuping di qualsiasi dialogo esistente cancellando lo stack e avviando il dialogo nella radice dello stack. La finestra di dialogo interrotta può intercettare questa interruzione aggiungendo un personalizzato onInterrupted gestore alle relative opzioni di azione trigger. Inoltre, è possibile personalizzare il modo in cui viene avviata la finestra di dialogo attivata fornendo un personalizzato inSelectAction gestore per le opzioni di azione trigger.

function triggerAction(options: ITriggerActionOptions)

Parametri

options
ITriggerActionOptions

Opzioni usate per configurare l'azione.

Restituisce