Compila un agente con flujos

En esta guía, se muestra cómo usar la consola de Dialogflow CX para crear y probar un agente de pedidos de camisas con flujos. Cuando interactúes con este agente, pídele la ubicación de la tienda, obtén el horario de atención o pide una camisa.

En el siguiente diagrama, se muestra el agente completado para esta guía:

Captura de pantalla del gráfico del agente

Antes de comenzar

Completa las siguientes tareas antes de leer esta guía:

Crea un agente

Crea un agente para esta guía:

  1. Abre la consola de Dialogflow CX.
  2. Crea o elige un proyecto.
  3. Haz clic en Create agent.
  4. Selecciona Build your own.
  5. Completa el formulario de configuración básica del agente.
    1. Ingresa un nombre visible.
    2. Selecciona una ubicación. Haz clic en el botón Editar si quieres cambiar la configuración de ubicación avanzada.
    3. Selecciona una zona horaria.
    4. Selecciona el idioma predeterminado.
    5. De manera opcional, habilita Cloud Logging.
  6. Haz clic en Guardar.

Importación opcional de agentes

En esta guía, se explican los pasos para crear un agente de pedidos de camisas.

Para omitir los pasos de la consola, descarga el agente y, luego, impórtalo.

Intents y flujos predeterminados

Los siguientes intents y flujos se crean de forma automática para un agente nuevo.

Para encontrar los intents, haz clic en Administrar y, luego, en Intents. Para encontrar el flujo, haz clic en Compilar.

X Elemento
Intent de bienvenida predeterminado El Default Welcome Intent tiene frases de entrenamiento como "Hola" o "Buenas" que están destinadas a coincidir con la entrada inicial del usuario final. Puedes editar este intent según sea necesario.
Intent negativo predeterminado El intent negativo predeterminado se puede usar para agregar frases de entrenamiento a este intent que actúan como ejemplos negativos.
Flujo de inicio predeterminado El flujo de inicio predeterminado se puede usar como el único flujo. Es el único flujo que se usará en esta guía. Para los agentes más complejos, puedes agregar más flujos. Este flujo tiene una ruta de intent predeterminada con el intent de bienvenida predeterminado como un requisito de intent.

Prueba el mensaje de respuesta de bienvenida predeterminado

El flujo y los intents predeterminados pueden controlar una conversación básica con solo un mensaje de bienvenida.

Para probar el agente nuevo, sigue estos pasos:

  1. Haz clic en el botón Probar agente para abrir el simulador.
  2. Ingresa hello en el campo de texto y presiona Intro.
  3. El agente responde con un mensaje de bienvenida predeterminado.
  4. Cierra el simulador.

Captura de pantalla del simulador

El agente realiza los siguientes pasos para esta entrada del usuario final:

  1. Cuando proporcionas una entrada, el agente evalúa los controladores de estado dentro del alcance del flujo de inicio predeterminado y la página de inicio del flujo activos.
  2. El agente identifica una ruta que coincide con el intent de bienvenida predeterminado y la ejecuta.
  3. El agente selecciona uno de los mensajes de respuesta de entrega al azar y lo agrega a la cola de respuestas.
  4. Como la ruta no tiene un destino de transición, el flujo y la página activos no cambian.
  5. El agente te envía el contenido de la cola de respuestas.

Edita el mensaje de respuesta de bienvenida

Para editar el mensaje de respuesta de bienvenida, haz lo siguiente:

  1. Haz clic en la pestaña Compilar.
  2. Selecciona el flujo de inicio predeterminado en la sección Flujos.
  3. Haz clic en el nodo Start Page en el gráfico.
  4. Busca la ruta con el Default Welcome Intent como requisito de intent y haz clic en ella para abrir el panel de edición de rutas.
  5. En la sección de entrega, en la subsección de respuestas del agente, borra todos los mensajes de respuesta existentes.
  6. Agrega Hello, this is a shirt ordering virtual agent. How can I help you? como la única respuesta.
  7. Haz clic en Guardar.
  8. Cierra el panel de edición de rutas.

Captura de pantalla de la respuesta del agente

Prueba el mensaje de respuesta de bienvenida actualizado

Para probar la respuesta actualizada, sigue estos pasos:

  1. Haz clic en el botón Probar agente para abrir el simulador.
  2. Ingresa hello en el campo de texto y presiona Intro.
  3. El agente responde con el mensaje nuevo.
  4. Cierra el simulador.

Página de ubicación de la tienda

Una conversación de Dialogflow CX (sesión) se puede describir y visualizar como una máquina de estado. Los estados de una sesión de CX se representan con páginas. Como solo tienes una página, el agente no es muy útil. En esta sección, crearás otra página que controle las preguntas sobre la ubicación de la tienda.

Crea el intent de ubicación

Un intent categoriza la intención del usuario final para un turno de conversación.

Para crear un intent que coincida cuando la entrada del usuario final solicite la ubicación de la tienda, sigue estos pasos:

  1. Selecciona la pestaña Administrar.
  2. Haz clic en Intents.
  3. Haga clic en Crear.
  4. Ingresa store.location para el nombre visible del intent.
  5. Ingresa las siguientes frases de entrenamiento:
    • Where is the store?
    • Directions
    • Tell me the address
    • Where do I pick up my order?
    • How do I get there?
    • Where is the store located?
    • What street are you on?
    • What is your address?
    • How do I get to your store?
    • Where are you located?
  6. Haga clic en Save.

Captura de pantalla del intent

Crea la página de ubicación

Crea una página nueva. Puedes agregar un cumplimiento de entrada a esta página que se ejecute cada vez que la página se active. Este fulfillment de entrada debe tener un mensaje de respuesta que proporcione la ubicación de la tienda.

Para crear la página de ubicación de la tienda, haz lo siguiente:

  1. Haz clic en la pestaña Compilar.
  2. Selecciona el flujo de inicio predeterminado en la sección Flujos.
  3. Haz clic en el botón Agregar en la sección Páginas. Aparecerá una entrada de texto para el nombre visible de la página.
  4. Ingresa Store Location como nombre visible de la página y presiona Intro.
  5. Haz clic en el botón more_vert junto al nombre visible de la página.
  6. Selecciona Editar para abrir el panel de edición de la página.
  7. Busca Entry fulfillment y haz clic en Edit fulfillment.
  8. Haz clic en +Add dialogue response para ingresar Our store is located at 1007 Mountain Drive, Gotham City, NJ. en el campo Agent dialogue de la sección Agent responses.
  9. Haz clic en Guardar.
  10. Cierra el panel de edición de la página.

Captura de pantalla de la página

Agrega una ruta de intent de ubicación al flujo

Ahora, crea una ruta que tenga la página Ubicación de la tienda como destino de transición. Cuando se llama a esta ruta, la sesión pasa a la página Store Location. Esta ruta se aplica al flujo de inicio predeterminado, por lo que está dentro del alcance siempre que el flujo esté activo.

Para un agente de flujo único, esto significa que la ruta siempre está dentro del alcance. En cualquier momento de la conversación, un usuario final puede solicitar la ubicación de la tienda y se llamará a esta ruta.

Para crear la ruta, sigue estos pasos:

  1. Haz clic en la pestaña Compilar.
  2. Selecciona el flujo de inicio predeterminado en la sección Flujos.
  3. Haz clic en el nodo Start Page en el gráfico. Esta es la página de inicio del flujo de inicio predeterminado.
  4. Agrega la siguiente ruta de intent:
    • Intención: store.location
    • Página de transición: Store Location
  5. Haga clic en Save.
  6. Cierra el panel de edición de la ruta del intent.

Captura de pantalla de la ruta del intent

Después de cerrar el panel de edición, aparecerá un nodo para tu página nueva en el gráfico. La flecha del nodo Start al nodo Store Location muestra cómo la sesión pasa de un nodo a otro.

Prueba la página de ubicación de la tienda

Para probar la página, haz lo siguiente:

  1. Haz clic en el botón Probar agente para abrir el simulador.
  2. Ingresa What is the store location? y presiona la tecla Intro.
  3. El agente proporciona la dirección.
  4. Cierra el simulador.

El agente realiza los siguientes pasos para esta entrada del usuario final:

  1. Cuando proporcionas una entrada, el agente evalúa los controladores de estado dentro del alcance del flujo de inicio predeterminado y la página de inicio del flujo activos.
  2. El agente identifica una ruta que coincide con el intent store.location y la ejecuta.
  3. Como la ruta no tiene mensajes de respuesta de entrega, el agente no agrega nada a la cola de respuestas.
  4. El agente hace la transición de la sesión a la página Ubicación de la tienda.
  5. El agente agrega el mensaje de respuesta de entrega de entrada de la página Ubicación de la tienda a la cola de respuestas.
  6. El agente te envía el contenido de la cola de respuestas.

Página de horarios de la tienda en la que se usa la creación intercalada

En esta sección, crearás una página de horario de atención que maneje las preguntas de los usuarios finales sobre el horario de atención. Anteriormente, creaste páginas e intents desde las pestañas Compilar y Administrar. En esta sección, se muestra una forma más rápida de crear estos componentes con la creación intercalada.

Para crear una ruta del intent, un intent y una página de forma intercalada, haz lo siguiente:

  1. Haz clic en el nodo Start Page en el gráfico.
  2. Junto a Rutas, haz clic en Agregar. Se abrirá el panel de edición de ruta del intent.
  3. En la sección Intent, selecciona Nuevo intent. Se abrirá el panel de edición de intents.
  4. Crea un intent store.hours con las siguientes frases de entrenamiento:

    • What are your store hours?
    • What time do you close?
  5. Haz clic en Guardar. Se cerrará el panel de edición del intent.

  6. Ve a la sección Transición en el panel de edición de rutas.

  7. En la transición Page, selecciona New page.

  8. Ingresa Store Hours en la entrada de texto que aparece.

  9. Haz clic en Guardar. La nueva página aparece en el gráfico porque ahora hay una transición que lleva a ella.

  10. Cierra el panel de edición de rutas.

  11. Agrega un fulfillment de entrada que proporcione el horario de atención, como lo hiciste para Store Location.

  12. Cierra cualquier panel de edición abierto.

Página de elementos pedidos

A continuación, crea una página que use parámetros de formulario. Cuando solicitas un pedido de camisa nuevo, la sesión pasa a esta página, que recopila el tamaño y el color del pedido de camisa.

Crea un tipo de entidad personalizada para el tamaño de la camisa

Los tipos de entidades controlan cómo se extraen los datos de la entrada del usuario final. Dialogflow CX proporciona entidades del sistema predefinidas que coinciden con tipos de datos comunes, como fechas, horas, colores y direcciones de correo electrónico. También puedes crear entidades personalizadas para datos específicos.

Para este agente, puedes usar una entidad del sistema para el color de la camisa, pero debes crear una entidad personalizada para la talla de la camisa.

El tipo de entidad de tamaño debe tener las siguientes entradas de entidad:

Entidad Sinónimos
Pequeño pequeño, diminuto, chico
Media medio, regular, promedio
Grande grande, enorme, gigante

Para crear la entidad, sigue estos pasos:

  1. Selecciona la pestaña Administrar.
  2. Haz clic en Tipos de entidades.
  3. Haz clic en Crear.
  4. Configura el nombre visible como size.
  5. Agrega las entradas de entidad que se indican en la tabla.
  6. Haz clic en Guardar.

Crea un intent de pedido con parámetros de intent

Necesitas un intent que coincida cuando el usuario final solicite un pedido de camisa nuevo. Este intent también debería capturar de forma opcional el color o el talle de la remera elegida si el usuario final proporciona esa información inicialmente.

Los parámetros se usan para capturar y hacer referencia a los valores que proporcionó el usuario final durante una sesión. Cada parámetro tiene un nombre visible y un tipo de entidad. A diferencia de la entrada sin procesar del usuario final, los parámetros son datos estructurados que puedes usar para realizar alguna lógica o generar respuestas.

Para controlar cómo se extraen los datos del usuario final con la coincidencia de intents, puedes anotar partes de las frases de entrenamiento y configurar los parámetros de intents asociados.

Por ejemplo, considera una frase de entrenamiento como "¿Cuál es el pronóstico de mañana para Tokio?" Puedes anotar "mañana" con un parámetro date y "Tokio" con un parámetro location. Cuando anotas fragmentos de una frase de entrenamiento, Dialogflow CX reconoce que estos fragmentos son solo ejemplos de valores reales que pueden proporcionar los usuarios finales en el entorno de ejecución.

Para una entrada de usuario final como "¿Cuál es el pronóstico del viernes para Sídney?", Dialogflow CX puede extraer el parámetro date de "viernes" y el parámetro location de "Sídney".

Para anotar una frase de entrenamiento en la consola, sigue estos pasos:

  1. Destaca la parte de la frase de entrenamiento que quieres anotar.
  2. Selecciona el tipo de entidad que necesitas de la lista.
  3. Dialogflow crea un parámetro en la siguiente tabla de parámetros.

Sigue estos pasos para crear un intent llamado order.new:

  1. Para cada frase que contenga un color, anota el color con un parámetro color y el tipo de entidad del sistema @sys.color.
  2. Para cada frase que contenga un talle de camisa, anota el talle con un parámetro size y el tipo de entidad personalizada @size que creaste antes.

Las frases y parámetros de entrenamiento deberían ser similares a los siguientes:

Captura de pantalla del intent

Crea una página de pedido

Crea una página de pedidos nueva:

  • Nombre visible: New Order
  • Cumplimiento de entrada: Ok, let's start a new order.

Agrega un formulario a la página de pedido

Para cada página, puedes definir un formulario, que es una lista de parámetros que se deben recopilar del usuario final para la página. El agente interactúa con el usuario final durante varios turnos de conversación, hasta que recopila todos los parámetros de formulario requeridos, también llamados parámetros de página. Para cada parámetro de formulario, también proporcionas mensajes que el agente usa para solicitar esa información al usuario final. Este proceso se denomina completado de formularios.

Cuando un usuario final proporciona parámetros de intent para una coincidencia de intent, estos se convierten en parámetros de sesión. Cuando una página se activa en un principio, todos sus parámetros de formulario se precompletarán con los parámetros de sesión que tengan el mismo nombre. Por lo tanto, si el usuario final proporciona el tamaño o el color cuando se detecta una coincidencia con el intent order.new, estos valores se completan automáticamente en el formulario.

Define dos parámetros de formulario obligatorios para la página New Order:

Obligatorio Nombre visible Tipo de entidad Es una lista Mensaje
color @sys.color ¿Qué color quieres?
size @size ¿Qué tamaño quieres?

Para agregar este formulario, haz lo siguiente:

  1. Haz clic en la página Pedido nuevo en el gráfico.
  2. Haz clic en el botón para agregar parámetros para abrir el panel de edición de parámetros.
  3. Agrega los parámetros como se describe en la tabla anterior.
  4. Haga clic en Save.
  5. Cierra el panel de edición de los parámetros.

Agrega una ruta de intent de pedido al flujo

Agrega una ruta al flujo de inicio predeterminado que realice la transición a la página New Order cuando el usuario final quiera realizar un pedido nuevo:

  • Intent: order.new
  • Página de destino de la transición: New Order

Página de confirmación

En la página final, se confirma el pedido y se finaliza la sesión.

Crea la página de confirmación

Crea una página de confirmación con una respuesta en la que se usen los parámetros de sesión para confirmar el pedido:

  • Nombre visible: Order Confirmation
  • Entrega de entrada: You can pick up your order for a $session.params.size, $session.params.color shirt in 7 to 10 business days. Goodbye.

Agrega rutas de condición a la página de pedido

Puedes usar condiciones para determinar si se llama a una ruta. Las condiciones se usan comúnmente para verificar si un formulario está completo o se configuran para que siempre se las llame cuando se evalúan.

Para establecer condiciones en la consola, consulta la documentación Establece condiciones.

Agrega la siguiente ruta a la página de pedidos, a la que se llama cuando se completa el formulario de la página de pedidos. Esta ruta de condición usa referencias de parámetros en su respuesta al usuario final y transiciona la sesión a la página Order Confirmation.

  • Estado: $page.params.status = "FINAL"
  • El agente dice: You have selected a $session.params.size, $session.params.color shirt.
  • Página de transición: Order Confirmation

Agrega la siguiente ruta a la página de pedidos. Esta ruta se ejecuta para cada turno de conversación mientras la página está activa y se evalúa la ruta de condición. Cuando se evalúa y se llama a la condición mencionada anteriormente, la página se vuelve inactiva, por lo que no se evalúa esta ruta de condición true:

  • Estado: true
  • El agente dice: I'd like to collect a bit more information from you.

Crea una ruta de condición para finalizar la sesión

Agrega la siguiente ruta de condición a la página Order Confirmation para finalizar la sesión después de que la página se active y se procese su entrega de entrada:

  • Estado: true
  • Página de destino de la transición: End Session

Prueba el agente completado

Prueba el agente mediante el siguiente diálogo:

Diálogo Explicación
Usuario final: Hola
Agente: Hola, soy un agente virtual de pedido de camisas. ¿Cómo puedo ayudarte?
  1. Se llama a la ruta del intent de bienvenida predeterminado en el flujo de inicio predeterminado.
  2. La entrega para este controlador de estado ("Hola, soy…") se agrega a la cola de respuestas.
  3. El agente envía la cola de respuestas al usuario final.
Usuario final: Quiero comprar una camisa azul
Agente: De acuerdo, vamos a iniciar un pedido nuevo.
Agente: Me gustaría recopilar más información acerca de ti.
Agente: ¿Qué tamaño quieres?
  1. Se evalúa la ruta del intent order.new en el flujo de inicio predeterminado.
  2. El intent order.new coincide. y el parámetro del intent de color se configura como "blue".
  3. La sesión pasa a la página del pedido nuevo y el parámetro del intent de color se convierte en un parámetro de sesión.
  4. La página del pedido nuevo tiene una entrega de entrada (“Comencemos…”), por lo que se agrega a la cola de respuestas.
  5. El parámetro de sesión de color se usa para llenar el parámetro del formulario con nombre similar.
  6. La ruta de condición verdadera de la página del pedido nuevo se evalúa y se llama. Tiene un mensaje de respuesta ("Me gustaría recopilar…"), por lo que se agrega a la cola de respuestas.
  7. El formulario de la página no se completa, por lo que el agente usa el mensaje de tamaño ("¿Qué tamaño…") y lo agrega a la cola de respuestas.
  8. El agente envía la cola de respuestas al usuario final.
Usuario final: grande
Agente: Seleccionó una camisa azul grande.
Agente: Puedes retirar tu pedido de una camisa azul grande en un plazo de 7 a 10 días hábiles. Adiós.
  1. La entrada del usuario final completa el parámetro de tamaño que solicitó el agente en el turno de la conversación anterior.
  2. La ruta de finalización del formulario de la página del pedido nuevo se evalúa y se llama. Tiene una entrega ("Seleccionó…"), que se agrega a la cola de respuestas con las referencias del parámetro resueltas con los valores reales que proporcionó el usuario final.
  3. La sesión pasa a la página de confirmación del pedido.
  4. La página de confirmación de pedido tiene una entrega de entrada (“Puedes retirar…”), que se agrega a la cola de respuestas.
  5. El agente envía la cola de respuestas al usuario final.
  6. La sesión pasa a sesión de finalización.

Prepárate para la producción

Antes de ejecutar tu agente en producción, implementa las Prácticas recomendadas para la producción.