Typen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Mit Typen können Sie Assistant NLU (Natural Language Understanding) konfigurieren
um strukturierte Daten aus Nutzereingaben zu extrahieren. Ich
können Typen in den folgenden Situationen verwenden:
In intents können Sie Trainingsformulierungen mit Typen annotieren,
Anzeigenflächen erstellen. Wenn Nutzer etwas sagen, das mit einem Slot übereinstimmt, zeigt die NLU-Engine
extrahiert ihn als typisierten Parameter, damit er in einer Szene verarbeitet werden kann.
In der Phase Slot-Füllung einer Szene können Sie durch
die der Nutzer bereitstellen soll, bevor er
oder verlassen die Szene.
Innerhalb der Phase conditions einer Szene können Sie
Logik, ob ein Parameter einen bestimmten Wert hat, der in einem Typ definiert ist.
Benutzerdefinierte Typen
Mit benutzerdefinierten Typen können Sie Ihre eigene Typspezifikation erstellen, um die NLU zu benachrichtigen,
einem einzelnen Schlüssel
eine Gruppe von Werten zuzuweisen. Sie können Typen in einer Vielzahl von
Möglichkeiten:
- Mit Wörtern und Synonymen können Sie mehrere Werte einem einzigen Schlüssel zuordnen.
die als Eintrag bezeichnet werden. Ihr Typ kann einen oder mehrere Einträge enthalten. Wenn Sie
Wenn Sie diese Option auswählen, können Sie auch die folgenden NLU-Einstellungen aktivieren:
<ph type="x-smartling-placeholder">
</ph>
- Ungenaue Übereinstimmung aktivieren: Mit dieser Funktion sind Einträge mit mehr als einem zulässig.
Wort, das abgeglichen werden soll, auch wenn die Wörter in einer anderen Reihenfolge gesprochen werden.
- Unbekannte Werte akzeptieren: Wenn Sie nicht alle möglichen Werte angeben können,
Der Sprachprozessor kann unbekannte Wörter oder Wortgruppen akzeptieren, die sich auf die Umgebung beziehen
Eingabe- und Intent-Trainingsdaten, z. B. Artikel, die einem Lebensmittel hinzugefügt werden könnten
Liste.
- Reguläre Ausdrücke ermöglichen es dem Typ, Werte mithilfe von regulären Ausdrücken
Ausdrucksmustern basierend auf
RE2-Standard von Google.
- Mit Freier Text wird der Typ
was Nutzende sagen. Anmerkungen
Mit einem Intent mit diesem Typ können Sie
die gesamte Eingabe als Parameter nutzen,
eine Pipe an Ihre eigene NLU.
Systemtypen
Mit Systemtypen können Sie bekannte Daten mit Anmerkungen versehen und aus Nutzereingaben extrahieren
mit vom System bereitgestellten Trainingsdaten und Werten. Die folgenden Systemtypen sind
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 stimmt mit Ordinal- und Kardinalzahlen überein
Zahlen. |
Nutzung von DateTime
, Date
und Time
Diese Typen verhalten sich unterschiedlich, je nachdem, wo Sie den Typ und den
Nutzereingabe, die dem Typ entspricht.
Mit Intents verwenden
Das Annotieren von Trainingsformulierungen in Intents unterstützt nur den Typ DateTime
. Nutzer
Die Eingabe muss nicht mit einem ganzen DateTime
-Wert übereinstimmen. Wenn ein Nutzer z. B.
nur das Jahr bereitstellt, kann der Sitzungsparameter wie folgt 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, fordert Assistant den Nutzer auf, bis eine volle
-Wert angegeben ist.
- Wenn der Slottyp
Date
ist, fordert Assistant den Nutzer bis zu einem Datum auf
-Wert angegeben ist. Der Parameter, den Sie erhalten, ist ein vollständiger
DateTime
mit einer Zeitangabe auf 00:00.
- Wenn der Slottyp
Time
ist, wird der Nutzer von Assistant aufgefordert,
-Wert angegeben ist. Bei der Erfassung ist der empfangene Parameter ein
DateTime
-Objekt, wobei das aktuelle Datum als Datum festgelegt ist
Angenommen, ein Nutzer in Hamburg sagt: „Hey Google, erstelle eine Erinnerung
für den 15. Januar 2024 um 20 Uhr.“ Wenn DateTime
als Teil eines Slots extrahiert wird
kann der vollständige Parameter wie folgt aussehen:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Verwendung mit Bedingungen
Bedingungen lassen nur die Verwendung von Zahlen und Strings zu. Die Verwendung der obersten Ebene
Der Parameter DateTime
führt zu einem Ergebnis vom Typ False für die Bedingung. Beispiel:
$session.params.my_dateTime.day > 5
ist eine gültige Bedingung, da die
Der day
-Wert ist eine Zahl und wird unterstützt.
$session.params.my_dateTime > "01-01-2010"
ist eine ungültige Bedingung, weil
die oberste Ebene "DateTime". Objekt ist keine Zahl oder kein String.
Laufzeittypüberschreibungen
Mit Laufzeittypüberschreibungen können Sie Typen dynamisch in
Auftragsausführung. Mit dieser Funktion können Sie die Spezifikation eines Typs unter
Laufzeit. Sie können beispielsweise eine Back-End-Datenquelle prüfen, um das Menü des Tages zu laden.
bei der Auftragsausführung in einen Typ umwandeln.
Weitere Informationen finden Sie im Webhook-Leitfaden.
zum Erstellen von Typüberschreibungen.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-07-26 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-26 (UTC)."],[[["\u003cp\u003eTypes are used to extract structured data from user input, allowing you to create slots in intents, manage slot filling within scenes, and define conditions based on parameter values.\u003c/p\u003e\n"],["\u003cp\u003eYou can create custom types using words and synonyms, regular expressions, or free-form text to define how the NLU interprets user input.\u003c/p\u003e\n"],["\u003cp\u003eSystem types such as \u003ccode\u003eDateTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e, \u003ccode\u003eTime\u003c/code\u003e, and \u003ccode\u003eNumber\u003c/code\u003e provide built-in data extraction for common data formats.\u003c/p\u003e\n"],["\u003cp\u003eRuntime type overrides enable dynamic modification of types during fulfillment, allowing you to adjust types based on real-time data.\u003c/p\u003e\n"]]],[],null,["# Types let you configure the Assistant NLU (natural language understanding)\nengine to extract structured data from user input. You\ncan use types in the following situations:\n\n- In [intents](/assistant/conversational/intents), you can annotate training phrases with types to\n create slots. When users say something that matches a slot, the NLU engine\n extracts it as a typed parameter, so you can process it in a [scene](/assistant/conversational/scenes).\n\n- Within a scene's [slot filling](/assistant/conversational/scenes#slot_filling) stage, you can specify\n multiple slots that you want the user to provide before they can\n transition or exit out of the scene.\n\n- Within a scene's [conditions](/assistant/conversational/scenes#conditions) stage, you can base\n logic on whether a parameter has a specific value that's defined in a type.\n\nCustom types\n------------\n\nCustom types let you create your own type specification to notify the NLU to\nassign a set of values to a single key. You can specify types in a variety of\nways:\n\n- **Words and synonyms** allow you to map multiple values to a single key, which are called an entry. Your type can contain one or many entries. If you choose this option, you can also enable the following NLU settings:\n - **Enable fuzzy matching** - This feature allows entries with more than one word to be matched, even when the words are spoken in a different order.\n - **Accept unknown values** - When you can't specify all possible values, the language processor can accept unknown words or phrases based on surrounding input and intent training data, such as items that might be added to a grocery list.\n- **Regular expressions** allows the type to match values using regular expression patterns based on [Google's RE2 standard](https://github.com/google/re2/wiki/Syntax).\n- **Free form text** allows the type to match anything a user says. Annotating an intent with this type lets you consume all input as a parameter that you can pipe to your own NLU.\n\nSystem types\n------------\n\nSystem types let you annotate and extract well-known data from user input\nusing system-provided training data and values. The following system types are\nsupported:\n\n| Type | Description |\n|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|\n| **`actions.type.DateTime`** | Contains date, time, and timezone based on the user's device settings. Available for slot filling and training phrase annotation. |\n| **`actions.type.Date`** | Contains date only. Available for slot filling only. |\n| **`actions.type.Time`** | Contains time only. Available for slot filling only. |\n| **`actions.type.Number`** | The `Number` type matches ordinal and cardinal numbers. |\n\n### `DateTime`, `Date`, and `Time` usage\n\nThese types behave differently depending on where you use the type and the\nuser input that matches the type.\n\n#### Using with intents\n\nAnnotating training phrases in intents supports only the `DateTime` type. User\ninput doesn't need to match an entire `DateTime` value. For example, if a user\nprovides only the year, the session parameter might look like this: \n\n \"date_time\": {\n \"year\": 2019\n }\n\n#### Using with slot filling\n\nSlot filling supports `DateTime`, `Date`, and `Time`.\n\n- If the slot type is `DateTime`, the Assistant prompts the user until a full value is provided.\n- If the slot type is `Date`, the Assistant prompts the user until a date value is provided. When collected, the parameter you receive is a full `DateTime` with the time set to 00:00.\n- If the slot type is `Time`, the Assistant prompts the user until a time value is provided. When collected, the parameter your receive is a full `DateTime` object with the date set to the current date.\n\nFor example, suppose a user in Los Angeles said, \"Hey Google, create a reminder\nfor January 15, 2024 at 8 pm.\" When `DateTime` is extracted as part of a slot\nfilling process, the full parameter might look like this: \n\n \"date_time\": {\n \"day\": 15,\n \"hours\": 20,\n \"minutes\": 0,\n \"month\": 1,\n \"nanos\": 0,\n \"seconds\": 0,\n \"time_zone\": {\n \"id\": \"America/Los_Angeles\"\n },\n \"year\": 2024\n }\n\n#### Using with conditions\n\nConditions only allow the use of numbers and strings, so using the top level\n`DateTime` parameter results in a **False** result for the condition. For\nexample:\n\n- `$session.params.my_dateTime.day \u003e 5` is a valid condition, because the `day` value is a number and is supported.\n- `$session.params.my_dateTime \u003e \"01-01-2010\"` is an invalid condition, because the top level 'DateTime' object is not a number or string.\n\nRuntime type overrides\n----------------------\n\nRuntime type overrides let you dynamically create or modify types in\nfulfillment. This feature lets you add to or replace a type's specification at\nruntime. For example, you can check a backend data source to load daily menu\nitems into a type in your fulfillment.\n\nSee the [webhooks](/assistant/conversational/webhooks#runtime_type_overrides) guide for more information\non how to build type overrides."]]