Les types vous permettent de configurer le moteur de NLU (Natural Language Understanding, compréhension du langage naturel) de l'Assistant pour extraire les données structurées des entrées utilisateur. Vous pouvez utiliser des types dans les situations suivantes:
Dans les intents, vous pouvez annoter des expressions d'entraînement avec des types pour créer des emplacements. Lorsque les utilisateurs disent quelque chose correspondant à un emplacement, le moteur NLU l'extrait en tant que paramètre typé afin que vous puissiez le traiter dans une scène.
Au cours de l'étape de remplissage d'emplacements d'une scène, vous pouvez spécifier plusieurs emplacements que vous souhaitez que l'utilisateur fournisse avant qu'il puisse effectuer la transition ou quitter la scène.
Au cours de l'étape de conditions d'une scène, vous pouvez baser la logique sur la disponibilité d'un paramètre ayant 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 notifier le NLU afin d'attribuer un ensemble de valeurs à une seule clé. Vous pouvez spécifier des types de différentes manières:
- Les mots et synonymes vous permettent de mapper plusieurs valeurs avec une seule clé, appelée entrée. Votre type peut contenir une ou plusieurs entrées. Si vous choisissez cette option, vous pouvez également activer les paramètres NLU suivants :
- Activer les correspondances partielles : cette fonctionnalité permet de saisir des entrées contenant plusieurs mots, même si ces mots sont prononcés dans un ordre différent.
- Accepter les valeurs inconnues : lorsque vous ne pouvez pas spécifier toutes les valeurs possibles, le processeur de langue peut accepter des mots ou des expressions inconnus en fonction des données d'entraînement d'entrée et d'intent environnantes, comme les articles pouvant être ajoutés à une liste de courses.
- Les expressions régulières permettent au type de faire correspondre des valeurs à l'aide de modèles d'expressions régulières basés sur la norme RE2 de Google.
- Le texte au format libre permet au type de s'adapter à tout ce qu'un utilisateur dit. L'annotation d'un intent avec ce type vous permet de consommer toutes les entrées en tant que paramètre que vous pouvez affiner à votre propre NLU.
Types de systèmes
Les types de systèmes vous permettent d'annoter et d'extraire des données connues des entrées utilisateur à l'aide des valeurs et des données 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 d'entraînement. |
actions.type.Date |
Ne contient que la date. Disponible pour le remplissage d'emplacements uniquement. |
actions.type.Time |
Contient du temps uniquement. Disponible pour le remplissage d'emplacements uniquement. |
actions.type.Number |
Le type Number correspond aux nombres ordinaux et cardinaux. |
Utilisation de DateTime
, Date
et Time
Ces types se comportent différemment selon l'emplacement où vous utilisez le type et l'entrée utilisateur correspondant.
Utiliser avec des intents
L'annotation d'expressions d'entraînement dans les intents n'est compatible qu'avec le type DateTime
. Il n'est pas nécessaire que l'entrée utilisateur corresponde à une valeur DateTime
entière. Par exemple, si un utilisateur fournit uniquement l'année, le paramètre de session peut se présenter comme suit:
"date_time": {
"year": 2019
}
Utiliser avec le remplissage d'emplacements
Le remplissage d'emplacements est compatible avec DateTime
, Date
et Time
.
- Si le type d'emplacement est
DateTime
, l'Assistant invite l'utilisateur jusqu'à ce qu'une valeur complète soit fournie. - Si le type d'emplacement est
Date
, l'Assistant invite l'utilisateur jusqu'à ce qu'une valeur de date soit fournie. Lors de la collecte, le paramètre que vous recevez est un élémentDateTime
complet dont l'heure est définie sur 00:00. - Si le type d'emplacement est
Time
, l'Assistant invite l'utilisateur jusqu'à ce qu'une valeur temporelle soit fournie. Lors de sa collecte, le paramètre que vous recevez est un objetDateTime
complet dont la date est définie sur la date du jour.
Par exemple, supposons qu'un utilisateur situé à Los Angeles ait dit "Hey Google, crée un rappel pour le 15 janvier 2024 à 20h". Lorsque DateTime
est extrait lors d'un processus de remplissage d'emplacements, le paramètre complet peut se présenter comme suit:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Utiliser avec des conditions
Les conditions n'autorisent que l'utilisation de nombres et de chaînes. Par conséquent, l'utilisation du paramètre DateTime
de niveau supérieur entraîne un résultat False pour la condition. Exemple :
$session.params.my_dateTime.day > 5
est une condition valide, car la valeurday
est un nombre accepté.$session.params.my_dateTime > "01-01-2010"
est une condition non valide, car l'objet "DateTime" de premier niveau n'est pas un nombre ni une chaîne.
Remplacements de type d'exécution
Les remplacements de type d'environnement d'exécution vous permettent de créer ou de modifier dynamiquement des types dans le traitement. Cette fonctionnalité vous permet d'ajouter ou de remplacer une spécification d'un type lors de l'exécution. Par exemple, vous pouvez vérifier une source de données backend pour charger des éléments de menu quotidiens dans un type de votre traitement.
Pour en savoir plus sur la création de remplacements de type, consultez le guide sur les webhooks.