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 Konsole. So greifen Sie auf Aktions- und Parameterdaten zu:
- Rufen Sie die Dialogflow ES-Konsole auf.
- Wählen Sie einen Agent aus.
- Wählen Sie im Menü der linken Seitenleiste Intents aus.
- Wählen Sie einen Intent aus.
- Scrollen Sie nach unten zum Bereich 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:
Wenn Sie mindestens zwei Wörter oder Wortgruppen mit demselben Parameter annotiert haben in einer einzelnen Trainingsformulierung enthalten, ist die Option Is List (Ist Liste) automatisch aktiviert. Wenn Sie diese Option deaktivieren, aber dieselbe Anmerkung beibehalten, Ist Liste wird automatisch wieder überprüft, sobald Sie die Seite mit für diese Anmerkung.
Bei mehrsprachigen Agents: Die Option Ist Liste ist 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 heute z. B. der 11. August 2021 ist,
lautet der 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:
- Extrahieren Sie den Parameterwert mithilfe der verknüpften Entität aus dem Endnutzerausdruck.
- Lösen Sie den Inhalt im Feld Value (Wert) des Parameters auf.
- 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. - 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.
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.
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,
ist das Feld DetectIntentResponse.queryResult.cancelsSlotFilling
auf
true
, wenn die Slot-Füllung abgebrochen wird.
Weitere Informationen
finden Sie in der detectIntent
-Dokumentation zu
Sessions
Typ.