Typen

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ändige DateTime 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ändiges DateTime-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 Wert day 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.