Expressões para Valores Variáveis
Você pode usar expressões FreeMarker para valores de variáveis em seus fluxos de caixas de diálogo.
Expressões úteis
Dica:
O preenchimento automático orienta você na gravação dessas (e de outras) expressões do Apache FreeMarker.Operação | Expressão Freemarker | Tipo de Resultado |
---|---|---|
Obter nome do fluxo pai | ${system.parentFlow} |
String |
Obter payload do evento | ${skill.system.event.value.EVENT_NAME} |
Objeto JSON |
Acessar resultado de NLP | ${skill.system.nlpresult.value} |
Objeto JSON |
Acessar variável de escopo de habilidade | ${skill.VAR_NAME} |
|
Variável de escopo do fluxo de acesso | ${VAR_NAME} |
|
Parâmetro de entrada do fluxo de acesso | ${INPUT_PARAM_NAME} |
|
Acessar variável de escopo do usuário | ${user.VAR_NAME} |
|
Variável de escopo do perfil de acesso | ${profile.VAR_NAME} |
|
Obter resposta da Intenção de Resposta | ${skill.system.event.value.intent.answer} Observação: Você também pode usar |
|
Obter nome da intenção |
|
String |
Obter mensagem de erro | ${skill.system.event.value.dialogError.errorMessage} |
String |
Entrada do pacote de Recursos de Acesso | ${skill.system.rb.RB_ENTRY_NAME} |
Pacote de Recursos |
Acessar o valor de um parâmetro personalizado | ${skill.system.config.CUSTOM_PARAMETER_NAME} |
String |
Para obter mais informações sobre FreeMarker em seus componentes, consulte Sintaxe de Linguagem de Modelo FreeMarker do Apache.
Sintaxe de Linguagem de Modelo do FreeMarker Apache
${...}
. Você pode incorporar a linguagem FTL nas definições de propriedades de vários componentes do fluxo de caixas de diálogo.
Você também pode definir as expressões usando a diretiva if (
<#if>...</#if>
).
Para isso... | ...Faça isto |
---|---|
Leia os valores das variáveis. | Adicione a propriedade value usando notação de ponto:
Por exemplo :
|
Leia os valores das variáveis definidas por entidades complexas. | Use a notação de ponto para adicionar uma propriedade:
Por exemplo :
Se você usar uma expressão como ${MyMoney} em um componente System.Output em uma habilidade com um fluxo de caixas de diálogo baseado em YAML, verá todas as propriedades do objeto JSON de moeda referenciado.
|
Retorne o conjunto de valores definidos para uma entidade da lista de valores. | Use as variáveis incorporadas type e enumValues na seguinte sintaxe:
|
Use built-ins para strings, arrays (sequências), números e datas. Consulte Referência do Apache FreeMarker. | Siga a propriedade value com um ponto de interrogação (? ) e o nome da operação:
|
Concatene as expressões FTL. | Una as operações usando um ponto de interrogação (? ):
|
Referenciando Valores de Entidade em Habilidades de Vários Idiomas
Quando você tiver habilidades de vários idiomas, certifique-se de que o componente que está resolvendo suas entidades tenha Usar Correspondências Completas de Entidade definido como true
. Isso permite escrever os seguintes tipos de expressões:
- Expressões que fazem referência ao valor da entidade no idioma da conversa. Você pode usar essas expressões para, por exemplo, exibir os valores das entidades para os usuários em botões, mensagens de confirmação etc.
Para essas expressões, anexe
value
para obter o valor no idioma da conversa. Por exemplo, se você tiver definido uma variável de fluxo de caixas de diálogo,pizza
, e quiser fazer referência ao valor de entidade PizzaSize em um prompt, use o seguinte na expressãopizza.value.PizzaSize.value
(em vez de apenaspizza.value.PizzaSize
). - Expressões que fazem referência ao valor da entidade no idioma principal. O valor do idioma principal serve como um tipo de chave para os valores correspondentes em todos os idiomas da entidade. Você pode fazer referência a esse valor para fins de lógica de negócios sem precisar se preocupar em qual idioma a conversa está.
Para essas expressões, anexe
primaryLanguageValue
(por exemplo,pizza.value.PizzaSize.primaryLanguageValue
).