Expresiones para valores de variables
Puede utilizar expresiones FreeMarker para valores de variables en los flujos de diálogo.
Expresiones útiles
Consejo:
La finalización automática le guiará a través de la escritura de estas (y otras) expresiones FreeMarker de Apache.Operación | Expresión Freemarker | Tipo de Resultado |
---|---|---|
Obtener nombre de flujo principal | ${system.parentFlow} |
Cadena |
Obtener carga útil de evento | ${skill.system.event.value.EVENT_NAME} |
Objeto JSON |
Acceder a resultado de NLP | ${skill.system.nlpresult.value} |
Objeto JSON |
Acceder a variable de ámbito de aptitud | ${skill.VAR_NAME} |
|
Variable de ámbito de flujo de acceso | ${VAR_NAME} |
|
Parámetro de entrada de flujo de acceso | ${INPUT_PARAM_NAME} |
|
Acceder a variable de ámbito de usuario | ${user.VAR_NAME} |
|
Acceder a variable de ámbito de perfil | ${profile.VAR_NAME} |
|
Obtener respuesta de intención de respuesta | ${skill.system.event.value.intent.answer} Nota: también puede utilizar |
|
Obtener nombre de intención |
|
Cadena |
Obtener mensaje de error | ${skill.system.event.value.dialogError.errorMessage} |
Cadena |
Acceder a entrada de grupo de recursos | ${skill.system.rb.RB_ENTRY_NAME} |
Grupo de Recursos |
Acceder al valor de un parámetro personalizado | ${skill.system.config.CUSTOM_PARAMETER_NAME} |
Cadena |
Para obtener más información sobre FreeMarker en los componentes, consulte Apache FreeMarker Template Language Syntax.
Sintaxis de lenguaje de plantilla de Apache FreeMarker
${...}
. Puede incorporar FTL en las definiciones de propiedad de varios componentes del flujo de diálogo.
También puede definir las expresiones mediante la directiva if (
<#if>...</#if>
).
Para ello... | ... Realice esta acción |
---|---|
Leer valores de variables. | Agregue la propiedad value utilizando la notación de puntos:
Por ejemplo:
|
Leer valores de variables definidas por entidades complejas. | Use la notación de puntos para agregar una propiedad adicional:
Por ejemplo:
Si utiliza una expresión como ${MyMoney} en un componente System.Output de una aptitud con un flujo de diálogo basado en YAML, verá todas las propiedades del objeto JSON de moneda de referencia.
|
Devolver el juego de valores definidos para una entidad de lista de valores. | Utilice las variables incorporadas type y enumValues en la sintaxis siguiente:
|
Utilizar las funciones incorporadas para cadenas, matrices (secuencias), números y fechas. Consulte Referencia de Apache FreeMarker. | Añada tras la propiedad value un signo de interrogación (? ) y el nombre de la operación:
|
Concatenación de expresiones de FTL. | Encadene las operaciones utilizando un signo de interrogación (? ):
|
Referencia a valores de entidad en aptitudes multilingües
Cuando tiene aptitudes multilingües, debe asegurarse de que el componente que está resolviendo sus entidades tenga Usar coincidencias de entidad completas definido en true
. Esto permite escribir los siguientes tipos de expresiones:
- Expresiones que hacen referencia al valor de entidad en el idioma de la conversación. Puede utilizar estas expresiones para realizar acciones tales como mostrar los valores de entidad a los usuarios en botones, mensajes de confirmación, etc.
Para estas expresiones, agregue
value
para obtener el valor en el idioma de la conversación. Por ejemplo, si ha definido una variable de flujo de diálogo,pizza
, y desea hacer referencia al valor de entidad PizzaSize en una petición de datos, debería utilizar lo siguiente en la expresión:pizza.value.PizzaSize.value
(en lugar de solopizza.value.PizzaSize
). - Expresiones que hagan referencia al valor de la entidad en el idioma principal. El valor de idioma principal actúa como tipo de clave para los valores correspondientes en todos los idiomas de la entidad. Puede hacer referencia a este valor con fines lógicos de negocio sin tener que preocuparse del idioma en el que se encuentra la conversación.
Para estas expresiones, agregue
primaryLanguageValue
(por ejemplo,pizza.value.PizzaSize.primaryLanguageValue
).