Introducción al diseñador de flujo visual
A continuación, se muestra un conjunto rápido de pasos para empezar a utilizar Visual Flow Designer.
Creación de la aptitud de flujo de Visual Designer
- Haga clic en + Nueva aptitud en la página de llegada de aptitudes.
- Seleccione Visual como modo de diálogo.
Nota
La versión de la plataforma debe estar definida en 22.04 o posterior para que esta opción esté disponible. - Creación de intenciones y entidades. Tendrá que tenerlos en su lugar antes de crear variables y flujos de intención.
- Haga clic en Flujos
en la Barra de navegación izquierda. El editor se abre en el flujo principal, donde puede definir y gestionar la configuración de toda la aptitud. Entre otras cosas, utilice la página Variables de aptitud para agregar las variables que se comparten entre flujos y la página Eventos para crear y gestionar las asignaciones de flujos transaccionales a intenciones y la asignación de flujos de utilidad a eventos incorporados que gestionan intenciones no resueltas, errores de diálogo y presentación de intenciones de respuesta.
Asignar eventos
Puede agregar, editar o suprimir asignaciones desde la página Evento del flujo principal. Puede utilizar el cuadro de diálogo de asignación para varios tipos de eventos a flujos existentes.
Descripción de la ilustración df-2-0-event-mapping-dialog.png
Para acceder a este cuadro de diálogo, haga clic en .
Descripción de la ilustración df-2-0-event-mappings-page.png
Creación de un flujo de eventos de intención
Aquí puede crear flujos para asignarlos a intenciones específicas de la aptitud. Los flujos de intenciones se suelen asignar a intenciones normales, aunque también puede crearlos para intenciones de respuesta.
Para crear un flujo de eventos de intención:
- Cree la intención correspondiente y las entidades a las que se hará referencia en el flujo.
Por ejemplo, si está creando una aptitud para pizza, puede crear los siguientes artefactos:
- Una intención orderPizza.
- Una entidad PizzaTopping de lista de valores.
- Entrene la aptitud.
- Introducción al flujo:
- Haga clic en Flujos en la barra de navegación izquierda y, a continuación, haga clic en + Agregar flujo.
- Introduzca un nombre de flujo y, a continuación, seleccione el nombre de la intención que está asignada a este flujo. A continuación, haga clic en Crear.
Nota
Solo puede elegir entre el flujo disponible.
- Cree las variables que se utilizan en el flujo:
- Abra el separador Configuración. Haga clic en + Agregar variable.
- Seleccione el tipo de variable. Si la variable hace referencia a una entidad, complete el cuadro de diálogo asignándole un nombre a la variable para la entidad seleccionada. Haga clic en Aplicar.Nota
En un flujo, una variable y un parámetro de salida pueden compartir el mismo nombre. Sin embargo, las variables y los parámetros de salida no pueden tener los mismos nombres que los parámetros de entrada.
- Cree el flujo:
- Abra el separador Flujo.
- Haga clic en el menú
en el inicio del flujo y, a continuación, haga clic en Agregar estado de inicio para abrir el cuadro de diálogo Agregar estado.
- Seleccione un estado del selector de componentes y, a continuación, haga clic en Insertar.
- Abra el inspector de propiedades del estado para configurar el componente.
- Seleccione Pregunta y, a continuación, haga clic en Insertar.
- Abra el separador Componente en la ventana de propiedades del estado de la pregunta.
- Agregue una pregunta ("¿Qué pizza desea?", por ejemplo). A continuación, seleccione la variable de flujo.
Consejo:
Utilice grupos de recursos para todo el texto orientado al usuario de la aptitud. - Agregue otro estado después de la pregunta haciendo clic en el menú.
- Seleccione Enviar mensaje y, a continuación, haga clic en Insertar.
- En la ventana de propiedades del estado del mensaje de envío, introduzca un mensaje de confirmación con una expresión FreeMarker que acceda a la variable de flujo mediante la sintaxis
${varName.value.value}
. Por ejemplo:
Si hace referencia a una entidad de bolsa compuesta de nivel de flujo, utilice la sintaxisYour ${PizzaType.value.value} pizza is on the way.
${cbVarName.value.itemName.<attribute>}
.Después de agregar estados al flujo, puede reasignar el estado de inicio haciendo clic en el menú
y, a continuación, seleccionando Make start state.
Descripción de la ilustración df-2-0-make-start-state.png - Abra el separador Transiciones del inspector de propiedades del componente de salida. Tenga en cuenta que Finalizar flujo (implícito) está seleccionado como transición. Puesto que este flujo no tiene parámetros de salida necesarios, la transición al flujo de finalización implícito será suficiente. Sin embargo, si este flujo tuviera uno más parámetros de salida necesarios, el estado de salida tendría que pasar a un estado de flujo de finalización real (insertado haciendo clic en Control de flujo > Flujo de finalización en el cuadro de diálogo Agregar estado) que especifique los parámetros de salida del flujo.
Valores de variables de referencia en expresiones FreeMarker
Utilice ${varName.value.value}
para hacer referencia a una entidad de lista de valores. Puesto que las entidades se resuelven como objetos JSON, el primer .value
devuelve el objeto JSON y el segundo .value
devuelve el valor de una propiedad en ese objeto JSON. Para devolver el valor de la entidad en el idioma principal de la aptitud, utilice ${varName.value.primaryLanguageValue}
.
${cbVarName.value.itemName.value}
para elementos de lista de valores y {cbVarName.value.itemName}
para elementos de lista que no sean de valores.
- Cuando un elemento es una lista de valores, utilice una propiedad de valor:
${cbVarName.value.itemName.value}
o${cbVarName.value.itemName.primaryLanguageValue}
. - Para los elementos de lista que no son de valor, no accede al elemento con una propiedad de valor (no
.value
ni.primaryLanguageValue
). Por ejemplo, si hace referencia a una entidad DATE cuyo nombre de elemento esdate
en la bolsa compuesta, utilizará${cbVarName.value.date}
. Para un elemento de entidad NUMBER (number
), debe utilizar${cbVarName.value.number}
.
skill.
Por ejemplo, la siguiente expresión hace referencia a un elemento (Type
) en una entidad de bolsa compuesta (Order
) que se comparte entre flujos:${skill.Order.value.Type.value}
skill
no es necesario en expresiones para variables de ámbito de flujo:${Order.value.Type.value}
Consejo:
La terminación automática hace que la escritura de expresiones FreeMarker de Apache sea menos propensa a errores.Creación de un flujo para eventos incorporados
Es probable que desee tener flujos de utilidad para eventos incorporados, como el manejo de intenciones no resueltas, errores de diálogo y la presentación de intenciones de respuesta. Puede asignar estos flujos a eventos incorporados en el flujo principal. En general, los flujos asignados a eventos incorporados se llaman cuando no hay ningún flujo de nivel de intención activo, como cuando se inicia la aptitud o cuando un flujo de intención termina con un estado de flujo de finalización.
Por ejemplo, para crear un flujo genérico que maneje todas las intenciones de respuesta:
- Cree o importe una intención de respuesta y, a continuación, entrene la aptitud.
- Haga clic en Flujos y, a continuación, en + Agregar flujo.
- Introduzca un nombre de flujo para el flujo de intención de respuesta y, a continuación, haga clic en Crear.
- Haga clic en el menú
en el inicio del flujo y, a continuación, haga clic en Agregar estado de inicio para abrir el cuadro de diálogo Agregar estado.
- Agregue un estado de respuesta de intención de visualización seleccionando Mensajería de usuario > Mostrar mensajes de texto y multimedia > Mostrar respuesta de intención o introduciendo la respuesta de intención en el campo Buscar. A continuación, haga clic en Insertar.
Consejo:
Utilice el campo de búsqueda para localizar una plantilla de estado. - Haga clic en el estado de respuesta de intención de visualización para abrir el separador Componente del inspector de propiedades y, a continuación, haga clic en Editar elementos de respuesta.
- Actualice el mensaje de texto, incorporando la expresión FreeMarker de plantilla que accede al mensaje de intención de respuesta (
"${skill.system.event.value.intent.answer}"
). Por ejemplo:"Hello, ${profile.firstName?capitalize} ${profile.lastName?capitalize}. You were asking about ${skill.system.event.value.intent.intentName?lower_case}. Here's your answer: ${skill.system.event.value.intent.answer}."
Nota
- Haga clic en Aplicar.
- Haga clic en Flujo principal.
- Haga clic en
junto a Eventos incorporados.
- Complete el cuadro de diálogo Crear manejador de eventos incorporado:
- Seleccione Intención de respuesta (ubicada en Eventos de intención) en la lista desplegable Tipo de evento no tratado.
- Seleccione el flujo de intención de respuesta en el desplegable Flujo asignado.
- Seleccione Intención de respuesta (ubicada en Eventos de intención) en la lista desplegable Tipo de evento no tratado.
- Haga clic en Crear.
El flujo de eventos de error de cuadro de diálogo puede existir en los niveles de aptitud y flujo. El flujo de errores de cuadro de diálogo de nivel de aptitud, que se asigna al evento incorporado Error de cuadro de diálogo, actúa como reserva en ausencia de un flujo de manejo de errores asignado al evento Error de cuadro de diálogo de nivel de flujo. Si la aptitud no tiene ningún flujo de error de cuadro de diálogo, la aptitud muestra el mensaje de error por defecto (¡Vaya! Parece que hay un problema).
Mensajes de ejemplo para flujos de eventos incorporados
Evento incorporado | Sintaxis y ejemplos de expresión |
---|---|
Intención de respuesta | Utilice la siguiente sintaxis para flujos genéricos que manejan todas las intenciones de respuesta de la aptitud:
Por ejemplo: Hola, |
Error de diálogo | Utilice la siguiente sintaxis para los mensajes de error del cuadro de diálogo: Por ejemplo:Error al procesar la orden: |