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 :
- Mappage d'entité
- Entité de liste
- Entité composite (type spécial d'entité de liste)
- Entité d'expression régulière
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 :
- Ouvrez la console Dialogflow CX.
- Choisissez votre projet Google Cloud.
- Sélectionnez votre agent.
- Sélectionnez l'onglet Gérer.
- Cliquez sur Entity Types (Types d'entités).
- 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 un seul 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
surKIND_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
surKIND_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
surKIND_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
surAUTO_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
surtrue
.
Masquer dans le journal
Si vous activez le masquage des entités, toutes les valeurs de paramètres extraits 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.