WaterfallDialog class
Ermöglicht die Erstellung von benutzerdefinierten Dialogfeldern, die auf einem Wasserfall basieren.
- Extends
Konstruktoren
| Waterfall |
Erstellt ein neues Wasserfalldialogfeld. |
Methoden
| add |
Wird einmal für jedes Dialogfeld in einer Bibliothek aufgerufen, um dem Dialogfeld die Möglichkeit zu geben, dem globalen Bibliotheksaktionssatz seine |
| begin<T>(Session, T) | Wird aufgerufen, wenn eine neue Dialogsitzung gestartet wird. |
| begin |
Bindet eine Aktion an das Dialogfeld, das ein weiteres Dialogfeld startet, wenn es ausgelöst wird. Das neue Dialogfeld wird auf den Stapel verschoben, sodass der aktuelle Vorgang nicht automatisch beendet wird. Die aktuelle Aufgabe wird fortgesetzt, sobald das neue Dialogfeld endet. Die integrierten Eingabeaufforderungen werden den Benutzer automatisch erneut auffordern, sobald dies geschieht, aber dieses Verhalten kann deaktiviert werden, indem das promptAfterAction Flag beim Aufrufen einer integrierten Eingabeaufforderung festgelegt wird. |
| cancel |
Bindet eine Aktion an das Dialogfeld, das das Dialogfeld bei jedem Auslösen abbricht. Wenn der Vorgang abgebrochen wurde, werden die übergeordneten Dialogfelder mit einem fortgesetzt Code fortgesetzt, der angibt, dass es abgebrochenwurde. |
| clone(Action |
Gibt einen Klon eines vorhandenen ActionSet zurück. |
| create |
Erstellt eine Funktion, die einen Wasserfall steuern kann. Jedes Mal, wenn die Funktion aufgerufen wird, wird sie den Wasserfall vorwärts fahren, indem er den nächsten Schritt des Wasserfalls aufruft. Die Funktion verwendet |
| custom |
Bindet eine benutzerdefinierte Aktion an das Dialogfeld, das beim Auslösen der übergebenen onSelectAction--Handlers übergeben wird. |
| dialog |
Wird aufgerufen, wenn ein Stammdialogfeld durch ein anderes Dialogfeld unterbrochen wird. Dadurch wird das Dialogfeld, das unterbrochen wird, die Möglichkeit gegeben, benutzerdefinierte Logik auszuführen, bevor sie aus dem Stapel entfernt wird. Das Dialogfeld selbst ist dafür verantwortlich, den Dialogstapel zu löschen und das neue Dialogfeld zu starten. |
| dialog |
Ein untergeordnetes Dialogfeld wurde beendet, und das aktuelle Dialogfeld wird fortgesetzt. |
| end |
Bindet eine Aktion, die die Unterhaltung mit dem Benutzer beendet, wenn sie ausgelöst wird. |
| find |
Wird während des Library.findRoutes() aufgerufen, Aufruf für jedes Dialogfeld im Stapel, um festzustellen, ob eine der Dialogfeldaktionen von den Benutzern ausgelöst wird. |
| on |
Registriert einen Handler, der vor jedem Schritt des Wasserfalls aufgerufen wird. Die Handler |
| recognize(IRecognize |
Analysiert die Äußerung der Benutzer und weist eine Bewertung von 0,0 - 1,0 zu, die angibt, wie sicher das Dialogfeld ist, dass er die Äußerung der Benutzer verstanden hat. Diese Methode wird immer für das aktive Dialogfeld im Stapel aufgerufen. Eine Punktzahl von 1,0 zeigt eine perfekte Übereinstimmung an und beendet jede weitere Erkennung. Wenn die Bewertung kleiner als 1,0 ist, weist jedes Dialogfeld im Stapel seine recognizeAction() Methode auf, um festzustellen, ob benannte Aktionen an das Dialogfeld gebunden sind, die den Benutzern besser entsprechen. Globale Aktionen, die auf Bot-Ebene registriert sind, werden ebenfalls ausgewertet. Wenn das Dialogfeld eine Höhere Bewertung aufweist, werden die Dialogfelder replyReceived() Methode aufgerufen, wobei das ergebnisobjekt aufgerufen wird, das vom Erkennungsaufruf zurückgegeben wird. Auf diese Weise kann das Dialogfeld zusätzliche Daten übergeben, die während der Erkennungsphase an die replyReceived()-Methode zur Behandlung gesammelt werden. Sollte eine Aktion mit einer höheren Bewertung vorhanden sein, wird die Aktion anstelle der Dialoge replyReceived()-Methode aufgerufen. Das Dialogfeld bleibt im Stapel und kann an einem bestimmten Punkt fortgesetzt werden, wenn die Aktion ein neues Dialogfeld aufruft, sodass Dialogfelder auf unerwartete Aufrufe an dialogResumed()vorbereiten sollten. |
| reload |
Bindet eine Aktion an das Dialogfeld, das bewirkt, dass das Dialogfeld bei jedem Auslösen erneut geladen wird. Dies ist nützlich, um Logik zu implementieren, die Benutzerutterancen wie "Start over" behandelt. |
| reply |
Verarbeitet nachrichten, die vom Benutzer empfangen wurden. Vom Dialogfeldsystem aufgerufen. |
| select |
Wählt die Route mit dem höchsten Konfidenzwert für die Äußerung aus. |
| trigger |
Bindet eine Aktion an das Dialogfeld, das es zum aktiven Dialogfeld macht, wenn es ausgelöst wird. Das Standardverhalten besteht darin, ein vorhandenes Dialogfeld durch Löschen des Stapels und Starten des Dialogfelds am Stamm des Stapels zu interupieren. Das zu unterbrechende Dialogfeld kann diese Unterbrechung abfangen, indem ein benutzerdefinierter onInterrupted-Handler zu den Triggeraktionsoptionen hinzugefügt wird. Darüber hinaus können Sie die Art und Weise anpassen, wie das ausgelöste Dialogfeld gestartet wird, indem Sie eine benutzerdefinierte onSelectAction Handler für die Triggeraktionsoptionen bereitstellen. |
Details zum Konstruktor
WaterfallDialog(IDialogWaterfallStep | IDialogWaterfallStep[])
Erstellt ein neues Wasserfalldialogfeld.
new WaterfallDialog(steps: IDialogWaterfallStep | IDialogWaterfallStep[])
Parameter
- steps
Sequenz von Funktionen, die in der Reihenfolge aufgerufen werden sollen.
Details zur Methode
addDialogTrigger(ActionSet, string)
Wird einmal für jedes Dialogfeld in einer Bibliothek aufgerufen, um dem Dialogfeld die Möglichkeit zu geben, dem globalen Bibliotheksaktionssatz seine triggerAction() hinzuzufügen. Diese Trigger werden einem beginDialogAction() zugeordnet, der das Dialogfeld startet, wenn die Triggerbedingung erfüllt ist.
function addDialogTrigger(actions: ActionSet, dialogId: string)
Parameter
- actions
- ActionSet
Globaler Aktionssatz "Bibliotheken".
- dialogId
-
string
Die vollqualifizierte ID des auszulösenden Dialogfelds.
begin<T>(Session, T)
Wird aufgerufen, wenn eine neue Dialogsitzung gestartet wird.
function begin<T>(session: Session, args?: T)
Parameter
- session
- Session
Session-Objekt für die aktuelle Unterhaltung.
- args
-
T
(Optional) Argumente, die vom übergeordneten Element an das Dialogfeld übergeben werden.
beginDialogAction(string, string, IBeginDialogActionOptions)
Bindet eine Aktion an das Dialogfeld, das ein weiteres Dialogfeld startet, wenn es ausgelöst wird. Das neue Dialogfeld wird auf den Stapel verschoben, sodass der aktuelle Vorgang nicht automatisch beendet wird. Die aktuelle Aufgabe wird fortgesetzt, sobald das neue Dialogfeld endet. Die integrierten Eingabeaufforderungen werden den Benutzer automatisch erneut auffordern, sobald dies geschieht, aber dieses Verhalten kann deaktiviert werden, indem das promptAfterAction Flag beim Aufrufen einer integrierten Eingabeaufforderung festgelegt wird.
function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)
Parameter
- name
-
string
Eindeutiger Name zum Zuweisen der Aktion.
- id
-
string
ID des zu startenden Dialogfelds.
- options
- IBeginDialogActionOptions
(Optional) Optionen, die zum Konfigurieren der Aktion verwendet werden. Wenn Übereinstimmungen angegeben ist, lauscht der Benutzer auf ein Wort oder einen Ausdruck, der die Aktion auslöst, andernfalls muss die Aktion mit CardAction.dialogAction() an eine Schaltfläche gebunden werden, die Aktion auszulösen. Sie können auch dialogArgs verwenden, um zusätzliche Params an das zu startende Dialogfeld zu übergeben.
Gibt zurück
cancelAction(string, TextOrMessageType, ICancelActionOptions)
Bindet eine Aktion an das Dialogfeld, das das Dialogfeld bei jedem Auslösen abbricht. Wenn der Vorgang abgebrochen wurde, werden die übergeordneten Dialogfelder mit einem fortgesetzt Code fortgesetzt, der angibt, dass es abgebrochenwurde.
function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parameter
- name
-
string
Eindeutiger Name zum Zuweisen der Aktion.
(Optional) Nachricht, die dem Benutzer vor dem Abbrechen des Dialogfelds gesendet werden soll.
- options
- ICancelActionOptions
(Optional) Optionen, die zum Konfigurieren der Aktion verwendet werden. Wenn Übereinstimmungen angegeben ist, lauscht der Benutzer auf ein Wort oder einen Ausdruck, der die Aktion auslöst, andernfalls muss die Aktion mit CardAction.dialogAction() an eine Schaltfläche gebunden werden, die Aktion auszulösen.
Gibt zurück
clone(ActionSet)
Gibt einen Klon eines vorhandenen ActionSet zurück.
function clone(copyTo?: ActionSet)
Parameter
- copyTo
- ActionSet
(Optional) Instanz, in die das aktuelle Objekt kopiert werden soll. Wenn eine neue Instanz fehlt, wird eine neue Instanz erstellt.
Gibt zurück
createHandler(IDialogWaterfallStep[])
Erstellt eine Funktion, die einen Wasserfall steuern kann. Jedes Mal, wenn die Funktion aufgerufen wird, wird sie den Wasserfall vorwärts fahren, indem er den nächsten Schritt des Wasserfalls aufruft. Die Funktion verwendet session.dialogData, um den aktuellen Schritt der Wasserfälle zu halten.
Um den Wasserfall vorwärts zu steuern, sollte der an den Handler übergebene args Param args.resumed = builder.ResumeReason.completedhaben. Sobald das Ende des Wasserfalls erreicht ist, wird es automatisch aufgerufen, session.endDialogWithResult(args) die übergebenen Argumente zurückzugeben.
Wenn der args Param das resumed Feld fehlt, beginnt der Wasserfall einfach mit dem Aufrufen des ersten Schritts.
static function createHandler(steps: IDialogWaterfallStep[])
Parameter
- steps
Auszuführende Wasserfallschritte.
Gibt zurück
(session: Session, args?: any) => void
customAction(IDialogActionOptions)
Bindet eine benutzerdefinierte Aktion an das Dialogfeld, das beim Auslösen der übergebenen onSelectAction--Handlers übergeben wird.
function customAction(options: IDialogActionOptions)
Parameter
- options
- IDialogActionOptions
Die Zum Konfigurieren der Aktion verwendeten Optionen. Wenn Übereinstimmungen angegeben ist, lauscht die Aktion dem Benutzer, um ein Wort oder einen Ausdruck zu sagen, der die Aktion auslöst. Benutzerdefinierte Abgleichslogik kann mithilfe von onFindActionbereitgestellt werden.
Gibt zurück
dialogInterrupted(Session, string, any)
Wird aufgerufen, wenn ein Stammdialogfeld durch ein anderes Dialogfeld unterbrochen wird. Dadurch wird das Dialogfeld, das unterbrochen wird, die Möglichkeit gegeben, benutzerdefinierte Logik auszuführen, bevor sie aus dem Stapel entfernt wird. Das Dialogfeld selbst ist dafür verantwortlich, den Dialogstapel zu löschen und das neue Dialogfeld zu starten.
function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)
Parameter
- session
- Session
Session-Objekt für die aktuelle Unterhaltung.
- dialogId
-
string
ID des Dialogfelds, das gestartet werden soll.
- dialogArgs
-
any
Argumente, die an das neue Dialogfeld übergeben werden sollen.
dialogResumed<T>(Session, IDialogResult<T>)
Ein untergeordnetes Dialogfeld wurde beendet, und das aktuelle Dialogfeld wird fortgesetzt.
function dialogResumed<T>(session: Session, result: IDialogResult<T>)
Parameter
- session
- Session
Session-Objekt für die aktuelle Unterhaltung.
- result
Vom untergeordneten Dialogfeld zurückgegebenes Ergebnis.
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
Bindet eine Aktion, die die Unterhaltung mit dem Benutzer beendet, wenn sie ausgelöst wird.
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parameter
- name
-
string
Eindeutiger Name zum Zuweisen der Aktion.
(Optional) Nachricht, die den Benutzer vor dem Beenden der Unterhaltung sendet.
- options
- ICancelActionOptions
(Optional) Optionen, die zum Konfigurieren der Aktion verwendet werden. Wenn Übereinstimmungen angegeben ist, lauscht der Benutzer auf ein Wort oder einen Ausdruck, der die Aktion auslöst, andernfalls muss die Aktion mit CardAction.dialogAction() an eine Schaltfläche gebunden werden, die Aktion auszulösen.
Gibt zurück
findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)
Wird während des Library.findRoutes() aufgerufen, Aufruf für jedes Dialogfeld im Stapel, um festzustellen, ob eine der Dialogfeldaktionen von den Benutzern ausgelöst wird.
function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)
Parameter
- context
- IRecognizeDialogContext
Der Kontext der eingehenden Nachricht sowie die dialogData- für das ausgewertete Dialogfeld.
- callback
-
(err: Error, results: IRouteResult[]) => void
Funktion, die mit den wichtigsten Kandidatenrouten aufgerufen werden soll.
onBeforeStep((session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)
Registriert einen Handler, der vor jedem Schritt des Wasserfalls aufgerufen wird. Die Handler next() Funktion führen entweder den nächsten Handler in der Kette oder den Wasserfallschritt selbst aus. Mit diesem Handler können Entwickler Schritte überspringen und die Argumente verarbeiten, die an den nächsten Schritt übergeben werden.
Mehrere Handler können registriert werden, und der registrierte Handler wird vor allen anderen Handlern in der Kette ausgeführt.
function onBeforeStep(handler: (session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)
Parameter
- handler
-
(session: Session, step: number, args: any, next: (step: number, args: any) => void) => void
Funktion zum Aufrufen zwischen den einzelnen Wasserfallschritten.
Gibt zurück
recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)
Analysiert die Äußerung der Benutzer und weist eine Bewertung von 0,0 - 1,0 zu, die angibt, wie sicher das Dialogfeld ist, dass er die Äußerung der Benutzer verstanden hat. Diese Methode wird immer für das aktive Dialogfeld im Stapel aufgerufen. Eine Punktzahl von 1,0 zeigt eine perfekte Übereinstimmung an und beendet jede weitere Erkennung. Wenn die Bewertung kleiner als 1,0 ist, weist jedes Dialogfeld im Stapel seine recognizeAction() Methode auf, um festzustellen, ob benannte Aktionen an das Dialogfeld gebunden sind, die den Benutzern besser entsprechen. Globale Aktionen, die auf Bot-Ebene registriert sind, werden ebenfalls ausgewertet. Wenn das Dialogfeld eine Höhere Bewertung aufweist, werden die Dialogfelder replyReceived() Methode aufgerufen, wobei das ergebnisobjekt aufgerufen wird, das vom Erkennungsaufruf zurückgegeben wird. Auf diese Weise kann das Dialogfeld zusätzliche Daten übergeben, die während der Erkennungsphase an die replyReceived()-Methode zur Behandlung gesammelt werden.
Sollte eine Aktion mit einer höheren Bewertung vorhanden sein, wird die Aktion anstelle der Dialoge replyReceived()-Methode aufgerufen. Das Dialogfeld bleibt im Stapel und kann an einem bestimmten Punkt fortgesetzt werden, wenn die Aktion ein neues Dialogfeld aufruft, sodass Dialogfelder auf unerwartete Aufrufe an dialogResumed()vorbereiten sollten.
function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)
Parameter
- context
- IRecognizeDialogContext
Der Kontext der Anforderung.
- callback
-
(err: Error, result: IRecognizeResult) => void
Funktion, die mit den Erkennungsergebnissen aufgerufen werden soll.
reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)
Bindet eine Aktion an das Dialogfeld, das bewirkt, dass das Dialogfeld bei jedem Auslösen erneut geladen wird. Dies ist nützlich, um Logik zu implementieren, die Benutzerutterancen wie "Start over" behandelt.
function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)
Parameter
- name
-
string
Eindeutiger Name zum Zuweisen der Aktion.
(Optional) Nachricht, die den Benutzer vor dem Erneutladen des Dialogfelds sendet.
- options
- IBeginDialogActionOptions
(Optional) Optionen, die zum Konfigurieren der Aktion verwendet werden. Wenn Übereinstimmungen angegeben ist, lauscht der Benutzer auf ein Wort oder einen Ausdruck, der die Aktion auslöst, andernfalls muss die Aktion mit CardAction.dialogAction() an eine Schaltfläche gebunden werden, die Aktion auszulösen. Sie können auch dialogArgs verwenden, um zusätzliche Params an das Dialogfeld zu übergeben, wenn sie neu geladen werden.
Gibt zurück
replyReceived(Session)
Verarbeitet nachrichten, die vom Benutzer empfangen wurden. Vom Dialogfeldsystem aufgerufen.
function replyReceived(session: Session)
Parameter
- session
- Session
Session-Objekt für die aktuelle Unterhaltung.
selectActionRoute(Session, IRouteResult)
Wählt die Route mit dem höchsten Konfidenzwert für die Äußerung aus.
function selectActionRoute(session: Session, route: IRouteResult)
Parameter
- session
- Session
Session-Objekt für die aktuelle Unterhaltung.
- route
- IRouteResult
Ergebnisse, die vom Aufruf von findActionRoutes()zurückgegeben werden.
triggerAction(ITriggerActionOptions)
Bindet eine Aktion an das Dialogfeld, das es zum aktiven Dialogfeld macht, wenn es ausgelöst wird. Das Standardverhalten besteht darin, ein vorhandenes Dialogfeld durch Löschen des Stapels und Starten des Dialogfelds am Stamm des Stapels zu interupieren. Das zu unterbrechende Dialogfeld kann diese Unterbrechung abfangen, indem ein benutzerdefinierter onInterrupted-Handler zu den Triggeraktionsoptionen hinzugefügt wird. Darüber hinaus können Sie die Art und Weise anpassen, wie das ausgelöste Dialogfeld gestartet wird, indem Sie eine benutzerdefinierte onSelectAction Handler für die Triggeraktionsoptionen bereitstellen.
function triggerAction(options: ITriggerActionOptions)
Parameter
- options
- ITriggerActionOptions
Optionen zum Konfigurieren der Aktion.