IBM Cloud Docs
Creación de un diálogo complejo

Creación de un diálogo complejo

En esta guía de aprendizaje, creará un diálogo para un asistente que ayuda a los usuarios a realizar consultas sobre un restaurante ficticio llamado Truck Stop Gourmand.

Objetivos de aprendizaje

Cuando termine la guía de aprendizaje, aprenderá a:

  • Planificar un diálogo.
  • Definir intenciones personalizadas.
  • Añada nodos de diálogo que puedan manejar sus intenciones.
  • Añada entidades para que sus respuestas sean más específicas.
  • Añada una entidad de patrón y utilícela en el diálogo para buscar patrones en la entrada de usuario.
  • Establecer y hacer referencia a variables de contexto.

Duración

Esta guía de aprendizaje tarda aproximadamente de 2 a 3 horas en completarse.

Requisito previo

Antes de empezar, complete la Guía de aprendizaje de iniciación al diálogo.

Utilice el diálogo que ha creado y añada nodos al diálogo simple que ha creado como parte del ejercicio de iniciación.

Planificar el diálogo

Está construyendo un asistente para un restaurante que se llama Truck Stop Gourmand que tiene una ubicación y un próspero negocio de pastelería. Desea que el asistente sencillo responda preguntas sobre el restaurante y su menú y pueda cancelar pedidos de repostería de los clientes. Por lo tanto, tiene que crear intenciones que manejen consultas relacionadas con los siguientes temas:

  • Información sobre el restaurante
  • Detalles del menú
  • Cancelaciones de pedidos

Empiece creando intenciones que representen estos asuntos y, a continuación, cree un diálogo que responda a las preguntas del usuario sobre ellos.

Responder preguntas sobre el restaurante

Añada una intención que reconozca cuándo los clientes pidan detalles sobre el propio restaurante. Una intención es la finalidad u objetivo que la entrada del usuario expresa. La intención #General_About_You que se proporciona con el catálogo de contenido General sirve una función similar, pero sus ejemplos de usuario se centran en consultas sobre el asistente, no sobre la empresa que utiliza el asistente para ayudar a sus clientes. Por lo tanto, añade su propia intención.

Adición de la intención #about_restaurant

  1. En la página Intenciones, pulse Crear intención.

  2. Añada el siguiente nombre de intención y, a continuación, pulse Crear intención:

    about_restaurant
    

    Se añade la intención #about_restaurant . Se añade un prefijo de signo de número (#) al nombre de la intención para etiquetarlo como una intención. Este convenio de denominación ayuda a reconocer a las intenciones. Todavía no tiene expresiones de usuario de ejemplo que estén asociadas con él.

  3. En el campo Añadir ejemplos de usuario, especifique las expresiones siguientes:

    Tell me about the restaurant
    i want to know about you
    who are the restaurant owners and what is their philosophy?
    What's your story?
    Where do you source your produce from?
    Who is your head chef and what is the chef's background?
    How many locations do you have?
    do you cater or host functions on site?
    Do you deliver?
    Are you open for breakfast?
    
  4. Pulse la flecha Cerrar Cerrar flecha para terminar de añadir la intención #reservation y sus expresiones de ejemplo.

Ha añadido una intención y ha proporcionado ejemplos de expresiones que los usuarios reales pueden especificar para activar esta intención.

Adición de un nodo de diálogo que se activa mediante la intención #about_restaurant

Añada un nodo de diálogo que reconozca cuándo la entrada de usuario se correlaciona con la intención que ha creado en el paso anterior, lo que significa que su condición comprueba si su asistente ha reconocido la intención #about_restaurant en la entrada del usuario.

  1. Pulse Diálogo para abrir el árbol de diálogo.

  2. Busque el nodo #General_Greetings en el árbol de diálogo.

    Añadirá un nodo que compruebe si hay preguntas sobre el menú después de este nodo de bienvenida inicial para que refleje el flujo que se puede esperar encontrarse en una conversación normal. Por ejemplo, Hello. entonces Tell me about yourself.

  3. Pulse el icono de opciones Node Node opciones en el nodo Greet customers y, a continuación, seleccione Añadir nodo a continuación.

  4. Empiece a escribir #about_restaurant en el campo Si el asistente reconoce y, a continuación, selecciónelo en la lista.

    Este nodo se utiliza si la entrada de usuario coincide con la intención #about_restaurant.

  5. En El asistente responde, especifique la respuesta de texto:

    Truck Stop Gourmand is the brainchild of Gloria and Fred Smith. What started out as a food truck in 2004 has expanded into a thriving restaurant. We now have one brick-and-mortar restaurant in downtown Portland. The bigger kitchen brought with it new chefs, but each one is faithful to the philosophy that made the Smith food truck so popular to begin with: deliver fresh, local produce in inventive and delicious ways. Join us for lunch or dinner seven days a week. Or order a cake from our bakery.
    

Añada también una imagen a la respuesta.

  1. Pulse Añadir tipo de respuesta.

  2. Seleccione Imagen en la lista desplegable. En el campo Origen de imagen, añada https://www.ibmlearningcenter.com/wp-content/uploads/2018/02/IBM-Learning-Center-Food4.jpg.

  3. Mueva hacia arriba el tipo de respuesta de imagen, para que se muestre en la respuesta antes de que se visualice el texto. Pulse la flecha Subir Subir flecha para reordenar los dos tipos de respuesta.

    Muestra el tipo de respuesta de imagen listado antes del tipo de respuesta de texto.
    Imagen antes de respuesta y respuesta de texto

  4. Pulse el icono de cierre Cerrar para cerrar la vista de edición de nodo.

Prueba del nodo de diálogo #about_restaurant

Pruebe la intención comprobando si las expresiones de usuario que son similares, pero no iguales, a los ejemplos que ha añadido han entrenado a su asistente para que reconozca la entrada con una intención #about_restaurant.

  1. Pulse Pruébelo.

  2. Tipo I want to learn more about your restaurant.

    Su asistente indica que se reconoce la intención #about_restaurant y devuelve una respuesta con la imagen y el texto que ha especificado para el nodo de diálogo.

    Muestra el panel Pruébelo reconociendo la intención #about_restaurant y mostrando la imagen y la respuesta de texto.
    Inténtelo

Ha añadido una intención personalizada y un nodo de diálogo que sabe cómo manejarla.

La intención de #about_restaurant está diseñada para reconocer varias preguntas generales sobre el restaurante. Ha añadido un solo nodo para capturar este tipo de preguntas. La respuesta es larga, pero es una sola sentencia que potencialmente puede responder a todas las preguntas sobre los siguientes temas:

  • Propietarios de restaurantes
  • Historial de restaurantes
  • philosophy
  • Número de sitios
  • Días de funcionamiento
  • Comidas servidas
  • El restaurante hace pasteles a la orden

Para preguntas generales, una única respuesta general es adecuada.

Responder preguntas sobre el menú

Una pregunta lave de los posibles clientes de restaurante es sobre el menú. El restaurante Truck Stop Gourmand cambia el menú a diario. Además de su menú estándar, dispone de menús vegetarianos y menús de la tienda de repostería. Cuando un usuario pregunta sobre el menú, el diálogo necesita averiguar qué menú compartir, y luego proporcionar un enlace al menú en el sitio web del restaurante. Nunca desea codificar la información en un nodo de diálogo si dicha información cambia regularmente.

Adición de una intención #menu

  1. En la página Intenciones, pulse Crear intención.

  2. Añada el siguiente nombre de intención y, a continuación, pulse Crear intención:

    menu
    
  3. En el campo Añadir ejemplos de usuario, especifique las expresiones siguientes:

    I want to see a menu
    What do you have for food?
    Are there any specials today?
    where can i find out about your cuisine?
    What dishes do you have?
    What are the choices for appetizers?
    do you serve desserts?
    What is the price range of your meals?
    How much does a typical dish cost?
    tell me the entree choices
    Do you offer a prix fixe option?
    
  4. Pulse el icono Cerrar flecha Cerrar flecha para terminar de añadir la intención #menu y sus expresiones de ejemplo.

Adición de un nodo de diálogo activado por la intención #menu

Añada un nodo de diálogo que reconozca cuándo la entrada de usuario se correlaciona con la intención que ha creado en el paso anterior, lo que significa que su condición comprueba si su asistente ha reconocido la intención #menu en la entrada del usuario.

  1. Pulse Diálogo para abrir el árbol de diálogo.

  2. Busque el nodo #about_restaurant en el árbol de diálogo.

    Añadirá un nodo que compruebe si hay preguntas sobre el menú después de este nodo.

  3. Pulse el icono de opciones Node Node opciones en el nodo #about_restaurant y, a continuación, seleccione Añadir nodo a continuación.

  4. Empiece a escribir #menu en el campo Si el asistente reconoce y, a continuación, selecciónelo en la lista.

    Este nodo se utiliza si la entrada de usuario coincide con la intención #menu.

  5. En El asistente responde, especifique la respuesta de texto:

    In keeping with our commitment to giving you only fresh local ingredients, our menu changes daily to accommodate the produce we pick up in the morning. You can find today's menu on our website.
    
  6. Añada un tipo de respuesta option que proporcione una lista de opciones para que el usuario elija. En este caso, la lista de opciones incluye las distintas versiones del menú que están disponibles. Pulse Añadir tipo de respuesta.

  7. Seleccione Opción en la lista desplegable.

  8. En el campo Título, añada Which menu do you want to see?.

  9. Pulse Añadir opción.

  10. En el campo Lista de etiquetas, añada Standard. El texto que añade como etiqueta se muestra en la respuesta al usuario como una opción seleccionable.

  11. En el campo Valor, añada standard menu. El texto que especifique como valor es lo que se envía a su asistente como nueva entrada de usuario cuando un usuario elige esta opción de la lista y la pulsa.

  12. Repita los dos pasos anteriores para añadir información de etiqueta y de valor para los otros tipos de menú:

    Opciones de menú
    Lista de etiquetas Valor
    Vegetarian vegetarian menu
    Cake shop cake shop menu

    Muestra la lista de opciones rellenada con tipos de menú.
    Respuesta de opciones

  13. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Adición de una entidad @menu

Para reconocer los distintos tipos de menús que los clientes indican que desean ver, añada una entidad @menu. Las entidades representan una clase de objeto o un tipo de datos que es relevante para el objetivo del usuario. Mediante la comprobación de la presencia de determinadas entidades en la entrada de usuario, puede añadir más respuestas, cada una de ellas adaptada a una solicitud de usuario distinta. En este caso, añade una entidad @menu que puede distinguir entre distintos tipos de menú.

  1. Pulse Mis entidades para abrir la página Entidades.

  2. Pulse Crear entidad.

  3. Escriba menu en el campo de nombre de entidad.

  4. Pulse Crear entidad.

  5. Añada standard al campo Nombre de valor y luego añada standard menu al campo Sinónimos y pulse Intro.

  6. Añada los siguientes sinónimos adicionales:

    • bill of fare
    • cuisine
    • carte du jour

    Muestra el valor estándar que se está añadiendo a la entidad @menu .
    @menu entidad

  7. Pulse Añadir valor para añadir el valor @menu:standard.

  8. Añada vegetarian al campo Nombre de valor y luego añada vegetarian menu al campo Sinónimos y pulse Intro.

  9. Añada los siguientes sinónimos adicionales:

    • vegan diet
    • vegan
    • plants-only
  10. Pulse Añadir valor para añadir el valor @menu:vegetarian.

  11. Añada cake al campo Nombre de valor y luego añada cake menu al campo Sinónimos y pulse Intro.

  12. Añada los siguientes sinónimos adicionales:

    • cake shop menu
    • dessert menu
    • bakery offerings
  13. Pulse Añadir valor para añadir el valor @menu:cake.

  14. Pulse la flecha Cerrar Cerrar flecha para terminar de añadir la entidad @menu.

Adición de nodos hijo activados por los tipos de entidad @menu

En este paso, añade nodos hijo al nodo de diálogo que comprueba la intención #menu. Cada nodo hijo muestra una respuesta diferente en función del tipo de entidad @menu que el usuario elija en la lista de opciones.

  1. Pulse Diálogo para abrir el árbol de diálogo.

  2. Busque el nodo #menu en el árbol de diálogo.

    Añada un nodo hijo para manejar cada opción de tipo de menú que ha añadido al nodo #menu.

  3. Pulse el icono de opciones Node Node opciones en el nodo #menu y, a continuación, seleccione Añadir nodo hijo.

  4. Empiece a escribir @menu:standard en el campo Si el asistente reconoce y, a continuación, selecciónelo en la lista.

    Este nodo se utiliza si la entrada de usuario coincide con la entidad @menu:standard.

  5. En El asistente responde, especifique la respuesta de texto:

    To see our menu, go to the <a href="https://www.example.com/menu.html" target="blank">menu</a> page on our website.
    
  6. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

  7. Pulse el icono de opciones Node Node opciones en el nodo @menu:standard y, a continuación, seleccione Añadir nodo a continuación.

  8. Empiece a escribir @menu:vegetarian en el campo Si el asistente reconoce de este nodo y, a continuación, selecciónelo de la lista.

  9. En El asistente responde, especifique la respuesta de texto:

    To see our vegetarian menu, go to the <a href="https://www.example.com/vegetarian-menu.html" target="blank">vegetarian menu</a> page on our website.
    
  10. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

  11. Pulse el icono de opciones Node Node opciones en el nodo @menu:vegetariano y, a continuación, seleccione Añadir nodo a continuación.

  12. Empiece a escribir @menu:cake en el campo Si el asistente reconoce de este nodo y, a continuación, selecciónelo de la lista.

  13. En El asistente responde, especifique la respuesta de texto:

    To see our cake shop menu, go to the <a href="https://www.example.com/menu.html" target="blank">cake shop menu</a> page on our website.
    
  14. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Muestra los nodos hijo después de los nodos #menu
@menu

Ha añadido nodos que reconocen solicitudes de usuario para detalles de menú. Su respuesta informa al usuario de que hay tres tipos de menús disponibles y le solicita que elija uno. Cuando el usuario elige un tipo de menú, se muestra una respuesta con un enlace de hipertexto a una página web con los detalles del menú solicitado.

Prueba de los nodos de diálogo de opciones de menú

Pruebe los nodos de diálogo que ha añadido para que reconozcan las preguntas sobre los menús.

  1. Pulse Pruébelo.

  2. Tipo What type of food do you serve?

    Su asistente indica que se reconoce la intención #menu y muestra la lista de opciones de menú para que el usuario elija una.

    Muestra el panel Pruébelo cuando la entrada de usuario desencadena la intención #menu y la respuesta de las opciones.
    Inténtelo

  3. Pulse la opción Cake shop.

    El asistente reconoce la intención #menu y la referencia de entidad @menu:cake y muestra la respuesta To see our cake shop menu, go to the cake shop page on our website..

    Se abre una nueva página del navegador que muestra el sitio web example.com.

  4. Cierre la página web example.com.

Ha añadido una intención y una entidad que pueden reconocer solicitudes de usuario para detalles de menú y puede dirigir a los usuarios al menú adecuado.

La intención #menu representa una necesidad común y clave de los clientes potenciales del restaurante. Debido a su importancia y a su popularidad, ha añadido una sección más compleja al diálogo para que responda bien.

Gestionar pedidos de repostería

Los clientes pueden realizar pedidos en persona, por teléfono o utilizando el formulario de pedido en el sitio web. Una vez realizado el pedido, los usuarios pueden cancelarlo a través del asistente virtual. En primer lugar, defina una entidad que pueda reconocer números de pedido. A continuación, añada una intención que reconozca cuándo los usuarios desean cancelar un pedido de repostería.

Adición de una entidad de patrón de número de pedido

Desea que el asistente reconozca los números de pedido, por lo que debe crear una entidad de patrón para reconocer el formato exclusivo que utiliza el restaurante para identificar sus pedidos. La sintaxis de los números de pedido que utiliza la panadería del restaurante son dos letras mayúsculas seguidas de 5 números. Por ejemplo, YR34663. Añada una entidad que pueda reconocer este patrón de caracteres.

  1. Pulse Mis entidades para abrir la página Entidades.

  2. Pulse Crear entidad.

  3. Escriba order_number en el campo de nombre de entidad.

  4. Pulse Crear entidad.

  5. Añada order_syntax al campo Nombre de valor.

  6. Pulse la flecha abajo situada junto a Sinónimos para cambiar el tipo a Patrones.

    Muestra el usuario que elige añadir un patrón para la entidad.
    Patrón

  7. Añada la siguiente expresión regular al campo Patrón:

    [A-Z]{2}\d{5}
    
  8. Pulse Añadir valor.

  9. Pulse la flecha Cerrar Cerrar flecha para terminar de añadir la entidad @order_number.

Adición de una intención para cancelar un pedido

  1. En la página Intenciones, pulse Crear intención.

  2. Añada el siguiente nombre de intención y, a continuación, pulse Crear intención:

    cancel_order
    
  3. En el campo Añadir ejemplos de usuario, especifique las expresiones siguientes:

    I want to cancel my cake order
    I need to cancel an order I just placed
    Can I cancel my cake order?
    I'd like to cancel my order
    There's been a change. I need to cancel my bakery order.
    please cancel the birthday cake order I placed last week
    The party theme changed; we don't need a cake anymore
    that order i placed, i need to cancel it.
    
  4. Pulse la flecha Cerrar Cerrar flecha para terminar de añadir la entidad #cancel_order.

Adición de una intención yes

Antes de completar una tarea en nombre del usuario, debe obtener la confirmación de que está realizando la acción adecuada. Añada una intención #yes al diálogo que pueda reconocer cuándo un usuario está de acuerdo con lo que propone su asistente.

  1. En la página Intenciones, pulse Crear intención.

  2. Añada el siguiente nombre de intención y, a continuación, pulse Crear intención:

    yes
    
  3. En el campo Añadir ejemplos de usuario, especifique las expresiones siguientes:

    Yes
    Correct
    Please do.
    You've got it right.
    Please do that.
    that is correct.
    That's right
    yeah
    Yup
    Yes, I'd like to go ahead with that.
    
  4. Pulse la flecha Cerrar Cerrar flecha para terminar de añadir la intención #yes.

Adición de nodos de diálogo que puedan gestionar solicitudes para cancelar un pedido

Ahora, añada un nodo de diálogo que pueda manejar las solicitudes para cancelar un pedido de repostería.

  1. Pulse Diálogo para abrir el árbol de diálogo.

  2. Busque el nodo #menu en el árbol de diálogo.

  3. Pulse el icono de opciones Node Node opciones en el nodo #menu y, a continuación, seleccione Añadir nodo a continuación.

  4. Empiece a escribir #cancel_order en el campo Si el asistente reconoce de este nodo y, a continuación, selecciónelo en la lista.

  5. En El asistente responde, especifique la respuesta de texto:

    If the pickup time is more than 48 hours from now, you can cancel your order.
    

Antes de poder cancelar el pedido, debe conocer el número de pedido. Es posible que el usuario especifique el número de pedido en la solicitud original. Por lo tanto, para no pedirle de nuevo el número de pedido, compruebe si hay un número con el patrón de número de pedido en la entrada original. Para ello, defina una variable de contexto que habría guardado el número de pedido si se hubiera especificado.

  1. En El asistente responde, pulse el icono Opciones Más opciones y, a continuación, seleccione Abrir editor de contexto.

  2. Establezca el contexto utilizando estos valores:

    Detalles de la variable de contexto de número de pedido
    Variable Valor
    $ordernumber <? @order_number.literal ?>

    El valor de variable de contexto (<? @order_number.literal ?>) es una expresión SpEL que captura el número que el usuario especifica que coincide con el patrón definido por la entidad de patrón @order_number . Lo guarda en la variable $ordernumber.

  3. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Ahora, añada nodos hijo que soliciten el número de pedido u obtengan la confirmación del usuario de que desea cancelar un pedido con el número de pedido detectado.

  1. Pulse el icono de opciones Node Node opciones en el nodo #cancel_order y, a continuación, seleccione Añadir nodo hijo.

  2. Añada una etiqueta al nodo para distinguirlo de otros nodos hijo que está añadiendo. En el campo Especificar nombre de nodo, añada Ask for order number.

  3. En Si el asistente reconoce, especifique true como condición.

  4. En El asistente responde, especifique la respuesta de texto:

    What is the order number?
    
  5. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Ahora añada otro nodo hijo que informe al usuario de que está cancelando el pedido.

  1. Pulse el icono de opciones Node Node opciones en el nodo Solicitar número de pedido y, a continuación, seleccione Añadir nodo hijo.

  2. En Si el asistente reconoce, especifique @order_number como condición.

  3. En El asistente responde, pulse el icono Opciones Más opciones y, a continuación, seleccione Abrir editor de contexto.

  4. Establezca el contexto utilizando estos valores:

    Detalles de la variable de contexto de número de pedido
    Variable Valor
    $ordernumber <? @order_number.literal ?>
  5. En El asistente responde, especifique la respuesta de texto:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    
  6. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Añada otro nodo para capturar el caso en que un usuario proporciona un número, pero no es un número de pedido válido.

  1. Pulse el icono de opciones Node Node opciones en el nodo @order_number y, a continuación, seleccione Añadir nodo a continuación.

  2. En Si el asistente reconoce, especifique true como condición.

  3. En El asistente responde, especifique la respuesta de texto:

    I need the order number to cancel the order for you. If you don't know the order number, please call us to cancel over the phone.
    
  4. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Añada un nodo después del nodo de solicitud de cancelación de pedido inicial que responda en el caso de que el usuario especifique el número de pedido en la solicitud inicial, para no tener que volver a preguntárselo.

  1. Pulse el icono de opciones Node Node opciones en el nodo #cancel_order y, a continuación, seleccione Añadir nodo hijo.

  2. Añada una etiqueta al nodo para distinguirlo de los otros nodos hijo. En el campo Especificar nombre de nodo, añada Number provided.

  3. En Si el asistente reconoce, especifique @order_number como condición.

  4. En El asistente responde, especifique la respuesta de texto:

    Just to confirm, you want to cancel order $ordernumber?
    
  5. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Debe añadir nodos hijo que comprueben la respuesta del usuario a la pregunta de confirmación.

  1. Pulse el icono de opciones Node Node opciones en el nodo Número proporcionado y, a continuación, seleccione Añadir nodo hijo.

  2. En Si el asistente reconoce, especifique #yes como condición.

  3. En El asistente responde, especifique la respuesta de texto:

    OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.
    
  4. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

  5. Pulse el icono de opciones Node Node opciones en el nodo #yes y, a continuación, seleccione Añadir nodo a continuación.

  6. En Si el asistente reconoce, especifique true como condición.

No añada una respuesta a El asistente responde. En su lugar, redirija a los usuarios a la rama que solicita los detalles del número de pedido que ha creado anteriormente.

  1. En Entonces, el asistente debe elegir Ir a.

  2. Seleccione el nodo Solicitar número de pedido.

  3. Seleccione Si el asistente reconoce (condición).

    Muestra la elección de la condición de nodo Pedir número de pedido como el salto al destino.
    Ir a

  4. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Forzar la conversación para evaluar los nodos hijo bajo el nodo #cancel_order en tiempo de ejecución.

  1. Pulse para abrir el nodo #cancel_order en la vista de edición.

  2. En A continuación, el asistente debe seleccionar Skip user input.

  3. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Prueba de cancelación de pedidos

Pruebe si el asistente puede reconocer patrones de caracteres que coincidan con el patrón que se utiliza para los números de pedido de producto en la entrada de usuario.

  1. Pulse Pruébelo.

  2. Tipo i want to cancel my order number TW12345.

    Su asistente reconoce tanto la intención #cancel_order como la entidad @order_number. Responde con, If the pickup time is more than 48 hours from now, you can cancel your order. Just to confirm, you want to cancel order TW12345?.

  3. Escriba Yes.

    Su asistente reconoce la intención #yes y responde con, OK. The order TW12345 is canceled. We hope we get the opportunity to bake a cake for you sometime soon..

    Muestra la prueba del panel Pruébelo del nodo de cancelación de número de pedido cuando el usuario proporciona el número de pedido en la entrada inicial.
    Inténtelo

    Ahora pruébelo en el caso de que no sepa el número de pedido.

  4. Pulse Borrar en el panel "Pruébelo" para volver a empezar.

  5. Tipo I want to cancel my order.

    Su asistente reconoce la intención #cancel_order y responde con If the pickup time is more than 48 hours from now, you can cancel your order. What is the order number?.

  6. Especifique I don't know.

    Su asistente responde con I need the order number to cancel the order for you. If you don't know the order number, please call us to cancel over the phone..

Añadir nodos para aclarar el formato de número de pedido

Si realiza más pruebas, es posible que el diálogo no sea útil en escenarios en los que el usuario no recuerda el formato de número de pedido. Es posible que el usuario solo incluya los números o que escriba las letras pero olvide que deben ser mayúsculas. Por lo tanto, sería bueno ofrecerle una pista en estos casos, ¿correcto? Si desea ser amable, añada otro nodo al árbol de diálogo que compruebe los números en la entrada de usuario.

  1. Pulse el icono de opciones Node Node opciones en el nodo @order_number y, a continuación, seleccione Añadir nodo a continuación.

  2. En Si el asistente reconoce, especifique input.text.find('\d') como condición.

  3. En el campo de condición, añada input.text.find('\d'), que es una expresión SpEL que indica que si se encuentran uno o varios números en la entrada de usuario, se active esta respuesta.

  4. En El asistente responde, especifique la respuesta de texto:

    The correct format for our order numbers is AAnnnnn. The A's represents 2 uppercase letters, and the n's represent 5 numbers. Do you have an order number in that format?
    
  5. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

  6. Pulse el icono de opciones Node Node opciones en el nodo input.text.find('\d') y, a continuación, seleccione Añadir nodo hijo.

  7. En Si el asistente reconoce, especifique true como condición.

  8. Pulse Personalizar, establezca el conmutador Varias respuestas condicionadas en Activado y, a continuación, pulse Aplicar.

  9. En ** Assistant responde, añada respuestas con las condiciones siguientes:

    Detalles de condición
    Si el asistente reconoce El asistente responde A continuación, el asistente debe
    @order_number OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon. Valor predeterminado para los valores de nodo
    true I need the order number to cancel the order for you. If you don't know the order number, please call us to cancel over the phone.

    Muestra la adición de un nodo que comprueba los números en la entrada de usuario y responde con una sugerencia sobre el formato de número de pedido.
    Detalles de condición

  10. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Ahora, al probar, puede proporcionar un conjunto de números o una mezcla de números y texto como entrada, y el diálogo le recuerda el formato de número de orden correcto. Ha probado el diálogo, ha encontrado una debilidad en él y lo ha corregido.

Otra forma de abordar este tipo de escenario es añadir un nodo con ranuras. Consulte la guía de aprendizaje sobre Adición de un nodo con ranuras a un diálogo para obtener más información sobre el uso de ranuras.

Añadir el toque personal

Si el usuario muestra interés en el propio bot, desea que el asistente virtual detecte esa curiosidad y se comprometa con el usuario de una forma más personal. Es posible que recuerde la intención #General_About_You, que se proporciona con el catálogo de contenido General, que hemos considerado utilizar antes antes de añadir su propia intención #about_restaurant personalizada. Se construye para reconocer tales preguntas del usuario. Añada un nodo que esté condicionado por esta intención. En su respuesta, puede preguntar el nombre del usuario y guardarlo en una variable $username que se puede utilizar en cualquier otro lugar del diálogo, si está disponible.

Adición de un nodo que maneje preguntas sobre el bot

Añada un nodo de diálogo que pueda reconocer el interés del usuario en el bot y pueda responder.

  1. Pulse Diálogo para abrir el árbol de diálogo.

  2. Pulse el icono de opciones Node Node opciones en el nodo Bienvenido y, a continuación, seleccione Añadir nodo a continuación.

  3. Empiece a escribir #General_About_You en el campo Si el asistente reconoce y, a continuación, selecciónelo en la lista.

  4. En El asistente responde, especifique la respuesta de texto:

    I am a virtual assistant that is designed to answer your questions about the Truck Stop Gourmand restaurant. What should I call you?
    
  5. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

  6. Pulse el icono de opciones Node Node opciones en el nodo #General_About_You y, a continuación, seleccione Añadir nodo hijo.

  7. En Si el asistente reconoce, especifique true como condición.

  8. En El asistente responde, especifique la respuesta de texto:

    Hello, <? input.text ?>! It's lovely to meet you. How can I help you today?
    

Para capturar el nombre que proporciona el usuario, añada una variable de contexto al nodo.

  1. En El asistente responde, pulse el menú de opciones Opciones y seleccione Abrir editor de contexto.

  2. Establezca el contexto utilizando estos valores:

    Asignar Contexto
    Variable Valor
    $username "<? input.text ?>"

    El valor de variable de contexto (<? input.text ?>) es una expresión SpEL que captura el nombre de usuario tal como lo especifica el usuario y, a continuación, lo guarda en la variable de contexto $username.

  3. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Si en tiempo de ejecución, el usuario desencadena este nodo y proporciona un nombre, registre el nombre del usuario. Si lo sabe, debe utilizarlo. Añada respuestas condicionales al nodo de diálogo de saludo que ha añadido anteriormente para incluir una respuesta condicional que utiliza el nombre de usuario, si se conoce.

Añada el nombre de usuario al saludo

Si sabe el nombre del usuario, debe incluirlo en el mensaje de saludo. Para ello, añada respuestas condicionales e incluya una variación del mensaje de bienvenida que incluya el nombre del usuario.

  1. Busque el nodo Greet customers en el árbol de diálogo y pulse para abrirlo en la vista de edición.

  2. Pulse Personalizar, establezca el conmutador Varias respuestas condicionadas en Activado y, a continuación, pulse Aplicar.

  3. Pulse Añadir respuesta.

  4. En Si el asistente reconoce, especifique $username.

  5. En Responder con, especifique una respuesta de texto:

    Good day to you, $username!
    
  6. Pulse la flecha Subir Subir flecha para reordenar los dos tipos de respuesta.

    Muestra que la respuesta existente ahora forma parte de una tabla de respuestas.
    Subir respuesta

  7. Pulse el icono Cerrar Cerrar para cerrar la vista de edición de nodo.

Prueba de la personalización

Pruebe si su asistente puede reconocer y guardar el nombre de un usuario y puede hacer referencia al usuario posteriormente.

  1. Pulse Pruébelo.

  2. Pulse Borrar para reiniciar la sesión de conversación.

  3. Especifique Who are you?

    Su asistente reconoce la intención #General_About_You. Su respuesta termina con la pregunta, What should I call you?.

  4. Especifique Jane.

    El asistente guarda Jane en la variable $username y responde Hello, Jane! It's lovely to meet you. How can I help you today?.

  5. Para probar el nodo Greet customers, especifique Hello..

    Su asistente reconoce la intención Greet customers y dice, Good day to you, Jane!. Utiliza la respuesta condicional que incluye el nombre del usuario porque la variable de contexto $username contiene un valor en el momento en que se activa el nodo de saludo.

Puede añadir una respuesta condicional que condicione y que incluya el nombre del usuario para cualquier otra respuesta en la que la personalización añadiría valor a la conversación.

Resumen

Ha creado un diálogo más complejo que reacciona a las preguntas y solicitudes del cliente.