Mit Typen können Sie die Assistant NLU-Engine (Natural Language Understanding) konfigurieren, um strukturierte Daten aus Nutzereingaben zu extrahieren. 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 diesen als typisierten Parameter, sodass Sie ihn in einer Szene verarbeiten können.
In der Phase der Slot-Füllung einer Szene können Sie mehrere Slots angeben, die der Nutzer bereitstellen soll, bevor er die Szene verlassen oder verlassen kann.
In der Phase conditions einer Szene können Sie die Logik darauf aufbauen, ob ein Parameter einen bestimmten Wert hat, 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, einem einzelnen Schlüssel eine Reihe von Werten zuzuweisen. Sie können Typen auf verschiedene Arten angeben:
- Mit Wörtern und Synonymen können Sie mehrere Werte einem einzigen Schlüssel zuordnen. Dieser wird 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 basierend auf umgebenden Eingabe- und Intent-Trainingsdaten akzeptieren, z. B. Artikel, die einer Einkaufsliste hinzugefügt werden könnten.
- Mit regulären Ausdrücken kann der Typ Werte mithilfe von regulären Ausdrucksmustern auf Grundlage des RE2-Standards von Google abgleichen.
- Mit Freier Text kann der Typ jeder Texteingabe des Nutzers entsprechen. Wenn Sie einen Intent mit diesem Typ annotieren, können Sie alle Eingaben als Parameter verwenden, die Sie an Ihre eigene NLU weiterleiten können.
Systemtypen
Mit Systemtypen können Sie mithilfe von vom System bereitgestellten Trainingsdaten und -werten gängige Daten aus Nutzereingaben annotieren und extrahieren. Die folgenden 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 die Slot-Füllung und die Annotation von Trainingsformulierungen. |
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 entspricht Ordinal- und Kardinalzahlen. |
Nutzung von DateTime
, Date
und Time
Diese Typen verhalten sich unterschiedlich, je nachdem, wo Sie den Typ verwenden und welche Nutzereingabe mit dem Typ übereinstimmt.
Mit Intents verwenden
Das Annotieren von Trainingsformulierungen 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
Die Slot-Füllung unterstützt DateTime
, Date
und Time
.
- Wenn der Slottyp
DateTime
ist, wird der Nutzer von Assistant aufgefordert, bis ein vollständiger Wert angegeben ist. - Wenn der Slottyp
Date
ist, wird der Nutzer von Assistant aufgefordert, bis ein Datumswert angegeben wird. Wenn der Parameter erfasst wird, ist der vollständigeDateTime
mit der Zeit auf 00:00 festgelegt. - Wenn der Slottyp
Time
ist, wird der Nutzer von Assistant aufgefordert, bis ein Zeitwert angegeben wird. Bei der Erfassung ist der Parameter, den Sie empfangen, ein vollständigesDateTime
-Objekt, bei dem das Datum auf das aktuelle Datum festgelegt ist.
Angenommen, ein Nutzer in Hamburg hat gesagt: „Hey Google, erstelle eine Erinnerung für den 15. Januar 2024 um 20 Uhr.“ Wenn DateTime
im Rahmen einer Slot-Füllung 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
Bedingungen lassen nur die Verwendung von Zahlen und Strings zu, sodass die Verwendung des übergeordneten Parameters DateTime
zu einem False-Ergebnis für die Bedingung führt. 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 übergeordnete Objekt „DateTime“ weder eine Zahl noch ein String ist.
Laufzeittypüberschreibungen
Mit Laufzeittypüberschreibungen können Sie Typen in der Auftragsausführung dynamisch erstellen oder ändern. Mit dieser Funktion 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üpunkte in einen Typ in der Auftragsausführung zu laden.
Weitere Informationen zum Erstellen von Typüberschreibungen finden Sie im Webhook-Leitfaden.