Mit Typen können Sie die Assistant NLU-Engine (Natural Language Understanding) so konfigurieren, dass strukturierte Daten aus Nutzereingaben extrahiert werden. Sie können Typen in den folgenden Situationen verwenden:
In Intents können Sie Trainingsformulierungen mit Typen zum Erstellen von Slots annotieren. Wenn Nutzer etwas sagen, das mit einem Slot übereinstimmt, wird es von der NLU-Engine als typisierter Parameter extrahiert, sodass Sie es in einer Szene verarbeiten können.
In der Slot-Füllung einer Szene können Sie mehrere Slots angeben, die der Nutzer bereitstellen oder verlassen darf.
In der Phase Bedingungen einer Szene können Sie anhand einer Logik darauf aufbauen, ob ein Parameter einen bestimmten Wert enthält, der in einem Typ definiert ist.
Benutzerdefinierte Typen
Mit benutzerdefinierten Typen können Sie eine eigene Typspezifikation erstellen, um den NLU darüber zu informieren, dass einem einzelnen Schlüssel eine Gruppe von Werten zugewiesen wird. Sie können Typen auf verschiedene Arten angeben:
- Mit Wörtern und Synonymen können Sie einem einzelnen Schlüssel, der als Eintrag bezeichnet wird, mehrere Werte zuordnen. Der Typ kann einen oder mehrere Einträge enthalten. Wenn Sie diese Option auswählen, können Sie auch die folgenden NLU-Einstellungen aktivieren:
- Ungenaue Übereinstimmung aktivieren: Mit dieser Funktion können Einträge mit mehr als einem Wort abgeglichen werden, auch wenn die Wörter in einer anderen Reihenfolge gesprochen werden.
- Unbekannte Werte akzeptieren: Wenn Sie nicht alle möglichen Werte angeben können, kann der Sprachprozessor unbekannte Wörter oder Wortgruppen auf der Grundlage von umgebenden Eingabe- und Intent-Trainingsdaten akzeptieren, z. B. Elemente, die einer Einkaufsliste hinzugefügt werden können.
- Mit regulären Ausdrücken kann der Typ Werte anhand regulärer Ausdrucksmuster basierend auf dem RE2-Standard von Google abgleichen.
- Bei Freitext entspricht der Typ dem, was der Nutzer sagt. Wenn Sie einen Intent mit diesem Typ annotieren, können Sie alle Eingaben als Parameter nutzen, den Sie dann an Ihre eigene NLU weiterleiten können.
Systemtypen
Mit Systemtypen können Sie bekannte Daten aus den Nutzereingaben mit den vom System bereitgestellten Trainingsdaten und -werten annotieren und extrahieren. Folgende Systemtypen werden unterstützt:
Typ | Beschreibung |
---|---|
actions.type.DateTime |
Enthält Datum, Uhrzeit und Zeitzone basierend auf den Geräteeinstellungen des Nutzers. Verfügbar für Slot-Füllung und Annotation von Trainingswortgruppen. |
actions.type.Date |
Enthält nur das Datum. Nur für Slot-Füllung verfügbar. |
actions.type.Time |
Enthält nur die Zeit. Nur für Slot-Füllung verfügbar. |
actions.type.Number |
Der Typ Number entspricht den Ordinal- und Kardinalzahlen. |
Nutzung von DateTime
, Date
und Time
Diese Typen verhalten sich unterschiedlich, je nachdem, wo Sie den Typ und die Nutzereingabe verwenden, die dem Typ entspricht.
Mit Intents verwenden
Das Annotieren von Trainingswortgruppen in Intents unterstützt nur den Typ DateTime
. Die Nutzereingabe muss nicht mit einem ganzen DateTime
-Wert übereinstimmen. Wenn ein Nutzer beispielsweise nur das Jahr angibt, könnte der Sitzungsparameter so aussehen:
"date_time": {
"year": 2019
}
Mit Slot-Füllung verwenden
Slot-Füllung unterstützt DateTime
, Date
und Time
.
- Wenn der Slottyp
DateTime
ist, fordert Assistant den Nutzer auf, bis ein vollständiger Wert angegeben wird. - Wenn der Slottyp
Date
ist, fordert Assistant den Nutzer auf, bis ein Datumswert angegeben ist. Bei der Erfassung erhalten Sie einen vollständigenDateTime
mit dem Wert 00:00. - Wenn der Slottyp
Time
ist, fordert Assistant den Nutzer auf, bis ein Zeitwert angegeben wird. Wenn er erfasst wird, ist der empfangene Parameter ein vollständigesDateTime
-Objekt mit dem Datum, das auf das aktuelle Datum gesetzt ist.
Beispiel: Ein Nutzer in Los Angeles sagt: „Hey Google, erstelle eine Erinnerung für den 15. Januar 2024 um 20:00 Uhr“. Wenn DateTime
im Rahmen eines Slot-Füllungsprozesses extrahiert wird, könnte der vollständige Parameter so aussehen:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Mit Bedingungen verwenden
Bei Bedingungen ist nur die Verwendung von Zahlen und Strings zulässig. Wenn Sie den Parameter DateTime
der obersten Ebene verwenden, erhalten Sie für die Bedingung also das Ergebnis False. Beispiel:
$session.params.my_dateTime.day > 5
ist eine gültige Bedingung, da der Wertday
eine Zahl ist und unterstützt wird.$session.params.my_dateTime > "01-01-2010"
ist eine ungültige Bedingung, da das „DateTime“-Objekt der obersten Ebene keine Zahl oder ein String ist.
Laufzeittyp-Überschreibungen
Mit Laufzeittyp-Überschreibungen können Sie Typen in der Auftragsausführung dynamisch erstellen oder ändern. Mit diesem Feature können Sie die Spezifikation eines Typs zur Laufzeit ergänzen oder ersetzen. Sie können beispielsweise eine Back-End-Datenquelle prüfen, um tägliche Menüelemente in einen Typ in der Auftragsausführung zu laden.
Weitere Informationen zum Erstellen von Typüberschreibungen finden Sie im Webhooks-Leitfaden.