Expressions pour les valeurs de variable
Vous pouvez utiliser des expressions FreeMarker pour les valeurs des variables dans vos flux de dialogue.
Expressions pratiques
Conseil :
La saisie semi-automatique vous guide tout au long de l'écriture de ces (et d'autres) expressions Apache FreeMarker.Opération | Expression Freemarker | Type de résultat |
---|---|---|
Obtenir le nom du flux parent | ${system.parentFlow} |
Chaîne |
Obtenir la charge utile d'événement | ${skill.system.event.value.EVENT_NAME} |
Objet JSON |
Accéder au résultat du traitement du langage naturel | ${skill.system.nlpresult.value} |
Objet JSON |
Accéder à une variable de portée de compétence | ${skill.VAR_NAME} |
|
Variable de portée de flux d'accès | ${VAR_NAME} |
|
Paramètre d'entrée du flux d'accès | ${INPUT_PARAM_NAME} |
|
Accéder à la variable de portée utilisateur | ${user.VAR_NAME} |
|
Variable d'étendue de profil d'accès | ${profile.VAR_NAME} |
|
Obtenir la réponse d'intention de réponse | ${skill.system.event.value.intent.answer} Remarque : vous pouvez également utiliser |
|
Obtenir le nom de l'intention |
|
Chaîne |
Obtenir le message d'erreur | ${skill.system.event.value.dialogError.errorMessage} |
Chaîne |
Entrée de groupe de ressources d'accès | ${skill.system.rb.RB_ENTRY_NAME} |
Groupe de ressources |
Accéder à la valeur d'un paramètre personnalisé | ${skill.system.config.CUSTOM_PARAMETER_NAME} |
Chaîne |
Pour plus d'informations sur FreeMarker dans vos composants, reportez-vous à Syntaxe de langage de modèle Apache FreeMarker.
Syntaxe de langage de modèle Apache FreeMarker
${...}
. Vous pouvez intégrer FTL dans les définitions de propriété de divers composants de flux de dialogue.
Vous pouvez également définir les expressions à l'aide de la directive if (
<#if>...</#if>
).
Procédez comme suit... | ... Procédure |
---|---|
Lire les valeurs des variables | Ajoutez la propriété value à l'aide de la syntaxe par points suivante :
Par exemple :
|
Lire des valeurs des variables définies par des entités complexes | Utilisez la syntaxe par points suivante pour ajouter une propriété supplémentaire :
Par exemple :
Si vous utilisez une expression telle que ${MyMoney} dans un composant System.Output d'une brique avec un flux de dialogue basé sur YAML, vous verrez toutes les propriétés de l'objet JSON de devise référencé.
|
Renvoyer l'ensemble de valeurs définies pour une entité de liste de valeurs | Utilisez les variables intégrées type et enumValues dans la syntaxe suivante :
|
Utiliser des variables intégrées pour les chaînes, les tableaux (séquences), les nombres et les dates Reportez-vous à Référence Apache FreeMarker. | A la fin de la propriété value , ajoutez un point d'interrogation (? ) ainsi que le nom de l'opération :
|
Concaténer des expressions FTL. | Regroupez les opérations en une chaîne à l'aide d'un point d'interrogation (? ) :
|
Référencement des valeurs d'entité dans les briques multilingues
Lorsque vous disposez de briques multilingues, vous devez vous assurer que l'option Utiliser les correspondances d'entité complètes est définie sur true
pour le composant chargé de résoudre vos entités. Vous pouvez ainsi écrire les types d'expression suivants :
- Expressions qui font référence à la valeur d'entité dans la langue de la conversation. Vous pouvez utiliser ces expressions, par exemple, pour afficher les valeurs d'entité aux utilisateurs sous forme de boutons, de messages de confirmation, etc.
Pour de telles expressions, ajoutez
value
pour obtenir la valeur dans la langue de la conversation. Par exemple, si vous avez défini la variable de flux de dialoguepizza
et que vous voulez référencer la valeur d'entité PizzaSize dans une invite, utilisezpizza.value.PizzaSize.value
(au lieu depizza.value.PizzaSize
) dans l'expression. - Expressions qui font référence à la valeur de l'entité dans la langue principale. La valeur de langue principale sert en quelque sorte de clé pour les valeurs correspondantes dans toutes les langues de l'entité. Vous pouvez référencer cette valeur à des fins de logique métier sans avoir à vous soucier de la langue de la conversation.
Pour ces expressions, ajoutez
primaryLanguageValue
(par exemple,pizza.value.PizzaSize.primaryLanguageValue
).