Solicitar información al usuario a través de la validación de entrada
Ahora ha creado la versión básica del bot Choo Choo, ¡genial! El siguiente paso es trabajar con la validación de entrada.
Para completar nuestro bot Choo Choo, necesitamos pedir la siguiente información al usuario:
    1.
    Origen
    2.
    Destino
    3.
    Fecha de salida
    4.
    Hora de salida
    5.
    Clase
Esto funciona muy bien cuando los usuarios dicen, por ejemplo:
    Mañana, necesito ir de Ámsterdam a Bruselas a las 2pm en segunda clase.
Pero en este momento, nuestro bot sólo puede detectar esta información cuando el usuario brinda toda esta información en una sola oración. Por supuesto, en muchos casos, este no será el caso, por lo que debemos pedir esta información al usuario. El cuadro de diálogo para solicitar esta información se denomina cuadro de diálogo Validación de Entrada.

Paso 15: trabajar con la validación de entrada

Hasta ahora, solo hemos trabajado con el tipo de diálogo de bot Mensaje de Bot. Uno de los otros cuatro tipos de diálogos de bot es la Validación de entrada. Con una validación de entrada, puede solicitar específicamente información a un usuario y guardar la respuesta directamente en una variable. Empecemos por el origen y el destino.
Entrada de texto
Vamos a crear nuevas validaciones de entrada. Esto se puede hacer en la descripción general del flujo principal con el botón verde +validación de entrada, pero también se puede crear directamente en otro diálogo de bot.
    Abrir el diálogo de bot de reserva de billetes de tren
    Cambie el texto del mensaje de su bot aquí a: 'Entonces, tengo una solicitud para un billete de tren'.
    En la pestaña Mensaje de Bot, desplácese hacia abajo hasta Ir a
    Escriba el destino en el campo Ir a y haga clic en Crear Validación de Entrada 'destino'
En cada diálogo de bot, hay una opción Ir a. Esto significa que el flujo de conversación irá automáticamente al siguiente diálogo de bot si el actual está terminado, o si se da esa entrada específica. Con la configuración actual, el bot irá automáticamente a la validación de entrada si finaliza el primer mensaje del bot para el intent de reservar el billete de tren.
    Guardar el diálogo de bot reservar el billete de tren.
Puede ver que el cuadro de diálogo recién creado se vuelve rojo. Esto significa que aún no está terminado. Terminemos para que se ponga verde:
    Abra la validación de entrada de destino recién creada
    En la pestaña Validación de Entrada, en 'Pregunta', agregue un nuevo mensaje de texto "¿Adónde desea ir?"
    En el panel 'Guardar entrada de usuario como', seleccione Cualquier como tipo de formato en 'Comprobar si la respuesta coincide'
La validación de entrada puede detectar automáticamente ciertos tipos de datos, como fechas, direcciones, números, horas, divisas, ... Esto convertirá la respuesta de los usuarios en un formato más estructurado.
En este ejemplo, solo queremos conocer la ciudad de destino, que puede adoptar cualquier formato. Entonces, usaremos el tipo de entrada 'Cualquiera' que aceptará cualquier valor como entrada válida.
Puede encontrar más información sobre los tipos de analizadores de complementos aquí.
    Escriba destino como variable. La entrada de cada usuario se guardará con este nombre de variable.
    Escriba Confirmar reserva en el campo 'Ir a'. Debido a que el diálogo de bot Confirmar reserva no existe, tiene la opción de crear uno nuevo. Seleccione Crear Mensaje de Bot 'Confirmar reserva'
El resultado final debería verse así:

Plugin de entrada y NLP

Desea asegurarse de que sus usuarios no se queden atrapados en un bucle en el que el bot les sigue pidiendo información. Es por eso que nos aseguramos de que si se detecta un intent en la respuesta al complemento de entrada, los usuarios abandonen automáticamente el complemento de entrada y vayan a la parte relevante de la conversación.
Nuestro bot Choo Choo aún no tiene un modelo de NLP maduro, lo que aumenta la probabilidad de falsas coincidencias de intents. Entonces, por ahora, es mejor seleccionar la casilla de verificación 'Desactivar NLP' en el complemento de entrada.
Una vez creado, verá el siguiente flujo:
La relación principal-secundario entre los nodos de estado de diálogo es solo una representación visual, no tiene un significado funcional. Vincula siempre los diálogos de tu bot usando Ir a.

Usar la entrada del usuario en mensajes de texto

Como se puede ver en la imagen de arriba, el mensaje del bot es rojo. Esto significa que aún no se ha completado. Completémoslo para que se vuelva gris (el color de todos los mensajes del Bot). Todas las variables de la sesión se almacenan en la sesión del usuario. Para acceder a una variable en cualquier texto mostrado, puede poner el nombre de la variable entre corchetes.
    Abra el diálogo de bot Confirmar reserva
    Ingresa un nuevo mensaje de texto Está bien, quieres ir a {destino}. Podemos hacerlo.
¡Es hora de una prueba!
Si olvida definir el 'Ir a' y prueba el flujo de su conversación, el flujo simplemente se detendrá. La conversación solo continuará si configura correctamente 'Ir a' para cada estado de diálogo.
¡Eso se ve genial! Si recibe un mensaje vacío en el primer mensaje del bot ('Tengo una solicitud para un billete de tren'), asegúrese de haber cambiado ese mensaje del bot en consecuencia para nuestra configuración más reciente. Si el destino no se captura correctamente, asegúrese de guardar la variable como 'destino' en la validación de entrada y de usar '{destino}' en el mensaje del bot.

Paso 16: Completar el flujo de reserva con las validaciones de entrada restantes

Repita los pasos anteriores para el resto de información que le gustaría obtener de sus usuarios:
    Origen: ¿De dónde parte?
    Hora de salida: ¿A qué hora desea salir?
    Fecha de salida: ¿Qué día quieres coger el tren?
Esto significa que debe crear tres Validaciones de Entrada adicionales, al igual que la Validación de Entrada de destino.Puede cambiar la validación de entrada del destino actual para asegurarse de que se pregunte el origen a continuación:
Cree la Validación de Entrada. Guarde la variable en 'origen' y elija 'Verificar si la respuesta coincide > cualquier'. Una vez creado esto, verá esto:
Esto se debe a que el mensaje del bot Confirmar reserva todavía tiene el destino como principal. No se preocupe, esto se solucionará más adelante. Agrega '¿De dónde te vas?' como texto en la validación de entrada y guarde la entrada en la variable 'origen'. Asegúrese de que la próxima validación de entrada después de esta sea la hora de salida.
    Ahora, cree las otras Validaciones de Entrada:
    variable 'hora de salida', con texto: '¿A qué hora quieres irte?'. Guardar en 'Comprobar si la respuesta coincide con > cualquier'. Ir a: fecha de salida. Desactive el NLP.
    variable 'fecha-salida', con texto: '¿Qué día quieres tomar el tren?'. Guardar en 'Comprobar si la respuesta coincide con > cualquier'. Ir a: confirmar reserva. Desactive el NLP.
Asegúrese de que todas estas validaciones de entrada sigan un flujo consecutivo y terminen en el diálogo de bot Confirmar reserva:
    1.
    Reservar billete de tren
    2.
    Destino
    3.
    Origen
    4.
    Hora de salida
    5.
    Fecha de salida
    6.
    Reserva Confirmada
Verá, una vez que abra la Validación de entrada fecha de salida, que el ir a es confirmar reserva, pero esto no se muestra en el resumen del flujo. Esto se debe a que el principal de confirmar reserva sigue siendo el destino. Puede cambiar esto abriendo confirmar reserva > pestaña Configuración> cambiar principal a la fecha de salida.
Esto significa que el resultado final se verá así:
Si alguno de los cuadros de diálogo de su bot está en rojo, compruebe si el diálogo de bot está completo con un texto y está guardado con la variable correcta. Si no tiene un flujo consecutivo, verifique si todos los padres están configurados correctamente y si los ir a en los cuadros de diálogo se guardan correctamente.
¡Ahora tenemos un gran flujo de reserva de trenes! Pruébelo un par de veces.
En el emulador con la pestaña del depurador puedes ver si las variables se guardan correctamente. En esta pestaña puede ver todas las variables almacenadas en esa sesión específica. Si se desplaza hacia abajo, puede ver algo como esto:
Este es un gran comienzo cuando necesita depurar. Aquí puede ver si cometió un error tipográfico en una determinada variable o si la entrada del usuario está almacenada correctamente en la variable.

Paso 17: Combinar la entrada del usuario con botones

En el tutorial anterior, solicitamos la entrada del usuario enviando un mensaje de texto. Sin embargo, en una validación de entrada, también podemos solicitar la entrada del usuario haciendo clic, pero también es posible utilizar botones, listas, carruseles y otros componentes de la interfaz de usuario para admitir la entrada del usuario como texto o clics.
Esto es especialmente útil y fácil de usar cuando solo hay unas pocas opciones para elegir, como se describe aquí en la Lista de Verificación de Chatbot de Diseño de Conversación.
Usemos botones para solicitar al usuario su clase de tren preferida.
    En la Validación de entrada de fecha de salida, escriba Clase en el campo Ir a y cree una nueva validación de entrada
    En Pregunta, agregar Botones
    Ingrese el mensaje de texto: "¿En qué clase quieres viajar?"
    Agregue dos botones, elija la opción Ir a, "Primera clase" y "Segunda clase", ambos van al cuadro de diálogo del bot Confirmar reserva
    En ambos botones agregue una clase de variable y un valor primero y segundo
    Seleccione el tipo de formato Cualquier, ingrese la clase como variable y vaya a Confirmar reserva
Es importante utilizar un nombre de variable idéntico para la variable de entrada, la entidad NLP y la variable de botón.
Dependiendo de la entrada del usuario, se ejecutarán diferentes acciones:
    1.
    Si un usuario escribe una expresión que contiene una entidad que coincide con la variable en una validación de entrada, esta validación de entrada se omite. De esta forma podemos evitar preguntarle al usuario cosas que ya haya dicho.
    Por ejemplo: cuando el usuario dice Necesito un billete de tren de primera clase que pertenece al intent reservar billete de tren e incluye una clase de entidad, la variable 'clase' se almacena en la sesión del usuario con un valor 'primero' y la validación de entrada 'clase 'se omite porque el valor de la variable de entrada ya está disponible en la sesión del usuario.
    1.
    Cuando se le pide al usuario que dé su clase de tren preferida y él dice "primero", este valor se agregará en la variable de entrada "clase" en la sesión del usuario.
    2.
    Cuando el usuario hace clic en el botón 'Primera clase', el valor 'primero' se agregará a la variable 'clase' en la sesión del usuario.
Esto le da mucha libertad al usuario; no importa dónde den su entrada (en una validación de entrada, expresión o botón), todo esto se guarda en la variable correcta.
¡Pruébalo en el emulador!

Paso 18: Terminando

Ahora que tiene toda esta información adicional, es hora de mostrarle al usuario todos los datos que ha recopilado en las validaciones de entrada:
    Abra el diálogo de bot Confirmar reserva
    Reemplaza el mensaje de texto existente con "Tengo un billete de tren para ti desde {origen} a {destino} el {salida-fecha} a las {salida-hora} h, en la clase {clase}".
    Cambiar el principal a la clase
¡Ahora pruebe su bot recién creado para ver si funciona!
Si tiene algún problema,

Resumen de la lección

Ahora, tienes un bot con la siguiente configuración:
    Un flujo para reservar un billete de tren con 2 mensajes de bot y 5 validaciones de entrada
    Un bot que reconoce ambas variables dadas en expresiones o mediante validaciones de entrada.
    Un mensaje final del bot que resume todas las variables proporcionadas por el usuario.
Ahora debería estar familiarizado con:
    Crear una validación de entrada y almacenar la entrada del usuario en una variable
    Crear un botón y almacenar la entrada del clic en el botón en una variable
    Vincular cuadros de diálogo de bot entre sí con la opción Ir a en un diálogo de bot y crear un nuevo diálogo de bot desde la opción Ir a
    Cambiar un diálogo de bot principal
    Utilice la pestaña del depurador para ver cómo se almacena la entrada del usuario
En el siguiente tutorial, aprenderá cómo puede dirigir la conversación en una dirección determinada en función de variables conocidas.
Last modified 2mo ago