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

Para crear una aptitud de flujo visual:
  1. Haga clic en + Nueva aptitud en la página de llegada de aptitudes.
  2. 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.
  3. Creación de intenciones y entidades. Tendrá que tenerlos en su lugar antes de crear variables y flujos de intención.
  4. Haga clic en Flujos Imagen del icono Flujos de diálogo en la barra de navegación izquierda. 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 df-2-0-event-mapping-dialog.png a continuación
Descripción de la ilustración df-2-0-event-mapping-dialog.png

Para acceder a este cuadro de diálogo, haga clic en Imagen del icono Agregar..
Descripción de df-2-0-event-mappings-page.png:
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:

  1. 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.
  2. Entrene la aptitud.
  3. 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.


  4. Cree las variables que se utilizan en el flujo:
    1. Abra el separador Configuración. Haga clic en + Agregar variable.
    2. 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.
  5. Cree el flujo:
    1. Abra el separador Flujo.
    2. Haga clic en el menú El icono de menú Add State (Agregar estado). 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.
      Opción Add Start State (Agregar estado de inicio).

    3. Seleccione un estado del selector de componentes y, a continuación, haga clic en Insertar.
    4. Abra el inspector de propiedades del estado para configurar el componente.
Usando la habilidad de pizza como ejemplo, comenzaría el flujo de la siguiente manera:
  1. Seleccione Pregunta y, a continuación, haga clic en Insertar.
  2. Abra el separador Componente en la ventana de propiedades del estado de la pregunta.
  3. 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.


  4. Agregue otro estado después de la pregunta haciendo clic en el menú.Imagen del icono de menú.
  5. Seleccione Enviar mensaje y, a continuación, haga clic en Insertar.
  6. 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:
    Your ${PizzaType.value.value} pizza is on the way.
    Si hace referencia a una entidad de bolsa compuesta de nivel de flujo, utilice la sintaxis ${cbVarName.value.itemName.<attribute>}.

    Después de agregar estados al flujo, puede reasignar el estado de inicio haciendo clic en el menú Imagen del icono de menú. y, a continuación, seleccionando Make start state.
    Descripción de df-2-0-make-start-state.png a continuación
    Descripción de la ilustración df-2-0-make-start-state.png

  7. 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}.

Para entidades de bolsa compuesta, utilice ${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 es date en la bolsa compuesta, utilizará ${cbVarName.value.date}. Para un elemento de entidad NUMBER (number), debe utilizar ${cbVarName.value.number}.
La sintaxis de referencia depende del contexto. Para permitir que los diferentes flujos de la aptitud hagan referencia a una variable de nivel de aptitud, anteponga el nombre de la variable en la expresión a 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:

  1. Cree o importe una intención de respuesta y, a continuación, entrene la aptitud.
  2. Haga clic en Flujos y, a continuación, en + Agregar flujo.
  3. Introduzca un nombre de flujo para el flujo de intención de respuesta y, a continuación, haga clic en Crear.
  4. Haga clic en el menú El icono de menú Add State (Agregar estado). 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.
    Opción Add Start State (Agregar estado de inicio).

  5. 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.


  6. 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.
  7. 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

  8. Haga clic en Aplicar.
  9. Haga clic en Flujo principal.
  10. Haga clic en Imagen del icono Agregar. junto a Eventos incorporados.
  11. Complete el cuadro de diálogo Crear manejador de eventos incorporado:
  12. Haga clic en Crear.
Nota

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

Utilice expresiones FreeMarker para acceder a los errores y las intenciones de respuesta. Para obtener más ideas, consulte Expresiones manuales.
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:
${skill.system.event.value.intent.answer}

Por ejemplo:

Hola, ${profile.firstName?capitalize} ${profile.lastName?capitalize}, se ha preguntado sobre ${skill.system.event.value.intent.intentName?lower_case}. Esta es su respuesta: ${skill.system.event.value.intent.answer}.

Error de diálogo Utilice la siguiente sintaxis para los mensajes de error del cuadro de diálogo:
${skill.system.event.value.dialogError.errorMessage}
Por ejemplo:

Error al procesar la orden: ${skill.system.event.value.dialogError.errorMessage}