Types

Les types vous permettent de configurer le moteur NLU (Natural Language Understanding, compréhension du langage naturel) de l'Assistant pour extraire des données structurées d'une entrée utilisateur. Vous pouvez utiliser des types dans les situations suivantes:

  • Dans les intents, vous pouvez annoter des phrases d'entraînement avec des types pour créer des emplacements. Lorsque les utilisateurs prononcent un élément correspondant à un emplacement, le moteur NLU l'extrait en tant que paramètre saisi 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 l'utilisateur doit fournir avant de pouvoir passer à la transition ou sortir de la scène.

  • Au cours de l'étape conditions d'une scène, vous pouvez baser votre logique sur la présence ou non d'une valeur spécifique définie dans un type pour un paramètre.

Types personnalisés

Les types personnalisés vous permettent de créer votre propre spécification de type pour indiquer au NLU 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 à une seule clé. Il s'agit d'une 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 la correspondance partielle : cette fonctionnalité permet de mettre en correspondance les entrées contenant plusieurs mots, même lorsque les 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'entrée et d'entraînement d'intent environnantes, tels que des éléments susceptibles d'ê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'expression régulière basés sur la norme RE2 de Google.
  • Texte au format libre permet au type de correspondre à tout ce qu'un utilisateur dit. L'annotation d'un intent avec ce type vous permet d'utiliser toutes les entrées en tant que paramètre que vous pouvez diriger vers votre propre NLU.

Types de systèmes

Les types de système vous permettent d'annoter et d'extraire des données connues à partir d'une entrée utilisateur à l'aide des données et des 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 d'emplacements et l'annotation d'expressions d'entraînement.
actions.type.Date Ne contient que la date. Disponible uniquement pour le remplissage de cases.
actions.type.Time Ne contient que l'heure. Disponible uniquement pour le remplissage de cases.
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'endroit où vous les utilisez et l'entrée utilisateur qui correspond au type.

Utiliser avec des intents

L'annotation de phrases d'entraînement dans les intents n'est compatible qu'avec le type DateTime. L'entrée utilisateur ne doit pas nécessairement correspondre à une valeur DateTime entière. 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 le remplissage de cases

Le remplissage d'emplacements prend en charge 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. Une fois collecté, le paramètre que vous recevez est un DateTime complet avec l'heure définie sur 00:00.
  • Si le type d'emplacement est Time, l'Assistant invite l'utilisateur jusqu'à ce qu'une valeur de temps soit fournie. Une fois collecté, le paramètre que vous recevez est un objet DateTime complet avec la date définie sur la date actuelle.

Par exemple, supposons qu'un utilisateur situé à Los Angeles dit : "Hey Google, crée un rappel pour le 15 janvier 2024 à 20h". Lorsque DateTime est extrait dans le cadre 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 premier niveau génère un résultat False pour la condition. Exemple :

  • $session.params.my_dateTime.day > 5 est une condition valide, car la valeur day est un nombre et est acceptée.
  • $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 des types de manière dynamique dans le traitement. Cette fonctionnalité vous permet d'ajouter ou de remplacer une spécification de type au moment 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.

Consultez le guide sur les webhooks pour en savoir plus sur la création de remplacements de type.