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 annotieren, um Slots zu erstellen. Wenn Nutzer etwas sagen, das mit einem Slot übereinstimmt, extrahiert die NLU-Engine ihn als typisierten Parameter, damit Sie ihn in einer Szene verarbeiten können.
In der Phasenfüllung einer Szene können Sie mehrere Slots angeben, die der Nutzer bereitstellen soll, bevor er umsteigen oder die Szene verlassen kann.
In der Bedingung einer Szene können Sie darauf basiert, 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 die 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 mehrere Werte zuordnen. Diese werden als Eintrag bezeichnet. 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. Artikel, die einer Einkaufsliste hinzugefügt werden können.
- Mit regulären Ausdrücken kann der Typ Werte anhand von regulären Ausdrucksmustern auf Basis des RE2-Standards von Google abgleichen.
- Bei Freier Text passt sich der Typ an das, was ein Nutzer sagt. Wenn Sie einen Intent mit diesem Typ annotieren, können Sie alle Eingaben als Parameter verarbeiten, den Sie an Ihre eigene NLU weiterleiten können.
Systemtypen
Mit Systemtypen können Sie bekannte Daten mit vom System bereitgestellten Trainingsdaten und Werten annotieren und extrahieren. Die folgenden Systemtypen werden unterstützt:
Typ | Beschreibung |
---|---|
actions.type.DateTime |
Enthält Datum, Uhrzeit und Zeitzone gemäß den Geräteeinstellungen des Nutzers. Verfügbar für die Annotation von Slot-Füllungen und Trainingswortgruppen. |
actions.type.Date |
Enthält nur das Datum. Nur für Slot-Füllung verfügbar. |
actions.type.Time |
Enthält nur Zeit. Nur für Slot-Füllung verfügbar. |
actions.type.Number |
Der Typ Number stimmt mit den Ordinal- und Kardinalzahlen überein. |
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
}
Wird mit Slot-Füllung verwendet
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 ist. - Wenn der Slottyp
Date
ist, fordert Assistant den Nutzer auf, bis ein Datumswert angegeben ist. Der Parameter, den Sie erhalten, ist ein ganzerDateTime
mit der Zeit 00:00. - Wenn der Slottyp
Time
ist, fordert Assistant den Nutzer auf, bis ein Zeitwert angegeben wird. Bei deren Erfassung ist der Parameter, den du erhältst, ein vollständigesDateTime
-Objekt, bei dem das Datum auf das aktuelle Datum eingestellt ist.
Beispiel: Ein Nutzer in Los Angeles hat gesagt: „Hey Google, erstelle eine Erinnerung für den 15. Januar 2024 um 20:00 Uhr.“ Wenn DateTime
durch einen Slot-Füllvorgang 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
In Bedingungen können nur Zahlen und Strings verwendet werden. Wenn Sie den Parameter DateTime
auf oberster Ebene verwenden, wird für die Bedingung also ein False-Ergebnis angezeigt. 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.
Überschreibungen des Laufzeittyps
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 während der Laufzeit ergänzen oder ersetzen. Sie können beispielsweise in einer Back-End-Datenquelle festlegen, dass tägliche Menüelemente in einen Typ in der Auftragsausführung geladen werden.
Weitere Informationen zum Erstellen von Typüberschreibungen finden Sie im Leitfaden zu Webhooks.