Ereignisse und Trigger in adaptiven Dialogen

GILT FÜR: SDK v4

Eine Einführung in dieses Thema finden Sie im Konzeptartikel Trigger in der Composer-Dokumentation.

Auslöser für das Erkennungsereignis

Hinweis

Azure KI QnA Maker wird am 31. März 2025 eingestellt. Ab dem 01. Oktober 2022 können Sie keine neuen QnA Maker-Ressourcen oder Wissensdatenbanken mehr erstellen. Eine neuere Version der Funktionalität „Fragen und Antworten“ ist jetzt als Teil von Azure KI Language verfügbar.

Benutzerdefiniertes Fragen und Antworten, eine Azure KI Language-Funktion, ist die aktualisierte Version des QnA Maker-Diensts. Weitere Informationen zur Unterstützung von Fragen und Antworten im Bot Framework SDK finden Sie unter Natürliches Sprachverständnis.

Ereignisursache Triggername Basisereignis Beschreibung
Absicht wählen OnChooseIntent ChooseIntent Dieser Auslöser wird ausgeführt, wenn mehrerer Erkennungsfunktionen in einem CrossTrainedRecognizerSet Mehrdeutigkeit bei Absichten feststellen.
Absicht erkannt OnIntent RecognizedIntent Auszuführende Aktionen bei Erkennen der angegebenen Absicht.
QnAMatch-Absicht OnQnAMatch RecognizedIntent Dieser Auslöser wird ausgeführt, wenn der QnAMakerRecognizer eine QnAMatch-Absicht zurückgegeben hat. Die Entität @answer erhält die QnAMaker-Antwort.
Unbekannte Absicht erkannt OnUnknownIntent UnknownIntent Auszuführende Aktionen, wenn die Benutzereingabe nicht erkannt wird oder keine Übereinstimmung in einem der Auslöser des Typs OnIntent gefunden wird. Sie können dies auch als ersten Auslöser in Ihrem Stammdialog anstelle von OnBeginDialog verwenden, um beim ersten Start des Dialogs alle erforderlichen Aufgaben auszuführen.

Mithilfe des OnIntent-Auslösers können Sie das recognizedIntent-Ereignis verarbeiten. Das recognizedIntent-Ereignis wird von der Erkennungsfunktion ausgelöst. Alle im Bot Framework SDK integrierten Erkennungsfunktionen außer die QnA Maker-Erkennungsfunktion geben dieses Ereignis aus, wenn sie eine Benutzereingabe erfolgreich identifizieren, sodass Ihr Bot entsprechend reagieren kann.

Mit dem Auslöser OnUnknownIntent können Sie das Ereignis recognizedIntent abfangen und reagieren, wenn es von keinem der anderen Auslöser abgefangen und verarbeitet wurde. Dies bedeutet, dass alle nicht behandelten Absichten (einschließlich „none“) dazu führen können, dass sie ausgelöst werden, aber nur, wenn derzeit keine Aktionen für das Dialogfeld ausgeführt werden. Verwenden Sie den OnUnknownIntent Trigger, um zu erfassen und zu reagieren, wenn eine „none“-Absicht auftritt. Die Verwendung des OnIntent Triggers zur Behandlung einer „none“-Absicht kann zu unerwarteten Ergebnissen führen.

Dialogereignisauslöser

Dialogauslöser behandeln dialogspezifische Ereignisse im Zusammenhang mit dem Lebenszyklus des Dialogs. Es gibt derzeit sechs Dialogauslöser im Bot Framework SDK, die alle von der Klasse OnDialogEvent abgeleitet sind.

Tipp

Es handelt sich hierbei nicht um normale Unterbrechungsereignishandler, bei denen die Aktionen eines untergeordneten Handlers nach Abschluss der Aktionen des Handlers fortgesetzt werden. Bei allen folgenden Ereignissen führt der Bot eine neue Reihe von Aktionen aus und beendet den Durchgang, sobald diese Aktionen abgeschlossen sind.

Triggername Basisereignis Beschreibung
OnBeginDialog BeginDialog Bei Beginn dieses Dialogs auszuführende Aktionen. Nur für den Einsatz mit untergeordneten Dialogen und nicht für Ihren Stammdialog geeignet. In Stammdialogen verwenden Sie OnUnknownIntent, um Aktivitäten zur Initialisierung von Dialogen durchzuführen.
OnCancelDialog CancelDialog Mit diesem Ereignis können Sie verhindern, dass der aktuelle Dialog aufgrund eines untergeordneten Dialogs abgebrochen wird, der die Aktion CancelAllDialogs ausführt.
OnEndOfActions EndOfActions Dieses Ereignis tritt ein, sobald alle Aktionen und mehrdeutigen Ereignisse verarbeitet wurden.
OnError Error Auszuführende Aktion, wenn das Dialogereignis Error auftritt. Dieses Ereignis ähnelt OnCancelDialog dahingehend, dass Sie adaptiven Dialog, der diesen Trigger beinhaltet, hindern, beendet zu werden––in diesem Fall aufgrund eines Fehlers in einem untergeordneten Dialog.
OnRepromptDialog RepromptDialog Auszuführende Aktionen, wenn das RepromptDialog-Ereignis eintritt.
OnDialog DialogEvents.VersionChanged

Aktivitätsereignisauslöser

Mithilfe von Auslösern für Aktivitäten können Sie Aktionen mit jeder vom Client eingehenden Aktivität verknüpfen, z. B. wenn ein neuer Benutzer hinzukommt und der Bot eine neue Unterhaltung beginnt. Weitere Informationen zu Aktivitäten finden Sie im Bot Framework Activity-Schema.

Alle Aktivitätsereignisse haben das Basisereignis ActivityReceived und werden durch ihren Aktivitätstyp weiter präzisiert. Die Basisklasse, von der alle Aktivitätsauslöser abgeleitet werden, ist OnActivity.

Ereignisursache ActivityType Triggername Beschreibung
Begrüßung ConversationUpdate OnConversationUpdateActivity Aktionen, die beim Empfang einer conversationUpdate Aktivität ausgeführt werden sollen, wenn der Bot oder ein Benutzer einer Unterhaltung beitritt oder diese verlässt.
Konversation beendet EndOfConversation OnEndOfConversationActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs endOfConversation.
Ereignis empfangen Event OnEventActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs event.
Übergabe an Person Handoff OnHandoffActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs handOff.
Konversation aufgerufen Invoke OnInvokeActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs invoke.
Benutzer gibt Daten ein Typing OnTypingActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs typing.

Nachrichtenereignisauslöser

Auslöser für Nachrichtenereignisse ermöglichen Ihnen, auf jedes Nachrichtenereignis zu reagieren, z. B. wenn eine Nachricht aktualisiert (MessageUpdate) oder gelöscht (MessageDeletion) wird oder jemand auf eine Nachricht reagiert (MessageReaction). Zu den häufigen Reaktionen auf Nachrichten gehören z. B. „Gefällt mir“-Markierung, Herz, Lachen, Überraschung, Traurigkeit und Wut.

Nachrichtenereignisse sind eine Art von Aktivitätsereignis, haben als solche das Basisereignis ActivityReceived und werden durch den Aktivitätstyp weiter präzisiert. Die Basisklasse, von der alle Nachrichtenauslöser abgeleitet werden, ist OnActivity.

Ereignisursache ActivityType Triggername Beschreibung
Empfangene Nachricht Message OnMessageActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs MessageReceived.
Nachricht gelöscht MessageDeletion OnMessageDeleteActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs MessageDelete.
Nachrichtenantwort MessageReaction OnMessageReactionActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs MessageReaction.
Nachricht aktualisiert MessageUpdate OnMessageUpdateActivity Auszuführende Aktionen bei Eingang einer Aktivität des Typs MessageUpdate.

Trigger für benutzerdefinierte Ereignisse

Sie können Ihre eigenen Ereignisse ausgeben, indem Sie die Aktion EmitEvent einem beliebigen Auslöser hinzufügen. Anschließend können Sie dieses benutzerdefinierte Ereignis in einem beliebigen Auslöser in einem beliebigen Dialog in Ihrem Bot behandeln, indem Sie einen benutzerdefinierten Ereignisauslöser definieren. Ein benutzerdefinierter Ereignisauslöser ist der Auslöser OnDialogEvent, der faktisch zu einem benutzerdefinierten Auslöser wird, wenn Sie die Event-Eigenschaft auf denselben Wert wie die EventName-Eigenschaft von EmitEvent festlegen.

Tipp

Sie können anderen Dialogen in Ihrem Bot erlauben, Ihr benutzerdefiniertes Ereignis zu behandeln, indem Sie die Eigenschaft BubbleEvent von EmitEvent auf TRUE festlegen.

Ereignisursache Triggername Basisklasse Beschreibung
Benutzerdefiniertes Ereignis OnDialogEvent OnCondition Auszuführende Aktionen, wenn ein benutzerdefiniertes Ereignis erkannt wird. Sie können die Aktion Benutzerdefiniertes Ereignis ausgeben zum Auslösen eines benutzerdefinierten Ereignisses verwenden.