Options des entités

Plusieurs options d'entité permettent de modifier le comportement de la correspondance des entités et de l'extraction de données. Ces options sont préconfigurées pour les entités système. Vous ne pouvez donc pas les modifier pour ces entités. Toutefois, il est possible de les modifier pour vos entités personnalisées. Vous pouvez créer différents types d'entités, en fonction des options sélectionnées :

Il existe d'autres options qui ne déterminent pas le type d'entité, mais qui affectent le comportement de la mise en correspondance des entités :

Ce document décrit chacune de ces options.

Où trouver ces données

La méthode la plus courante pour créer un agent consiste à utiliser la console Dialogflow CX (consulter la documentation, ouvrir la console). Les instructions ci-dessous concernent l'utilisation de la console. Pour accéder aux données d'options d'entité, procédez comme suit :

  1. Ouvrez la console Dialogflow CX.
  2. Choisissez votre projet Google Cloud.
  3. Sélectionnez votre agent.
  4. Sélectionnez l'onglet Gérer.
  5. Cliquez sur Entity Types (Types d'entités).
  6. Consultez les options suivantes pour toutes les entités existantes (certaines d'entre elles peuvent seulement être visibles une fois que vous avez développé les options avancées) :
    • Entités uniquement (aucun synonyme)
    • Entités d'expression régulière
    • Ajouter automatiquement des entités
    • Correspondance partielle
    • Masquer dans le journal
    • Exclusions d'entités

Si vous créez un agent à l'aide de l'API au lieu de la console, reportez-vous au type EntityType. Les champs portent le même nom dans l'API et dans la console. Le cas échéant, les différences notables entre la console et l'API sont signalées dans les instructions ci-dessous.

Sélectionnez un protocole et une version pour la référence EntityType :

Protocole V3 V3beta1
REST Ressource EntityType Ressource EntityType
RPC Interface EntityType Interface EntityType
C++ EntityTypesClient Non disponible
C# EntityTypesClient Non disponible
Go EntityTypesClient Non disponible
Java EntityTypesClient EntityTypesClient
Node.js EntityTypesClient EntityTypesClient
PHP Non disponible Non disponible
Python EntityTypesClient EntityTypesClient
Ruby Non disponible Non disponible

Mappage d'entité

Les mappages d'entité fournissent un mappage de valeurs de référence à des synonymes pour chaque valeur de référence. Chaque entrée de mappage d'entité contient une seule valeur de référence et une liste de synonymes. Vous pouvez également définir un modèle DTMF pour chaque entité.

Par exemple, chacune des lignes suivantes correspond à des entrées d'entité pour un type d'entité size:

Entité Synonymes Modèle DTMF
S S, small, tiny, little
M M, medium, average
L L, large, huge, big

Notez que la valeur de référence est incluse dans la liste des synonymes pour chaque entrée d'entité ci-dessus. Pour qu'une valeur de référence soit mise en correspondance, elle doit être incluse en tant que synonyme. Lorsque vous saisissez une valeur de référence dans la console, celle-ci est automatiquement ajoutée en tant que synonyme.

Si l'un des synonymes est mis en correspondance avec une partie de l'entrée d'utilisateur final, la valeur de référence associée est extraite pour la correspondance et utilisée pour résoudre la valeur de paramètre associée.

La valeur de référence peut être omise de la liste des synonymes. Cela signifie simplement qu'elle n'est pas mise en correspondance avec une partie de l'entrée d'utilisateur final, mais utilisée comme valeur extraite lorsque l'un de ses synonymes est mis en correspondance. Cette omission est conseillée lorsque vous utilisez des chaînes spéciales pour des valeurs de référence qui ne sont pas saisies ou prononcées par les utilisateurs finaux.

De nombreuses entités système constituent des mappages d'entité. Par exemple, l'entité système @sys.date met en correspondance des données de date courantes telles que "1er janvier 2015" ou "Le 1er janvier 2015". Ces deux entrées sont mises en correspondance avec une valeur de référence au format ISO-8601 : "2015-01-01T12:00:00-03:00".

Pour créer un mappage d'entité, procédez comme suit :

  • À l'aide de la console, décochez l'option Entités d'expression régulière, puis décochez l'option Entités uniquement.
  • À l'aide de l'API, définissez le champ EntityType.kind sur KIND_MAP.

Entité de liste

Les entités de liste fournissent une liste d'entrées d'entités à valeur unique. Elles ne comportent pas de valeurs de référence ni de synonymes. Par exemple, chacune des lignes suivantes correspond à des entrées d'entité pour un type d'entité material :

Valeur
matière
laine
métal

Si une valeur est mise en correspondance avec une partie d'entrée d'utilisateur final, elle est extraite pour la correspondance et utilisée pour résoudre la valeur de paramètre associée.

De nombreuses entités système sont des entités de liste. Par exemple, l'entité système @sys.color correspond à des couleurs courantes, telles que "rouge" ou "bleu". Lorsqu'une couleur est mise en correspondance, la valeur extraite ne correspond à aucune valeur de référence. Par exemple, les nuances de rouge, telles que "rouge vif" ou "rouge foncé" ", ne sont pas mappées à "rouge" et sont extraites comme leurs valeurs initiales "rouge vif" "et" "rouge foncé".

Pour créer une entité de liste, procédez comme suit :

  • À l'aide de la console, décochez l'option Entités d'expression régulière, puis cochez l'option Entités uniquement.
  • À l'aide de l'API, définissez le champ EntityType.kind sur KIND_LIST.

Entité composite

Une entité composite est un type spécial d'entité de liste. Les entrées d'entité pour les entités de liste contiennent généralement des mots ou des phrases simples, mais elles peuvent également contenir d'autres types d'entités. Lorsqu'un type d'entité est référencé dans un autre type d'entité, la référence est dénommée alias. Lorsqu'une entité de liste contient des alias pour d'autres types d'entités, elle est dénommée "entité composite".

Lorsque vous créez un alias, vous indiquez le nom du type d'entité référencé et le nom de propriété de votre choix. Lorsqu'une entité composite est mise en correspondance au moment de l'exécution, la valeur extraite est renvoyée en tant qu'objet JSON, avec des noms de propriété d'alias utilisés comme noms de propriété JSON. Le format de saisie d'un alias est le suivant :

@entity-name:property-name

Par exemple, vous pouvez créer un type d'entité place qui correspond à une ville ou à un État avec les entrées d'entités suivantes :

Valeur
@sys.geo-city:city
@sys.geo-state:state

Si une entrée d'utilisateur final contient une partie "Nashville", la valeur place du type d'entité est mise en correspondance. La valeur extraite est renvoyée en tant que {"city": "Nashville"}.

Vous pouvez également utiliser plusieurs alias d'entités dans une entrée d'entité. Prenons l'exemple du type d'entité personnalisée move suivant qui contient des alias pour un type d'entité direction et le type d'entité système @sys.number :

Type de mappage d'entité de direction personnalisée :

Valeur de référence Synonymes
Avant vers l'avant, en avant
retour retour, arrière, en arrière

Déplacer le type d'entité de liste personnalisée :

Valeur
@sys.number:steps steps @direction:direction

Si l'entité move est mise en correspondance avec une entrée d'utilisateur final qui contient "cinq pas en arrière", l'entité move est mise en correspondance. La valeur extraite est renvoyée en tant que {"steps": 5, "direction": "back"}.

De nombreuses entités système sont des entités composites. Par exemple, l'entité système @sys.unit-currency permet de mettre en correspondance des sommes d'argent avec un nom de devise. Elle correspond aux entrées d'utilisateur final telles que "50 euros" "ou" "vingt dollars et cinq cents". La valeur extraite est renvoyée en tant qu'objet JSON tel que {"amount": 50, "currency": "EUR"}

Entité d'expression régulière

Les entités d'expression régulière vous permettent de fournir des expressions régulières pour la mise en correspondance. Pour plus d'informations, consultez la section Entités d'expression régulière.

Pour créer une entité d'expression régulière, procédez comme suit :

  • À l'aide de la console, cochez l'option Entités d'expression régulière.
  • À l'aide de l'API, définissez le champ EntityType.kind sur KIND_REGEXP.

Expansion automatique (ajouter automatiquement des entités)

Vous pouvez activer l'expansion automatique pour un type d'entité personnalisée. Lorsque cette option est activée, votre agent peut reconnaître les valeurs qui n'ont pas été fournies explicitement. Prenons l'exemple d'un type d'entité de liste de courses :

Valeur
pain
beurre
lait
pomme
glace

Si une entrée d'utilisateur final est "Je dois acheter des carottes", les carottes seront mises en correspondance pour ce type d'entité, même si elles ne sont pas incluses. L'agent reconnaît que "carottes" est contextuellement analogue aux autres valeurs.

Il est conseillé de suivre les bonnes pratiques d'expansion automatique :

  • L'activation de l'expansion automatique ne garantit pas l'extraction de l'entité. Pour les listes finies, il est préférable de fournir des listes complètes plutôt que de fournir des listes partielles et d'activer l'expansion automatique.
  • Si vous activez l'expansion automatique dans plusieurs entités, des conflits et des résultats de classification incorrects risquent de se produire.
  • Pour garantir une meilleure qualité d'extraction des paramètres, il est essentiel de fournir des données d'entraînement variées couvrant tous les cas d'utilisation dans lesquels une entité donnée peut être trouvée dans le trafic attendu de l'agent. Si les exemples sont insuffisants, l'expansion automatique des entités risque de ne pas fonctionner comme prévu.

Pour activer l'expansion automatique, procédez comme suit :

  • À l'aide de la console, cochez l'option Ajouter automatiquement des entités.
  • À l'aide de l'API, définissez le champ EntityType.autoExpansionMode sur AUTO_EXPANSION_MODE_DEFAULT.

Correspondance partielle

Vous pouvez activer la correspondance partielle pour une entité personnalisée. Si la correspondance partielle est activée, l'ordre des mots au sein d'une valeur ou d'un synonyme n'a pas d'importance. Pour plus d'informations, consultez la section Correspondance partielle.

Pour activer la correspondance partielle, procédez comme suit :

  • À l'aide de la console, cochez l'option Correspondance partielle.
  • À l'aide de l'API, définissez le champ EntityType.enableFuzzyExtraction sur true.

Masquer dans le journal

Si vous activez la masquage des entités, toutes les valeurs de paramètres extraites au moment de l'exécution pour le type d'entité seront masquées lors de la journalisation.

Vous pouvez également masquer des paramètres individuels.

Exclusions d'entités

Vous pouvez ajouter des exclusions d'entités, qui sont des expressions qui ne doivent pas être mises en correspondance. Par exemple, si vous avez un type d'entité de taille avec l'entité géant (un adjectif), vous pouvez ajouter géants (un nom) en tant qu'exclusion.