Types
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les types vous permettent de configurer le NLU (Natural Language Understanding, compréhension du langage naturel) de l'Assistant
pour extraire les données structurées des entrées utilisateur. Toi
peuvent utiliser des types dans les situations suivantes:
Dans les intents, vous pouvez annoter les phrases d'entraînement avec des types pour :
créer des emplacements. Quand les utilisateurs disent quelque chose qui correspond à un emplacement, le moteur NLU
l'extrait en tant que paramètre typé, afin que vous puissiez le traiter dans une scène.
À l'étape de remplissage de cases d'une scène, vous pouvez spécifier
que l'utilisateur doit fournir avant de pouvoir
une transition ou une sortie de la scène.
Dans l'étape conditions d'une scène, vous pouvez baser
pour déterminer si un paramètre possède une valeur spécifique définie dans un type.
Types personnalisés
Les types personnalisés vous permettent de créer votre propre spécification de type pour avertir la NLU des
d'attribuer un ensemble de valeurs à une seule clé. Vous pouvez spécifier des types dans différents
différentes manières:
- Les mots et synonymes vous permettent de mapper plusieurs valeurs à une clé unique.
qui s'appellent des entrées. Le type peut contenir une ou plusieurs entrées. Si vous
sélectionnez cette option, vous pouvez également activer les paramètres NLU suivants:
<ph type="x-smartling-placeholder">
</ph>
- Activer la correspondance partielle : cette fonctionnalité autorise les entrées contenant plusieurs
le mot à rechercher, même s'ils sont prononcés dans un ordre différent.
- Accepter les valeurs inconnues : lorsque vous ne pouvez pas spécifier toutes les valeurs possibles, le paramètre
le processeur de langue peut accepter des mots ou expressions inconnus basés sur
des données d'entrée et d'entraînement sur l'intent, telles que les articles pouvant être ajoutés à une épicerie
liste.
- Les expressions régulières permettent au type de faire correspondre les valeurs à l'aide des expressions régulières
des modèles d'expression basés sur
Norme RE2 de Google.
- Texte au format libre permet de faire correspondre le type
tout ce qu'un utilisateur dit. L'annotation
un intent de ce type vous permet d'utiliser toutes les entrées en tant que paramètre
vous pouvez rediriger vers votre propre NLU.
Types de systèmes
Les types système vous permettent d'annoter et d'extraire des données connues à partir d'entrées utilisateur
à l'aide des données et valeurs
d'entraînement fournies par le système. Les types de systèmes suivants sont
compatibles:
Type |
Description |
actions.type.DateTime |
Contient la date, l'heure et le fuseau horaire en fonction des paramètres de l'appareil de l'utilisateur.
Disponible pour le remplissage de cases et l'annotation de phrases d'entraînement.
|
actions.type.Date |
Contient uniquement la date. Disponible pour le remplissage de cases uniquement. |
actions.type.Time |
Ne contient que l'heure. Disponible pour le remplissage de cases uniquement. |
actions.type.Number |
Le type Number correspond à ordinal et cardinal
de chiffres. |
Utilisation de DateTime
, Date
et Time
Ces types se comportent différemment selon l'endroit où vous les utilisez et les
une entrée utilisateur correspondant au type.
Utiliser avec des intents
L'annotation de phrases d'entraînement dans les intents n'est compatible qu'avec le type DateTime
. Utilisateur
l'entrée n'a pas besoin de correspondre à l'intégralité d'une valeur DateTime
. Par exemple, si un utilisateur
ne fournit que l'année, le paramètre de session peut se présenter comme suit:
"date_time": {
"year": 2019
}
Utiliser avec le remplissage de cases
Le remplissage d'emplacements est compatible avec DateTime
, Date
et Time
.
- Si le type d'emplacement est
DateTime
, l'Assistant invite l'utilisateur jusqu'à
est fournie.
- Si le type d'emplacement est
Date
, l'Assistant invite l'utilisateur jusqu'à une date
est fournie. Lorsqu'il est collecté, le paramètre que vous recevez est un nombre
DateTime
avec l'heure définie sur 00:00.
- Si le type d'emplacement est
Time
, l'Assistant invite l'utilisateur jusqu'à un moment
est fournie. Lorsqu'il est collecté, le paramètre que vous recevez est une valeur
DateTime
avec la date définie sur la date actuelle.
Par exemple, supposons qu'un utilisateur basé à Los Angeles dit : "Hey Google, crée un rappel
le 15 janvier 2024 à 20h. » Lorsque DateTime
est extrait dans le cadre d'un emplacement
processus de remplissage, le paramètre complet
peut ressembler à ceci:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Utiliser des conditions avec
Les conditions n'autorisent que l'utilisation de nombres et de chaînes. Par conséquent, l'utilisation du niveau supérieur
DateTime
génère un résultat False pour la condition. Exemple :
$session.params.my_dateTime.day > 5
est une condition valide, car la valeur
La valeur day
est un nombre. Elle est prise en charge.
$session.params.my_dateTime > "01-01-2010"
n'est pas une condition valide, car
la colonne "DateTime" n'est pas un nombre ni une chaîne.
Forçages de types d'environnement d'exécution
Les remplacements de type d'exécution vous permettent de créer ou de modifier des types de manière dynamique dans
le traitement. Cette fonctionnalité vous permet d'ajouter ou de remplacer la spécification d'un type à l'adresse
de l'environnement d'exécution. Par exemple, vous pouvez consulter une source de données backend pour charger le menu quotidien
dans un type de traitement.
Pour en savoir plus, consultez le guide sur les webhooks.
sur la création de remplacements de types.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]