Expressions pour les valeurs de variable

Vous pouvez utiliser des expressions FreeMarker pour les valeurs des variables dans les flux de dialogue.

Expressions pratiques

Voici quelques expressions courantes que vous pouvez utiliser dans vos flux.

Conseil :

La saisie semi-automatique vous guide tout au long de l'écriture de ces expressions (et d'autres) Apache FreeMarker.
Opération Expression Freemarker Type résultat
Obtenir le nom du flux parent ${system.parentFlow} Chaîne
Obtenir les données utiles de l'événement ${skill.system.event.value.EVENT_NAME} Objet JSON
Accéder au résultat du TLN ${skill.system.nlpresult.value} Objet JSON
Accéder à la variable de portée de compétence ${skill.VAR_NAME}  
Variable d'étendue de flux d'accès ${VAR_NAME}  
Paramètre d'entrée de flux d'accès ${INPUT_PARAM_NAME}  
Accéder à la variable de portée utilisateur ${user.VAR_NAME}  
Accéder à la variable de portée de profil ${profile.VAR_NAME}  
Obtenir la réponse à l'intention de la réponse ${skill.system.event.value.intent.answer}

Note : Vous pouvez également utiliser ${skill.system.event.value.answerIntent.answer}.

 
Obtenir le nom d'intention

${skill.system.event.value.intent.intentName}

Chaîne
Obtenir le message d'erreur ${skill.system.event.value.dialogError.errorMessage} Chaîne
Accéder à l'entrée d'ensemble de ressources ${skill.system.rb.RB_ENTRY_NAME} Ensemble 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, voir Syntaxe du langage de modèle Apache FreeMarker.

Syntaxe du langage Apache FTL

Vous pouvez utiliser Apache FreeMarker Template Language (FTL) pour accéder aux valeurs des variables, afficher ou masquer les éléments de réponse, rechercher des mots clés dans un message utilisateur, afficher une liste de valeurs ou afficher des tableaux qui sont triés selon un attribut de données spécifique. La syntaxe de base de ces expressions de valeur est ${...}. Vous pouvez inclure du code FTL dans les définitions de propriété de différents composants de flux de dialogue.
Note

Vous pouvez également définir les expressions à l'aide de la directive if (<#if>...</#if>).
Pour ce faire... ... Faire ceci
Lire les valeurs des variables. Ajoutez la propriété value à l'aide de la notation avec point :
${VAR_NAME.value}
Par exemple :
${MyEmail.value}
Lire des valeurs des variables définies par des entités complexes. Utilisez la notation avec point pour ajouter une propriété supplémentaire :
${VAR_NAME.value.property}
Par exemple :
${MyMoney.value.totalCurrency}
Si vous utilisez une expression comme ${MyMoney} dans un composant System.Output d'une compétence avec un flux de dialogue basé sur YAML, vous verrez toutes les propriétés de l'objet JSON de devise référencé.
Retourner le jeu des valeurs définies pour une entité de liste de valeurs. Utilisez la variable typeet enumValues intégrée dans la syntaxe suivante :
${VAR_NAME.type.enumValues}
Utilisez des éléments intégrés pour les chaînes, les tableaux (séquences), les nombres et les dates. Voir Informations de référence sur Apache FreeMarker. Ajoutez un point d'interrogation (?) et le nom de l'opération après la propriété value :
${VAR_NAME.value?ftl_function}
  • opérations de chaîne :
    ${VAR_NAME.value?lower_case}
  • opérations de tableau :
    ${VAR_NAME.value?size?number}
  • opérations de nombre :
    ${VAR_NAME.value?round}
  • opérations de date et d'heure :
    ${VAR_NAME.value.date?long?number_to_date?string.short}
Concaténer des expressions FTL. Reliez les opérations entre elles à l'aide d'un point d'interrogation (?) :
${VAR_NAME.value?ftl_function1?ftl_function2}

Valeurs d'entité de référence dans les compétences multilingues

Lorsque vous possédez des compétences multilingues, vous devez vous assurer que Use Full Entity Matches (Utiliser les correspondances d'entité complètes) est réglé à true dans le composant qui résout vos entités. Cela vous permet d'écrire les types d'expression suivantes :

  • Expressions qui référencent la valeur de l'entité dans la langue de la conversation. Vous pouvez utiliser ces expressions pour présenter les valeurs d'entité aux utilisateurs dans des boutons, des messages de confirmation, etc.

    Pour ces expressions, vous ajoutez value pour obtenir la valeur dans la langue de la conversation. Par exemple, si vous avez défini une variable de flux de dialogue, pizza, et souhaitez référencer la valeur de l'entité PizzaSize dans une invite, vous utiliseriez ce qui suit dans l'expression : pizza.value.PizzaSize.value (au lieu de simplement pizza.value.PizzaSize).

  • Expressions qui référencent la valeur de l'entité dans la langue principale. La valeur de la 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 dans la logique applicative sans avoir à vous soucier de la langue de la conversation.

    Pour ces expressions, vous ajoutez primaryLanguageValue (par exemple, pizza.value.PizzaSize.primaryLanguageValue).