UniversalBot class

Verwaltet Ihre Bots-Unterhaltungen mit Benutzern über mehrere Kanäle hinweg.

Extends

Konstruktoren

UniversalBot(IConnector, any, string)

Erstellt eine neue Instanz des UniversalBot.

UniversalBot(IConnector, IDialogWaterfallStep | IDialogWaterfallStep[], string)

Erstellt eine neue Instanz des UniversalBot.

UniversalBot(IConnector, IUniversalBotSettings)

Erstellt eine neue Instanz des UniversalBot.

Eigenschaften

name

Der eindeutige Namespace der Bibliotheken. Dies wird verwendet, um die Dialogfelder für Bibliotheken und lokalisierte Eingabeaufforderungen zu festigen.

RouteTypes

Unterstützte routeType- Werte, die standardmäßig von findRoutes()zurückgegeben werden.

Methoden

addRouteResult(IRouteResult, IRouteResult[])

Hilfsmethode, die von den verschiedenen Methoden zur Routensuche aufgerufen wird, um das Hinzufügen einer Kandidatenroute zum Resultset zu verwalten.

  • Wenn die Bewertung größer ist, wird die aktuelle beste Übereinstimmung im Satz ein neues Resultset zurückgegeben, das nur die neue Übereinstimmung enthält.
  • Wenn die Bewertung gleich der aktuellen besten Übereinstimmung ist, wird sie dem vorhandenen Satz hinzugefügt.
  • Wenn die Bewertung kleiner als die aktuelle beste Übereinstimmung ist, wird sie ignoriert.
beginDialog(IAddress, string, any, (err: Error) => void)

Startet proaktiv ein neues Dialogfeld mit dem Benutzer. Jede aktuelle Unterhaltung zwischen Bot und Benutzer wird durch einen neuen Dialogstapel ersetzt.

beginDialogAction(string, string, IDialogActionOptions)

Registriert eine globale Aktion, die ein weiteres Dialogfeld startet, wenn es ausgelöst wird. Das neue Dialogfeld wird auf den Stapel verschoben, sodass keine aktuelle Aufgabe 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.

bestRouteResult(IRouteResult[], IDialogState[], string)

Sucht die beste Route, die in einem Resultset verwendet werden soll, das mehrere mehrdeutige Routen enthält. Die folgende Mehrdeutigkeitsstrategie wird verwendet:

  1. : Benutzerdefinierte Routentypen sind die höchste Priorität und werden bevorzugt. Auf diese Weise kann der Entwickler das Routing innerhalb eines Bots auf sehr leistungsstarke Weise außer Kraft setzen.
  2. ActiveDialog-: Das aktive Dialogfeld ist die nächste höchste Priorität.
  3. StackAction-: Stapelaktionen sind die nächste höchste Priorität, und die Aktion mit der tiefsten Stapelposition wird zurückgegeben.
  4. GlobalAction: Globale Aktionen sind die niedrigste Priorität. Wenn ein dialogStack in den Aktionen aus der Bibliothek am weitesten auf dem Stapel vorbei ist, wird bevorzugt. Andernfalls wird der erste zurückgegeben.
clone(UniversalBot, string)

Gibt einen Klon eines vorhandenen Bots zurück.

connector(string, IConnector)

Registriert oder gibt einen Connector für einen bestimmten Kanal zurück.

customAction(IDialogActionOptions)

Registriert eine benutzerdefinierte globale Aktion, die den übergebenen onSelectAction--Handler beim Auslösen aufruft.

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

Registriert oder gibt ein Dialogfeld aus der Bibliothek zurück.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Registriert eine globale Aktion, die die Unterhaltung mit dem Benutzer beendet, wenn sie ausgelöst wird.

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Ruft die aktive Dialogfelder konfidenz, dass sie die aktuelle Nachricht versteht. Das Dialogfeld muss Mitglied der aktuellen Bibliothek sein, andernfalls wird eine Bewertung von 0,0 zurückgegeben.

findDialog(string, string)

Durchsucht die Bibliothek und alle zugehörigen Abhängigkeiten nach einem bestimmten Dialogfeld. Gibt das Dialogfeld zurück, falls gefunden, andernfalls NULL.

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Durchsucht die Bibliothek, um festzustellen, ob globale Aktionen ausgelöst wurden.

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Sucht nach Kandidatenrouten, um die aktuelle Nachricht zu verarbeiten. Um die Behandlung der Nachricht tatsächlich zu initiieren, sollten Sie selectRoute() mit einem der zurückgegebenen Ergebnisse aufrufen. Die Standardmäßige Suchlogik kann mit onFindRoute()- überschrieben werden, und nur die aktuelle Bibliothek wird durchsucht, sodass Sie findRoutes() separat für jede Bibliothek innerhalb der Hierarchie aufrufen sollten.

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Sucht im Dialogfeld "Sitzungen" nach, um festzustellen, ob Aktionen ausgelöst wurden.

forEachDialog((dialog: Dialog, id: string) => void)

Listet alle Dialogfelder für Bibliotheken auf.

forEachLibrary((library: Library) => void)

Listet alle untergeordneten Bibliotheken auf. Der Aufrufer sollte geeignete Schritte ausführen, um Zirkelbezüge beim Aufzählen der Hierarchie zu vermeiden. In den meisten Fällen ist das Aufrufen libraryList() eine bessere Wahl, da sie bereits Logik enthält, um Zyklen zu vermeiden.

get(string)

Gibt den aktuellen Wert einer Einstellung zurück.

isInConversation(IAddress, (err: Error, lastAccess: Date) => void)

Gibt Informationen darüber zurück, wann die letzte Drehung zwischen dem Benutzer und einem Bot aufgetreten ist. Dies kann aufgerufen werden, bevor beginDialog, um festzustellen, ob sich der Benutzer derzeit in einer Unterhaltung mit dem Bot befindet.

library(Library | string)

Registriert oder gibt eine Bibliotheksabhängigkeit zurück.

libraryList(boolean)

Gibt eine Liste eindeutiger Bibliotheken innerhalb der Hierarchie zurück. Sollte für den Stamm der Bibliothekshierarchie aufgerufen werden und verhindert, dass Zyklen erstellt werden, wenn zwei untergeordnete Bibliotheken auf dieselbe abhängige Bibliothek verweisen.

loadSession(IAddress, (err: Error, session: Session) => void)

Lädt ein Sitzungsobjekt für eine beliebige Adresse.

localePath(string)

Ruft den Pfad zum Ordner "/locale/" der Bibliotheken ab, der die lokalisierten Eingabeaufforderungen enthält, oder legt diesen fest. Die Eingabeaufforderungen für die Bibliothek sollten in einer Datei "/locale/<IETF_TAG>/.json" unter diesem Pfad gespeichert werden, wobei "<IETF_TAG>" die 2-3-stellige Sprachtage für das Gebietsschema darstellt und "" ein Dateiname ist, der dem Bibliotheksnamespace entspricht.

on(string, (data: any) => void)

Registriert einen Ereignislistener. Der Bot gibt seine eigenen Ereignisse aus, während eingehende und ausgehende Nachrichten verarbeitet werden. Außerdem werden aktivitätsbezogene Ereignisse, die vom Connector ausgegeben werden, weitergeleitet, sodass Sie einen Ort zum Überwachen aller Aktivitäten von Ihrem Bot erhalten. Der Ablauf von Ereignissen vom Bot lautet wie folgt:

Empfangene Nachricht

Wenn der Bot eine neue Nachricht empfängt, gibt er die folgenden Ereignisse in der folgenden Reihenfolge aus:

lookupUser -> receive -> incoming -> getStorageData -> routing

Alle Middleware empfangen, installiert wurde, wird zwischen den Ereignissen "empfangen" und "eingehenden" ausgeführt. Nachdem das Ereignis "routing" ausgegeben wurde, werden alle Botbuilder Middleware ausgeführt, bevor die Nachricht an das aktive Dialogfeld der Bots gesendet wird.

Empfangene Connectoraktivität

Connectors können Aktivitätsereignisse ausgeben, um Dinge zu signalisieren, z. B. dass ein Benutzer einen Bot eingibt oder dass er einen Bot angefreundet hat. Diese Aktivitäten werden durch Middleware wie Nachrichten weitergeleitet, aber sie werden nicht über das Bots-Dialogfeldsystem weitergeleitet. Sie werden nur als Ereignisse ausgegeben.

Der Ablauf von Connectorereignissen lautet:

lookupUser -> empfangen -> (Aktivität)

Gesendete Nachricht

Bots können mehrere Nachrichten senden, sodass die Sitzung alle ausgehenden Nachrichten stapelt und dann den aktuellen Status der Bots speichert, bevor die gesendeten Nachrichten übermittelt werden. Es wird ein einzelnes "saveStorageData"-Ereignis ausgegeben, und dann wird für jede ausgehende Nachricht im Batch die folgende Abfolge von Ereignissen angezeigt:

send -> ausgehend

Alle Middleware-, die installiert wurde, werden zwischen den Ereignissen "send" und "outgoing" ausgeführt.

onDisambiguateRoute(IDisambiguateRouteHandler)

Ersetzt die Standardrouten-Mehrdeutigkeitslogik der Bots durch eine benutzerdefinierte Implementierung.

onFindRoutes(IFindRoutesHandler)

Ersetzt findRoutes() Standardroutensuchlogik durch eine benutzerdefinierte Implementierung.

onSelectRoute(ISelectRouteHandler)

Ersetzt die Standardlogik für selectRoute() durch eine benutzerdefinierte Implementierung.

receive(IEvent | IEvent[], (err: Error) => void)

Wird aufgerufen, wenn ein neues Ereignis empfangen wird. Dies kann manuell aufgerufen werden, um den Bot nachzuahmen, der eine Nachricht vom Benutzer empfängt.

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

Versucht, mit der Bibliothekserkennung texterkennen Absichten mit einem Benutzertext übereinzugleichen. Weitere Informationen finden Sie unter IIntentRecognizer.recognize().

recognizer(IIntentRecognizer)

Fügt der Bibliothek ein neues Erkennungs-Plug-In hinzu.

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Leitet die aktuelle Nachricht an das aktive Dialogfeld weiter.

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Leitet die aktuelle Nachricht an eine ausgelöste globale Aktion weiter.

selectRoute(Session, IRouteResult)

Löst die Behandlung der aktuellen Nachricht mithilfe der ausgewählten Route aus. Die Standardlogik kann mit onSelectRoute()überschrieben werden.

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Leitet die aktuelle Nachricht an eine ausgelöste Stapelaktion weiter.

send(IIsMessage | IMessage | IMessage[], (err: Error, addresses?: IAddress[]) => void)

Sendet eine Nachricht an den Benutzer, ohne den Dialogstapel der aktuellen Unterhaltungen zu unterbrechen.

set(string, any)

Legt eine Einstellung für den Bot fest.

use(IMiddlewareMap[])

Installiert Middleware für den Bot. Mit Middleware können Sie eingehende und ausgehende Ereignisse/Nachrichten abfangen.

Details zum Konstruktor

UniversalBot(IConnector, any, string)

Erstellt eine neue Instanz des UniversalBot.

new UniversalBot(connector?: IConnector, defaultDialog?: any, libraryName?: string)

Parameter

connector
IConnector

(Optional) Der Standardconnector, der für Anforderungen verwendet werden soll. Wenn kein spezifischerer Connector für einen Kanal registriert ist, wird dieser Connector verwendet./**

defaultDialog

any

(Optional) Standardhandler für empfangene Nachrichten. Dies kann entweder eine einzelne Funktion oder eine Wasserfallsequenz sein.

libraryName

string

(Optional) Bibliotheksnamespace für den Bot. Der Standardwert ist '*'.

UniversalBot(IConnector, IDialogWaterfallStep | IDialogWaterfallStep[], string)

Erstellt eine neue Instanz des UniversalBot.

new UniversalBot(connector: IConnector, defaultDialog?: IDialogWaterfallStep | IDialogWaterfallStep[], libraryName?: string)

Parameter

connector
IConnector

(Optional) Der Standardconnector, der für Anforderungen verwendet werden soll. Wenn kein spezifischerer Connector für einen Kanal registriert ist, wird dieser Connector verwendet./**

defaultDialog

IDialogWaterfallStep | IDialogWaterfallStep[]

(Optional) Standardhandler für empfangene Nachrichten. Dies kann entweder eine einzelne Funktion oder eine Wasserfallsequenz sein.

libraryName

string

(Optional) Bibliotheksnamespace für den Bot. Der Standardwert ist '*'.

UniversalBot(IConnector, IUniversalBotSettings)

Erstellt eine neue Instanz des UniversalBot.

new UniversalBot(connector: IConnector, settings?: IUniversalBotSettings)

Parameter

connector
IConnector

(Optional) Der Standardconnector, der für Anforderungen verwendet werden soll. Wenn kein spezifischerer Connector für einen Kanal registriert ist, wird dieser Connector verwendet./**

Details zur Eigenschaft

name

Der eindeutige Namespace der Bibliotheken. Dies wird verwendet, um die Dialogfelder für Bibliotheken und lokalisierte Eingabeaufforderungen zu festigen.

name: string

Eigenschaftswert

string

RouteTypes

Unterstützte routeType- Werte, die standardmäßig von findRoutes()zurückgegeben werden.

static RouteTypes: Object

Eigenschaftswert

Object

Details zur Methode

addRouteResult(IRouteResult, IRouteResult[])

Hilfsmethode, die von den verschiedenen Methoden zur Routensuche aufgerufen wird, um das Hinzufügen einer Kandidatenroute zum Resultset zu verwalten.

  • Wenn die Bewertung größer ist, wird die aktuelle beste Übereinstimmung im Satz ein neues Resultset zurückgegeben, das nur die neue Übereinstimmung enthält.
  • Wenn die Bewertung gleich der aktuellen besten Übereinstimmung ist, wird sie dem vorhandenen Satz hinzugefügt.
  • Wenn die Bewertung kleiner als die aktuelle beste Übereinstimmung ist, wird sie ignoriert.
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])

Parameter

route
IRouteResult

Die Kandidatenroute, die dem Satz hinzugefügt werden soll.

current

IRouteResult[]

(Optional) Resultset zum Hinzufügen der Route. Wenn sie nicht vorhanden ist, wird nur ein neuer Satz mit nur der Route zurückgegeben.

Gibt zurück

beginDialog(IAddress, string, any, (err: Error) => void)

Startet proaktiv ein neues Dialogfeld mit dem Benutzer. Jede aktuelle Unterhaltung zwischen Bot und Benutzer wird durch einen neuen Dialogstapel ersetzt.

function beginDialog(address: IAddress, dialogId: string, dialogArgs?: any, done?: (err: Error) => void)

Parameter

address
IAddress

Adresse des Benutzers, um eine neue Unterhaltung zu beginnen. Dies sollte während einer vorherigen Unterhaltung mit dem Benutzer gespeichert werden. Alle vorhandenen Unterhaltungen oder Dialogfelder werden sofort beendet.

dialogId

string

DIE ID des zu beginnenden Dialogfelds.

dialogArgs

any

(Optional) Argumente, die an das Dialogfeld übergeben werden sollen.

done

(err: Error) => void

(Optional) Funktion, die aufgerufen werden soll, sobald der Vorgang abgeschlossen ist.

beginDialogAction(string, string, IDialogActionOptions)

Registriert eine globale Aktion, die ein weiteres Dialogfeld startet, wenn es ausgelöst wird. Das neue Dialogfeld wird auf den Stapel verschoben, sodass keine aktuelle Aufgabe 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?: IDialogActionOptions)

Parameter

name

string

Eindeutiger Name zum Zuweisen der Aktion.

id

string

ID des zu startenden Dialogfelds.

options
IDialogActionOptions

(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

bestRouteResult(IRouteResult[], IDialogState[], string)

Sucht die beste Route, die in einem Resultset verwendet werden soll, das mehrere mehrdeutige Routen enthält. Die folgende Mehrdeutigkeitsstrategie wird verwendet:

  1. : Benutzerdefinierte Routentypen sind die höchste Priorität und werden bevorzugt. Auf diese Weise kann der Entwickler das Routing innerhalb eines Bots auf sehr leistungsstarke Weise außer Kraft setzen.
  2. ActiveDialog-: Das aktive Dialogfeld ist die nächste höchste Priorität.
  3. StackAction-: Stapelaktionen sind die nächste höchste Priorität, und die Aktion mit der tiefsten Stapelposition wird zurückgegeben.
  4. GlobalAction: Globale Aktionen sind die niedrigste Priorität. Wenn ein dialogStack in den Aktionen aus der Bibliothek am weitesten auf dem Stapel vorbei ist, wird bevorzugt. Andernfalls wird der erste zurückgegeben.
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)

Parameter

routes

IRouteResult[]

Array von Kandidatenrouten zum Filtern.

dialogStack

IDialogState[]

(Optional) Dialogstapel, der verwendet wird, um zu bestimmen, welche globalen Bibliotheken-Aktionen bevorzugt werden sollen.

rootLibraryName

string

(Optional) Bibliotheksnamespaces, die bevorzugt werden sollen, wenn globale Aktionen mehrdeutig werden, und es gibt keine Dialogfelder im Stapel.

Gibt zurück

clone(UniversalBot, string)

Gibt einen Klon eines vorhandenen Bots zurück.

function clone(copyTo?: UniversalBot, newName?: string)

Parameter

copyTo
UniversalBot

(Optional) Instanz, in die das aktuelle Objekt kopiert werden soll. Wenn eine neue Instanz fehlt, wird eine neue Instanz erstellt.

newName

string

(Optional) Wenn angegeben, wird die zurückgegebene Kopie in einen neuen Namen umbenannt.

Gibt zurück

connector(string, IConnector)

Registriert oder gibt einen Connector für einen bestimmten Kanal zurück.

function connector(channelId: string, connector?: IConnector)

Parameter

channelId

string

Eindeutige ID des Kanals. Verwenden Sie eine channelId von '*', um auf den Standardconnector zu verweisen.

connector
IConnector

(Optional) Connector für die Registrierung. Wenn der Connector für channelId- weggelassen wird.

Gibt zurück

customAction(IDialogActionOptions)

Registriert eine benutzerdefinierte globale Aktion, die den übergebenen onSelectAction--Handler beim Auslösen aufruft.

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

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

Registriert oder gibt ein Dialogfeld aus der Bibliothek zurück.

function dialog(id: string, dialog?: Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, replace?: boolean)

Parameter

id

string

Eindeutige ID des Dialogfelds, das regsiteriert oder abgerufen wird.

dialog

Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep

(Optional) Dialog oder Wasserfall zum Registrieren.

  • dialogfeld :{Dialog}- - Dialogfeld, das hinzugefügt werden soll.
  • dialogfeld :{IDialogWaterfallStep[]} – Wasserfall der auszuführenden Schritte. Weitere Informationen finden Sie unter IDialogWaterfallStep.
  • dialogfeld :{IDialogWaterfallStep} - Wasserfall mit einem Schritt. Das Aufrufen einer integrierten Eingabeaufforderung oder das Starten eines neuen Dialogfelds führt dazu, dass das aktuelle Dialogfeld nach Abschluss der untergeordneten Eingabeaufforderung/des untergeordneten Dialogfelds endet.
replace

boolean

(Optional) Wenn wahr, sollte das Dialogfeld das vorhandene Dialogfeld ersetzen, falls bereits registriert.

Gibt zurück

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Registriert eine globale 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.

msg
TextOrMessageType

(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

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Ruft die aktive Dialogfelder konfidenz, dass sie die aktuelle Nachricht versteht. Das Dialogfeld muss Mitglied der aktuellen Bibliothek sein, andernfalls wird eine Bewertung von 0,0 zurückgegeben.

function findActiveDialogRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

Parameter

context
IRecognizeContext

Schreibgeschützter Erkennungskontext für die aktuelle Unterhaltung.

callback

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

Funktion, die mit den gefundenen Routen aufgerufen werden soll.

dialogStack

IDialogState[]

(Optional) Dialogstapel zum Durchsuchen. Das Standardverhalten besteht darin, über den aktuellen Dialogstapel der Sitzungen zu suchen.

findDialog(string, string)

Durchsucht die Bibliothek und alle zugehörigen Abhängigkeiten nach einem bestimmten Dialogfeld. Gibt das Dialogfeld zurück, falls gefunden, andernfalls NULL.

function findDialog(libName: string, dialogId: string)

Parameter

libName

string

Name der Bibliothek, die das Dialogfeld enthält.

dialogId

string

Eindeutige ID des Dialogfelds innerhalb der Bibliothek.

Gibt zurück

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Durchsucht die Bibliothek, um festzustellen, ob globale Aktionen ausgelöst wurden.

function findGlobalActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

Parameter

context
IRecognizeContext

Schreibgeschützter Erkennungskontext für die aktuelle Unterhaltung.

callback

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

Funktion, die mit den gefundenen Routen aufgerufen werden soll.

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Sucht nach Kandidatenrouten, um die aktuelle Nachricht zu verarbeiten. Um die Behandlung der Nachricht tatsächlich zu initiieren, sollten Sie selectRoute() mit einem der zurückgegebenen Ergebnisse aufrufen. Die Standardmäßige Suchlogik kann mit onFindRoute()- überschrieben werden, und nur die aktuelle Bibliothek wird durchsucht, sodass Sie findRoutes() separat für jede Bibliothek innerhalb der Hierarchie aufrufen sollten.

function findRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

Parameter

context
IRecognizeContext

Schreibgeschützter Erkennungskontext für die aktuelle Unterhaltung.

callback

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

Funktion, die mit den gefundenen Routen aufgerufen werden soll.

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Sucht im Dialogfeld "Sitzungen" nach, um festzustellen, ob Aktionen ausgelöst wurden.

function findStackActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

Parameter

context
IRecognizeContext

Schreibgeschützter Erkennungskontext für die aktuelle Unterhaltung.

callback

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

Funktion, die mit den gefundenen Routen aufgerufen werden soll.

dialogStack

IDialogState[]

(Optional) Dialogstapel zum Durchsuchen. Das Standardverhalten besteht darin, über den aktuellen Dialogstapel der Sitzungen zu suchen.

forEachDialog((dialog: Dialog, id: string) => void)

Listet alle Dialogfelder für Bibliotheken auf.

function forEachDialog(callback: (dialog: Dialog, id: string) => void)

Parameter

callback

(dialog: Dialog, id: string) => void

Iteratorfunktion, die mit jedem Dialogfeld aufgerufen werden soll.

forEachLibrary((library: Library) => void)

Listet alle untergeordneten Bibliotheken auf. Der Aufrufer sollte geeignete Schritte ausführen, um Zirkelbezüge beim Aufzählen der Hierarchie zu vermeiden. In den meisten Fällen ist das Aufrufen libraryList() eine bessere Wahl, da sie bereits Logik enthält, um Zyklen zu vermeiden.

function forEachLibrary(callback: (library: Library) => void)

Parameter

callback

(library: Library) => void

Iteratorfunktion, die mit jeder untergeordneten Bibliothek aufgerufen werden soll.

get(string)

Gibt den aktuellen Wert einer Einstellung zurück.

function get(name: string)

Parameter

name

string

Der Name der zurückzugebenden Eigenschaft. Gültige Namen sind Eigenschaften für IUniversalBotSettings.

Gibt zurück

any

isInConversation(IAddress, (err: Error, lastAccess: Date) => void)

Gibt Informationen darüber zurück, wann die letzte Drehung zwischen dem Benutzer und einem Bot aufgetreten ist. Dies kann aufgerufen werden, bevor beginDialog, um festzustellen, ob sich der Benutzer derzeit in einer Unterhaltung mit dem Bot befindet.

function isInConversation(address: IAddress, callback: (err: Error, lastAccess: Date) => void)

Parameter

address
IAddress

Adresse des Benutzers, der nachschlagen soll. Dies sollte während einer vorherigen Unterhaltung mit dem Benutzer gespeichert werden.

callback

(err: Error, lastAccess: Date) => void

Funktion, die mit den Ergebnissen der Abfrage aufgerufen werden soll.

library(Library | string)

Registriert oder gibt eine Bibliotheksabhängigkeit zurück.

function library(lib: Library | string)

Parameter

lib

Library | string

  • lib:{Library} – Bibliothek, die als Abhängigkeit registriert werden soll.
  • lib:{string}- – Eindeutiger Name der bibliothek, die nachschlagen soll. Alle Abhängigkeiten werden ebenfalls durchsucht.

Gibt zurück

libraryList(boolean)

Gibt eine Liste eindeutiger Bibliotheken innerhalb der Hierarchie zurück. Sollte für den Stamm der Bibliothekshierarchie aufgerufen werden und verhindert, dass Zyklen erstellt werden, wenn zwei untergeordnete Bibliotheken auf dieselbe abhängige Bibliothek verweisen.

function libraryList(reverse?: boolean)

Parameter

reverse

boolean

(Optional) Wenn "true"-Liste aus den Blättern generiert wird, was bedeutet, dass die Stammbibliothek zuletzt aufgeführt wird. Der Standardwert ist "false", was bedeutet, dass er aus den Wurzeln nach unten generiert wird und die Stammbibliothek zuerst aufgelistet wird.

Gibt zurück

loadSession(IAddress, (err: Error, session: Session) => void)

Lädt ein Sitzungsobjekt für eine beliebige Adresse.

function loadSession(address: IAddress, callback: (err: Error, session: Session) => void)

Parameter

address
IAddress

Adresse des zu ladenden Benutzers/der Sitzung. Dies sollte während einer vorherigen Unterhaltung mit dem Benutzer gespeichert werden.

callback

(err: Error, session: Session) => void

Funktion, die mit der geladenen Sitzung aufgerufen werden soll.

localePath(string)

Ruft den Pfad zum Ordner "/locale/" der Bibliotheken ab, der die lokalisierten Eingabeaufforderungen enthält, oder legt diesen fest. Die Eingabeaufforderungen für die Bibliothek sollten in einer Datei "/locale/<IETF_TAG>/.json" unter diesem Pfad gespeichert werden, wobei "<IETF_TAG>" die 2-3-stellige Sprachtage für das Gebietsschema darstellt und "" ein Dateiname ist, der dem Bibliotheksnamespace entspricht.

function localePath(path?: string)

Parameter

path

string

(Optional) Pfad zum Ordner "/locale/" der Bibliotheken. Wenn angegeben, wird der Bibliothekspfad aktualisiert.

Gibt zurück

string

on(string, (data: any) => void)

Registriert einen Ereignislistener. Der Bot gibt seine eigenen Ereignisse aus, während eingehende und ausgehende Nachrichten verarbeitet werden. Außerdem werden aktivitätsbezogene Ereignisse, die vom Connector ausgegeben werden, weitergeleitet, sodass Sie einen Ort zum Überwachen aller Aktivitäten von Ihrem Bot erhalten. Der Ablauf von Ereignissen vom Bot lautet wie folgt:

Empfangene Nachricht

Wenn der Bot eine neue Nachricht empfängt, gibt er die folgenden Ereignisse in der folgenden Reihenfolge aus:

lookupUser -> receive -> incoming -> getStorageData -> routing

Alle Middleware empfangen, installiert wurde, wird zwischen den Ereignissen "empfangen" und "eingehenden" ausgeführt. Nachdem das Ereignis "routing" ausgegeben wurde, werden alle Botbuilder Middleware ausgeführt, bevor die Nachricht an das aktive Dialogfeld der Bots gesendet wird.

Empfangene Connectoraktivität

Connectors können Aktivitätsereignisse ausgeben, um Dinge zu signalisieren, z. B. dass ein Benutzer einen Bot eingibt oder dass er einen Bot angefreundet hat. Diese Aktivitäten werden durch Middleware wie Nachrichten weitergeleitet, aber sie werden nicht über das Bots-Dialogfeldsystem weitergeleitet. Sie werden nur als Ereignisse ausgegeben.

Der Ablauf von Connectorereignissen lautet:

lookupUser -> empfangen -> (Aktivität)

Gesendete Nachricht

Bots können mehrere Nachrichten senden, sodass die Sitzung alle ausgehenden Nachrichten stapelt und dann den aktuellen Status der Bots speichert, bevor die gesendeten Nachrichten übermittelt werden. Es wird ein einzelnes "saveStorageData"-Ereignis ausgegeben, und dann wird für jede ausgehende Nachricht im Batch die folgende Abfolge von Ereignissen angezeigt:

send -> ausgehend

Alle Middleware-, die installiert wurde, werden zwischen den Ereignissen "send" und "outgoing" ausgeführt.

function on(event: string, listener: (data: any) => void)

Parameter

event

string

Name des Ereignisses. Bot- und Connector-spezifische Ereignistypen:

Bot-Ereignisse

  • Fehler: Ein Fehler ist aufgetreten. Ein JavaScript-Error-Objekt wurde übergeben.
  • LookupUser: Der Benutzer ist für eine Adresse vorgesehen, um nachzuschlagen. Es wurde ein IAddress-Objekt übergeben.
  • empfangen: Eine eingehende Nachricht wurde empfangen. Ein IEvent--Objekt wurde übergeben.
  • eingehenden: Eine eingehende Nachricht wurde von Middleware empfangen und verarbeitet. Ein IMessage--Objekt wurde übergeben.
  • Routing: Eine eingehende Nachricht wurde an eine Sitzung gebunden und ist dabei, über jede Session Middleware weitergeleitet und dann an das aktive Dialogfeld zur Verarbeitung weitergeleitet zu werden. Ein Session-Objekt wurde übergeben.
  • senden: Eine ausgehende Nachricht wird zur Verarbeitung an Middleware gesendet. Ein IMessage--Objekt wurde übergeben.
  • ausgehend: Eine ausgehende Nachricht wurde gerade über Middleware gesendet und wird an den Chatclient des Benutzers übermittelt.
  • getStorageData: Die Gespeicherten Zustandsdaten der Sitzungen werden aus dem Speicher geladen. Es wurde ein IBotStorageContext--Objekt übergeben.
  • saveStorageData: Die Gespeicherten Zustandsdaten der Sitzungen werden in den Speicher geschrieben. Es wurde ein IBotStorageContext--Objekt übergeben.

ChatConnector-Ereignisse

  • conversationUpdate: Ihr Bot wurde zu einer Unterhaltung oder anderen Unterhaltungsmetadaten hinzugefügt. Es wurde ein IConversationUpdate--Objekt übergeben.
  • contactRelationUpdate: Der Bot wurde der Kontaktliste eines Benutzers hinzugefügt oder daraus entfernt. Es wurde ein IContactRelationUpdate-Objekt übergeben.
  • Eingabe: Der Benutzer oder Bot am anderen Ende der Unterhaltung tippt. Ein IEvent--Objekt wurde übergeben.
listener

(data: any) => void

Funktion, die aufgerufen werden soll.

onDisambiguateRoute(IDisambiguateRouteHandler)

Ersetzt die Standardrouten-Mehrdeutigkeitslogik der Bots durch eine benutzerdefinierte Implementierung.

function onDisambiguateRoute(handler: IDisambiguateRouteHandler)

Parameter

handler
IDisambiguateRouteHandler

Funktion, die mit den Kandidaten aufgerufen wird, um eine eingehende Nachricht zu senden.

onFindRoutes(IFindRoutesHandler)

Ersetzt findRoutes() Standardroutensuchlogik durch eine benutzerdefinierte Implementierung.

function onFindRoutes(handler: IFindRoutesHandler)

Parameter

handler
IFindRoutesHandler

Funktion, die jederzeit aufgerufen wird, findRoutes() für die Bibliothek aufgerufen wird.

onSelectRoute(ISelectRouteHandler)

Ersetzt die Standardlogik für selectRoute() durch eine benutzerdefinierte Implementierung.

function onSelectRoute(handler: ISelectRouteHandler)

Parameter

handler
ISelectRouteHandler

Funktion, die jederzeit aufgerufen wird, selectRoute() aufgerufen wird.

receive(IEvent | IEvent[], (err: Error) => void)

Wird aufgerufen, wenn ein neues Ereignis empfangen wird. Dies kann manuell aufgerufen werden, um den Bot nachzuahmen, der eine Nachricht vom Benutzer empfängt.

function receive(events: IEvent | IEvent[], done?: (err: Error) => void)

Parameter

events

IEvent | IEvent[]

Empfangenes Ereignis oder (Array von Ereignissen).

done

(err: Error) => void

(Optional) Funktion, die aufgerufen werden soll, sobald der Vorgang abgeschlossen ist.

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

Versucht, mit der Bibliothekserkennung texterkennen Absichten mit einem Benutzertext übereinzugleichen. Weitere Informationen finden Sie unter IIntentRecognizer.recognize().

function recognize(context: IRecognizeContext, callback: (err: Error, result: IIntentRecognizerResult) => void)

Parameter

context
IRecognizeContext

Schreibgeschützter Erkennungskontext für die aktuelle Unterhaltung.

callback

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

Funktion, die nach Abschluss der Erkennung aufgerufen werden soll.

recognizer(IIntentRecognizer)

Fügt der Bibliothek ein neues Erkennungs-Plug-In hinzu.

function recognizer(plugin: IIntentRecognizer)

Parameter

plugin
IIntentRecognizer

Die hinzuzufügende Erkennung.

Gibt zurück

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Leitet die aktuelle Nachricht an das aktive Dialogfeld weiter.

function selectActiveDialogRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parameter

session
Session

Session-Objekt für die aktuelle Unterhaltung.

route
IRouteResult

Route result returned from a previous call to findRoutes() or findActiveDialogRoutes().

newStack

IDialogState[]

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Leitet die aktuelle Nachricht an eine ausgelöste globale Aktion weiter.

function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parameter

session
Session

Session-Objekt für die aktuelle Unterhaltung.

route
IRouteResult

Route result returned from a previous call to findRoutes() or findGlobalActionRoutes().

newStack

IDialogState[]

selectRoute(Session, IRouteResult)

Löst die Behandlung der aktuellen Nachricht mithilfe der ausgewählten Route aus. Die Standardlogik kann mit onSelectRoute()überschrieben werden.

function selectRoute(session: Session, route: IRouteResult)

Parameter

session
Session

Session-Objekt für die aktuelle Unterhaltung.

route
IRouteResult

Route result returned from a previous call to findRoutes().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Leitet die aktuelle Nachricht an eine ausgelöste Stapelaktion weiter.

function selectStackActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parameter

session
Session

Session-Objekt für die aktuelle Unterhaltung.

route
IRouteResult

Route result returned from a previous call to findRoutes() or findStackActionRoutes().

newStack

IDialogState[]

send(IIsMessage | IMessage | IMessage[], (err: Error, addresses?: IAddress[]) => void)

Sendet eine Nachricht an den Benutzer, ohne den Dialogstapel der aktuellen Unterhaltungen zu unterbrechen.

function send(messages: IIsMessage | IMessage | IMessage[], done?: (err: Error, addresses?: IAddress[]) => void)

Parameter

messages

IIsMessage | IMessage | IMessage[]

Die Nachricht (oder das Array von Nachrichten), die der Benutzer senden soll.

done

(err: Error, addresses?: IAddress[]) => void

(Optional) Funktion, die aufgerufen werden soll, sobald der Vorgang abgeschlossen ist.

set(string, any)

Legt eine Einstellung für den Bot fest.

function set(name: string, value: any)

Parameter

name

string

Name der festzulegenden Eigenschaft. Gültige Namen sind Eigenschaften für IUniversalBotSettings.

value

any

Der Wert, der der Einstellung zugewiesen werden soll.

Gibt zurück

use(IMiddlewareMap[])

Installiert Middleware für den Bot. Mit Middleware können Sie eingehende und ausgehende Ereignisse/Nachrichten abfangen.

function use(args: IMiddlewareMap[])

Parameter

args

IMiddlewareMap[]

Mindestens eine Reihe von Middleware-Hooks, die installiert werden sollen.

Gibt zurück