Aktionen und Parameter

Auf dieser Seite werden die Einstellungen für Aktionen und Parameter von Intents erläutert und es wird beschrieben, wie diese bei der Zuordnung von Intents zur Laufzeit angewendet werden.

Wo finde ich diese Daten?

In der Regel erstellen Sie Agents mit der Dialogflow ES-Konsole (Dokumentation ansehen, Konsole öffnen). Die folgende Anleitung bezieht sich auf die Console. So greifen Sie auf Aktions- und Parameterdaten zu:

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. Wählen Sie einen Agent aus.
  3. Wählen Sie im Menü der linken Seitenleiste Intents aus.
  4. Wählen Sie einen Intent aus.
  5. Scrollen Sie nach unten zum Bereich Aktion und Parameter.

Screenshot der Felder für Aktion und Parameter

Wenn Sie statt der Konsole die API zur Erstellung eines Agents verwenden, finden Sie Informationen dazu in der Intent-Referenz. Die Bezeichnungen der API-Felder und der Felder in der Konsole sind weitgehend gleich. In der folgenden Anleitung werden alle wichtigen Unterschiede zwischen der Konsole und der API aufgezeigt.

Aktionen

Das Feld action (Aktion) ist ein einfaches Feld, mit dem die Ausführung des Dialogs in Ihrem Dienst unterstützt wird.

Bei der Erstellung eines Agents können Sie für dieses Feld jeden beliebigen Text festlegen, der für Sie passend ist.

Wenn ein Intent zur Laufzeit zugeordnet wird, übergibt Dialogflow den Aktionswert an die Anfrage des Auftragsausführungs-Webhooks oder an die API-Interaktionsantwort. Hierdurch lässt sich ein bestimmter Ablauf in Ihrem Dienst auslösen.

Parameter

Wenn ein Intent zur Laufzeit zugeordnet wird, übergibt Dialogflow die aus dem Endnutzerausdruck extrahierten Werte als Parameter. Jeder Parameter hat einen Typ, der als Entitätstyp bezeichnet wird und genau festlegt, wie die Daten extrahiert werden. Im Unterschied zu unstrukturierten Endnutzereingaben sind Parameter strukturierte Daten, mit denen auf einfache Weise ein bestimmter Ablauf ausgeführt werden kann oder Antworten generiert werden können.

Bei der Erstellung eines Agents legen Sie durch Annotieren Teile in den Trainingsformulierungen und durch Konfigurieren der zugehörigen Parameter fest, wie die Daten extrahiert werden.

In der folgenden Liste sind die Felder einer Parameterkonfiguration aufgeführt. Die Beispiele beziehen sich auf die Trainingsformulierung "book a room on Tuesday" (Buchen Sie ein Zimmer für Dienstag), wobei "Tuesday" (Dienstag) annotiert ist.

  • Required (Erforderlich): Klicken Sie auf dieses Kästchen, wenn der Parameter für die Vervollständigung des Intents erforderlich ist. Weitere Informationen finden Sie im Abschnitt Slot-Füllung mit erforderlichen Parametern weiter unten.
  • Parameter Name (Parametername): Ein Name zur Bezeichnung des Parameters. Beispiel: date.
  • Entity (Entität): Der Entitätstyp für den Parameter. Beispiel: @sys.date.
  • Value (Wert): In den meisten Fällen ist dies ein Parameterverweis wie $parameter-name, der als Platzhalter für den extrahierten Wert zur Laufzeit verwendet wird. Dieses Feld kann jedoch auch zur Auswahl alternativer Werte verwendet werden. Weitere Informationen hierzu finden Sie weiter unten im Abschnitt Parameterwerte und Parameterverweise. Beispiel: $date.
  • Is List (Ist Liste): Klicken Sie auf dieses Kästchen, wenn die Werte als Liste zurückgegeben werden sollen. Weitere Informationen finden Sie im Abschnitt Parameter auflisten weiter unten.
  • Prompts (Gezielte Fragen): Vom Agent ausgegebene Fragen an den Endnutzer, wenn der entsprechende Parameter nicht bereitgestellt wurde. Das Feld wird nur verwendet, wenn das Feld Required (Erforderlich) aktiviert ist. Weitere Informationen finden Sie im Abschnitt Slot-Füllung mit erforderlichen Parametern weiter unten.
  • Default value (Standardwert): Dies ist der Standardwert für den Parameter, wenn vom Endbenutzer kein Wert angegeben wird. Zur Änderung des Standardwerts mit der Konsole bewegen Sie den Mauszeiger auf die Parameterzeile und klicken auf das Menü auf der rechten Seite.

Wenn ein Intent zur Laufzeit zugeordnet wird, übergibt Dialogflow Parameterdaten an die Anfrage des Auftragsausführungs-Webhooks oder an die API-Interaktionsantwort. Die Daten werden als Zuordnung von Parameternamen zu Parameterwerten bereitgestellt.

Bei der Erstellung eines Agents können Sie für die Antworten Parameterwerte festlegen. Siehe Parameterwerte und Parameterverweise unten.

Parameter auflisten

Wenn Sie einen Agent mit der Konsole erstellen, haben Sie die Möglichkeit, den Parameter durch Klicken auf das Kästchen Is List (Ist Liste) als Liste zu konfigurieren. In Listen können mehrere Elemente enthalten sein. Ein Beispiel ist ein Agent zum Bestellen von Obst und Gemüse, der folgende Äußerungen eines Endnutzers erwartet:

  • "Ich möchte Äpfel"
  • "Ich möchte Äpfel und Orangen"
  • "Ich möchte Äpfel, Orangen und Bananen"

Wenn Sie Trainingsformulierungen mit Listenparametern annotieren, können Ihre Formulierungen ein oder mehrere Parameterbeispiele enthalten, die Sie jeweils separat annotieren:

Screenshot der Listenparameterannotation

Sobald Sie mindestens zwei Wörter oder Wortgruppen mit demselben Parameter in einer einzelnen Trainingsformulierung annotieren, wird die Option Is List (Ist Liste) automatisch aktiviert. Wenn Sie diese Option deaktivieren, aber dieselbe Annotation beibehalten, wird Is List (Ist Liste) automatisch wieder aktiviert, sobald Sie die Seite mit dieser Annotation öffnen.

Bei mehrsprachigen Agents ist die Option Is List (Ist Liste) nicht sprachspezifisch.

Parameterwerte und Parameterverweise

Parameterverweise sind Variablen, die zur Laufzeit extrahierte Parameterwerte enthalten. Beim Erstellen eines Agents können Sie Parameterverweise in Intent-Antworten, Parameteraufforderungen und dem Feld Parameterwert verwenden.

Sie können beispielsweise $parameter-name in einer Intent-Antwort verwenden. Wenn Dialogflow dem Nutzer antwortet, wird dieser Parameterverweis durch den Parameterwert ersetzt, der zur Laufzeit extrahiert wird. Dies ist hilfreich, um die vom Endnutzer bereitgestellten Informationen kurz zusammenzufassen. Die Intent-Antwort kann z. B. lauten: "Okay, I booked a room for you on $date" (OK, ich habe für Sie ein Zimmer am $date gebucht).

Grundlegender Parameterverweis

Verwenden Sie das folgende Format, um auf einen Parameterwert zu verweisen, der von der verknüpften Entität extrahiert wurde:

$parameter-name

Beispiel: Wenn der Parametername date lautet, können Sie mit $date auf ihn Bezug nehmen.

Parameterverweis für einen ursprünglichen Wert

Wird einer bestimmten Entität Text zugeordnet, wird dieser oft für eine einfachere Verarbeitung konvertiert. Beispielsweise kann der Begriff "Äpfel" in einer Endnutzeräußerung als "Apfel" für eine Obstentität extrahiert werden. Verwenden Sie das folgende Format, um auf einen Parameterwert genau so zu verweisen, wie er vom Endnutzer geschrieben oder gesprochen wurde:

$parameter-name.original

Beispiel: Wenn der Parametername date lautet, können Sie mit $date.original auf den ursprünglichen Wert Bezug nehmen.

Parameterverweis für mehrdeutige Daten

Wenn ein Parameter mit der Systementität @sys.date verknüpft ist und der Endnutzer ein unvollständiges Datum (ohne Angabe von Monat, Tag und Jahr) angibt, ordnet Dialogflow das nächste Datum in der Zukunft zu. Sie können aber auch Varianten dieses Datums abrufen.

Sie können die explizite Teilübereinstimmung abrufen, wobei Dialogflow den unbekannten Teil durch U im folgenden Format ersetzt:

$parameter-name.partial

Sie können das nächstgelegene Datum in der Vergangenheit mit folgendem Format abrufen:

$parameter-name.recent

Wenn das heutige Datum beispielsweise der 11. August 2021 ist, lautet Ihr Parametername date und der Nutzer sagt „13. August“:

Parameterverweis Aufgelöster Wert
$date 2021-08-13
$date.partial UUUU-08-13
$date.recent 2020-08-13

Parameterverweis für eine zusammengesetzte Entität

Zusammengesetzte Entitäten sind Entitäten, die Unterentitäten enthalten. Verwenden Sie das folgende Format, um auf den Wert der Unterentität eines Parameters zu verweisen:

$parameter-name.sub-entity-name

Beispiel: Wenn der Parametername move und der Name der Subentität direction lautet, können Sie mit $move.direction auf den Wert der Subentität Bezug nehmen.

Parameterverweis für einen aktiven Kontext

Contexts (Kontexte) können als temporärer Speicher für Parameterwerte dienen. Verwenden Sie das folgende Format, um auf einen Parameterwert aus einem aktiven Kontext zu verweisen:

#context-name.parameter-name

Beispiel: Wenn der Parametername room und der aktive Kontext reservation lautet, können Sie mit #reservation.room auf den Parameterwert Bezug nehmen.

Parameterverweis für einen Ereignisparameter

Verwenden Sie das folgende Format, um auf einen Ereignisparameter zu verweisen:

#event-name.parameter-name

Beispiel: Wenn der Parametername duration und der Ereignisname alarm lautet, können Sie mit #alarm.duration auf den Ereignisparameter Bezug nehmen.

Feld "Value" des Parameters

Parameterverweise im Feld Value (Wert) des Parameters haben eine besondere Bedeutung. Der Inhalt in diesem Feld bestimmt den aufgelösten Wert für $parameter-name in Intent-Antworten und Parameteraufforderungen. Dialogflow verarbeitet Parameterdaten in der folgenden Reihenfolge:

  1. Extrahieren Sie den Parameterwert mithilfe der verknüpften Entität aus dem Endnutzerausdruck.
  2. Lösen Sie den Inhalt im Feld Value (Wert) des Parameters auf.
  3. Legen Sie $parameter-name für den aufgelösten Inhalt im Feld Value (Wert) des Parameters fest. Wenn das Feld Value (Wert) des Parameters nicht auf $parameter-name festgelegt wird, wird dadurch der Wert von $parameter-name auf etwas anderes zurückgesetzt.
  4. Inhalte für Intent-Antworten und Parameteraufforderungen auflösen

Im Folgenden finden Sie einige Beispiele zur Darstellung der Auswirkungen dieser Sortierung auf den Endnutzerausdruck "Ich möchte ein kleines T-Shirt kaufen".

Speicherort des Parameterverweises Konfigurierter Inhalt Aufgelöster Inhalt
Feld Value (Wert) des Parameters $size S
Intent-Antwort Sie haben die Größe "$size" ausgewählt Sie haben die Größe "S" ausgewählt
Speicherort des Parameterverweises Konfigurierter Inhalt Aufgelöster Inhalt
Feld Value (Wert) des Parameters $size.original Small
Intent-Antwort Sie haben die Größe "$size" ausgewählt Sie haben die Größe "Small" ausgewählt
Speicherort des Parameterverweises Konfigurierter Inhalt Aufgelöster Inhalt
Feld Value (Wert) des Parameters $size S
Intent-Antwort Sie haben die Größe "$size.original" ausgewählt Sie haben die Größe "Small" ausgewählt

Slot-Füllung mit erforderlichen Parametern

Wenn Sie einen Agent erstellen, können Sie Parameter als erforderlich markieren. Ein Intent ist erst vollständig, wenn der Endnutzer Daten für alle erforderlichen Parameter bereitgestellt hat.

Screenshot der Felder für erforderliche Parameter

Wenn ein Intent zur Laufzeit zugeordnet wird, erfasst der Dialogflow-Agent so lange Informationen vom Endnutzer, bis dieser Daten für jeden erforderlichen Parameter bereitgestellt hat. Dieser Vorgang wird als Slot-Füllung bezeichnet.

Dialogflow sendet die Anfrage des Auftragsausführungs-Webhooks erst, wenn alle erforderlichen Endnutzerdaten erfasst wurden und der Webhook für Slot-Füllung aktiviert ist.

Dialogflow sendet eine API-Interaktionsantwort für jeden Schritt der Slot-Füllung. Für jede dieser Ausfüllantworten sind der Intent und die Aktion identisch und die bisher erfassten Parameter werden bereitgestellt.

Bei der Erstellung eines Agents legen Sie gezielte Fragen fest, mit denen der Agent Parameterdaten vom Endnutzer anfordert. Dabei lassen sich auch Variationen dieser gezielten Fragen angeben, sodass der Agent nicht immer die gleiche Frage stellt.

Screenshot mit gezielten Fragen für Parameter

Angenommen, Ihr Bekleidungsgeschäft hat einen Intent mit erforderlichen Parametern für folgende Kategorien:

  • Art der Kleidung
  • Menge
  • Größe
  • Farbe

Die Vervollständigung eines Intents kann dann beispielsweise so ablaufen:

Nutzer: Ich möchte ein T-Shirt kaufen.
Agent: Wie viele sollen es sein?
Nutzer: 3
Agent: Welche Farbe wünschen Sie?
Nutzer: Schwarz
Agent: Welche Größe?
Nutzer: Medium
Agent: OK, Sie möchten drei schwarze T-Shirts der Größe Medium kaufen.

Wenn der Endnutzer Daten für mehr als einen Parameter in einer Äußerung bereitstellt, erfasst Dialogflow die übermittelten Daten und setzt den Dialog mit Fragen nach den fehlenden Daten fort. Bei einer Äußerung wie "Ich möchte drei schwarze T-Shirts kaufen" fragt Dialogflow dann den Nutzer nach der Größe.

Parameter neu anordnen

Wenn Sie einen Agent erstellen, können Sie durch gezielte Anordnung der Parameter die Reihenfolge festlegen, in der der Agent den Endnutzer zur Eingabe fehlender Daten auffordert.

In der Konsole wird beim Bewegen des Mauszeigers über einen Parameter auf der rechten Seite ein Symbol zur Neuanordnung angezeigt. Durch Ziehen dieses Symbols lässt sich die Position des Parameters in der Liste ändern.

Parameterverweise in Aufforderungen

Beim Erstellen eines Agents können Sie Parameterverweise in Eingabeaufforderungen verwenden, jedoch nur für erforderliche Parameter vor der Eingabeaufforderung. Wenn der Parameter color beispielsweise vor dem Parameter quantity ist, können Sie die folgende Eingabeaufforderung für den Parameter quantity verwenden: How many $color t-shirts would you like to buy?

Slot-Füllung abbrechen

Wenn der Endnutzer durch Formulierungen wie "Abbrechen", "Stopp", "Das reicht" usw. zu erkennen gibt, dass er den Vorgang beenden möchte, antwortet der Agent mit "OK, abgebrochen" und löscht die Kontexte der Slot-Füllung.

Wenn Sie die API verwenden, wird das Feld DetectIntentResponse.queryResult.cancelsSlotFilling auf true gesetzt, wenn die Slot-Füllung abgebrochen wird. Weitere Informationen finden Sie in der detectIntent-Dokumentation zum Typ Sessions.