Benutzerdefinierte Ereignisse

Benutzerdefinierte Ereignisse sind von Ihnen definierte Ereignisse. Sie werden verwendet, um Dinge zu handhaben, die außerhalb der Unterhaltung mit dem Endnutzer passieren. Beispielsweise hat der Endnutzer auf eine Schaltfläche geklickt, eine bestimmte Zeit vergangen ist, das verfügbare Inventar hat sich während der Unterhaltung geändert usw.

Sie können diese Ereignisse entweder mit der Auftragsausführung oder mit der API aufrufen.

Ereignisse mit der API aufrufen

Die Anfrage für einen detectIntent-Aufruf des Sessions-Typs enthält das Feld queryInput.event, das verwendet wird, um Ereignisse aufzurufen. Der Typ dieses Felds ist ein EventInput. Es enthält Felder für den Ereignisnamen, optionale Parameter und den Sprachcode.

Wenn Sie ein Ereignis für einen Aufruf zur Intent-Erkennung bereitstellen, geben Sie keine anderen Daten wie einen Endnutzerausdruck an. Der einzige Zweck des Aufrufs besteht darin, ein Ereignis aufzurufen und einen Intent auszulösen.

Ereignisse mit Auftragsausführung aufrufen

Sie können Ereignisse über die Auftragsausführung aufrufen, indem Sie das Feld followupEventInput der WebhookResponse-Antwort festlegen. Optional können Sie das Feld followupEventInput.parameters festlegen, um Parameter für den Intent anzugeben.

Beispiel:

{
  "followupEventInput": {
    "name": "event-name",
    "parameters": {
      "parameter-name-1": "parameter-value-1",
      "parameter-name-2": "parameter-value-2"
    },
    "languageCode": "en-US"
  }
}

Wenn der Parameter followupEventInput für eine WebhookResponse festgelegt ist, ignoriert Dialogflow die Felder fulfillmentText, fulfillmentMessages und payload. Darüber hinaus ist das Feld followupEventInput.languageCode ein Pflichtfeld. Dieses Feld wird jedoch von Dialogflow ignoriert, da die Sprache bereits in der ursprünglichen Anfrage zur Intent-Erkennung definiert wurde.

Wenn Dialogflow eine Webhook-Antwort mit einem Ereignis erhält, wird sofort der entsprechende Intent ausgelöst, in dem es definiert wurde.

Im Folgenden werden die entsprechenden Schritte dargestellt:

  1. Der Endnutzer gibt einen Ausdruck ein oder spricht ihn aus.
  2. Dialogflow ordnet den Endnutzerausdruck Intent-1 zu, der für die Auftragsausführung konfiguriert wurde.
  3. Dialogflow sendet eine Webhook-Anfrage an Ihren Server.
  4. Der Server sendet daraufhin eine Webhook-Antwort mit einem Folgeereignis.
  5. Anstatt dem Nutzer gemäß der Intent-1-Zuordnung zu antworten, löst Dialogflow Intent-2 aus, der für das Ereignis konfiguriert wurde.
  6. Dialogflow wird dann weiter so ausgeführt, als ob der Endnutzer die Zuordnung zu Intent-2 veranlasst hat. Es verarbeitet dabei die erforderlichen Parameter und die Auftragsausführung, wie sie durch die Konfiguration von Intent-2 festgelegt wurden.

Intent-Zuordnungen mit Webhook-Antwortereignissen verketten

Intent-Zuordnungen lassen sich mit Webhook-Antwortereignissen verketten. Im oben beschriebenen Ablauf kann auch Intent-2 für die Auftragsausführung konfiguriert werden. Wenn die Webhook-Antwort Ihres Servers dann ein weiteres Ereignis bereitstellt, ordnet Dialogflow den für das Ereignis konfigurierten Intent-3 zu, ohne dem Endnutzer gemäß Intent-2 zu antworten.

Dialogflow übergibt erst am Ende der Kette eine Antwort an den Endnutzer. Wenn Intents auf diese Weise verkettet werden, muss jede Webhook-Antwort innerhalb des festgelegten Zeitlimits gesendet werden.