En esta guía se explica cómo usar la consola de Dialogflow CX para crear y probar un agente sencillo de pedidos de camisetas mediante flujos. Cuando interactúes con este agente, podrás preguntarle por la ubicación de la tienda, el horario de apertura o hacer un pedido de una camisa.
El agente que hayas completado para esta guía se representará en un gráfico en la consola, como se muestra a continuación:
Antes de empezar
Antes de leer esta guía, debes hacer lo siguiente:
- Consulta los conceptos básicos de los flujos.
- Sigue los pasos de configuración.
Crear un agente
Crea un agente para esta guía:
- Abre la consola de Dialogflow CX.
- Crea o elige un proyecto.
- Haz clic en Crear agente.
- Selecciona Crea tu propio.
- Rellena el formulario de configuración básica del agente:
- Puedes elegir el nombre visible que quieras.
- Selecciona la ubicación que prefieras. Haz clic en el botón Editar si quieres cambiar los ajustes de ubicación avanzados.
- Selecciona la zona horaria que prefieras.
- Selecciona el idioma predeterminado de tu agente.
- Habilita Stackdriver Logging si quieres.
- Haz clic en Guardar.
Importación de agentes opcional
En esta guía se explica cómo crear un agente sencillo para pedir camisetas. Si quieres saltarte los pasos de la consola, puedes descargar el agente e importarlo.
Flujo e intents predeterminados
Los siguientes flujos e intents se crean automáticamente para un agente nuevo. Para ver las intenciones, haz clic en Gestionar y, a continuación, en Intenciones. Para encontrar el flujo, haz clic en Crear.
Término | Definición |
---|---|
Intent de bienvenida predeterminado | La intención de bienvenida predeterminada tiene frases de entrenamiento sencillas, como "Hola", que se han diseñado para que coincidan con las entradas iniciales de los usuarios finales. Puedes editar esta intención como quieras. |
Intención negativa predeterminada | La opción Intención negativa predeterminada se puede usar para añadir frases de entrenamiento a esta intención que actúen como ejemplos negativos. |
Default Start Flow | Puedes usar el Flujo de inicio predeterminado como único flujo. Es el único flujo que se utilizará en esta guía. En el caso de los agentes más complejos, puedes añadir más flujos. Este flujo tiene una ruta de intención predeterminada con la intención de bienvenida predeterminada como requisito de intención. |
Probar el mensaje de respuesta de bienvenida predeterminado
El flujo y las intenciones predeterminados pueden gestionar una conversación básica con solo un mensaje de bienvenida. Para probar el nuevo agente, sigue estos pasos:
- Haz clic en el botón Agente de prueba para abrir el simulador.
- Escribe
hello
en el campo de texto y pulsa Intro. - El agente responde con un mensaje de bienvenida predeterminado.
- Cierra el simulador.
El agente ha seguido estos pasos para responder a la petición del usuario final:
- Cuando proporcionaste información, el flujo activo era el Flujo de inicio predeterminado y la página activa era la página de inicio del flujo. Cada uno de los controladores de estado aplicados al flujo activo estaba en el ámbito, por lo que el agente los evaluó.
- Una de las rutas evaluadas tiene la intención de bienvenida predeterminada como requisito de intención. Tu entrada coincide con esta intención, por lo que se ha llamado a la ruta.
- La ruta llamada tiene varios mensajes de respuesta de cumplimiento. El agente ha elegido una al azar y la ha añadido a la cola de respuestas.
- La ruta llamada no tiene ningún destino de transición, por lo que no han cambiado el flujo ni la página activos.
- El agente ha respondido con el contenido de la cola de respuestas.
Editar el mensaje de respuesta de bienvenida
Puedes cambiar este mensaje de bienvenida. Para editar el mensaje de respuesta de bienvenida, sigue estos pasos:
- Haz clic en la pestaña Crear.
- Selecciona Flujo de inicio predeterminado en la sección Flujos.
- Haz clic en el nodo Página de inicio del gráfico. Esta es la página de inicio del flujo de inicio predeterminado.
- Busca la ruta con Default Welcome Intent (Intención de bienvenida predeterminada) como requisito de intención y haz clic en ella. Se abrirá un panel para editar la información de la ruta de la intención.
- Busca la sección de finalización y, en la subsección de respuestas del agente, elimina todos los mensajes de respuesta y, a continuación, añade
Hello, this is a shirt ordering virtual agent. How can I help you?
como única respuesta. - Haz clic en Guardar.
- Cierra el panel de edición de la ruta.
Probar el mensaje de respuesta de bienvenida actualizado
Para probar la respuesta actualizada, sigue estos pasos:
- Haz clic en el botón Agente de prueba para abrir el simulador.
- Escribe
hello
en el campo de texto y pulsa Intro. - El agente responde con tu nuevo mensaje.
- Cierra el simulador.
Página de establecimiento
Una conversación (sesión) de Conversational Agents (Dialogflow CX) se puede describir y visualizar como una máquina de estados. Los estados de una sesión de CX se representan mediante páginas. Por ahora, solo tienes una página, así que el agente no es muy útil. En esta sección, crearás otra página que gestione las preguntas sobre la ubicación de la tienda.
Crear la intención de ubicación
Un intent clasifica la intención de un usuario final en un turno de conversación. Para crear una intención que se corresponda cuando la entrada del usuario final solicite la ubicación de la tienda, sigue estos pasos:
- Selecciona la pestaña Gestionar.
- Haz clic en Intenciones.
- Haz clic en Crear.
- Introduce
store.location
en el nombre visible de la intención. - Introduce 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?
- Haz clic en Guardar.
Crear la página de ubicación
Ahora, crea la página. Puedes añadir un cumplimiento de entrada a esta página al que se llame cada vez que la página se active. Esta 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, sigue estos pasos:
- Haz clic en la pestaña Crear.
- Selecciona Flujo de inicio predeterminado en la sección Flujos.
- Haz clic en el botón de añadir add de la sección Páginas. Aparecerá una entrada de texto para el nombre visible de la página.
- Escribe
Store Location
como nombre visible de la página y pulsa Intro. - Haga clic en el botón de opciones more_vert situado junto al nombre visible de la página.
- Selecciona Editar para abrir el panel de edición de la página.
- Busca Cumplimiento de la entrada y haz clic en Editar cumplimiento.
- Haz clic en + Añadir respuesta de diálogo para introducir
Our store is located at 1007 Mountain Drive, Gotham City, NJ.
en el campo Diálogo del agente de la sección Respuestas del agente. - Haz clic en Guardar.
- Cierra el panel de edición de la página.
Añadir una ruta de intención de ubicación al flujo
Ahora debe crear una ruta que tenga la página de ubicación de la tienda como destino de transición. Cuando se llama a esta ruta, la sesión pasa a la página de ubicación de la tienda. Esta ruta se aplica al flujo de inicio predeterminado, por lo que está en el ámbito mientras el flujo esté activo. En el caso de un agente de un solo flujo, esto significa que la ruta siempre está en el ámbito. En cualquier momento de la conversación, el usuario final puede preguntar por la ubicación de la tienda y se llamará a esta ruta.
Para crear esta ruta, sigue estos pasos:
- Haz clic en la pestaña Crear.
- Selecciona Flujo de inicio predeterminado en la sección Flujos.
- Haz clic en el nodo Página de inicio del gráfico. Esta es la página de inicio del flujo de inicio predeterminado.
- Añade la siguiente ruta de intención:
- Intención:
store.location
- Página de transición:
Store Location
- Intención:
- Haz clic en Guardar.
- Cierra el panel de edición de la ruta de la intención.
Cuando cierres el panel de edición, verás que tu nueva página tiene un nodo en el gráfico. La flecha del nodo Inicio al nodo Almacenar ubicación indica cómo puede pasar la sesión de un nodo a otro.
Probar la página de ubicación de la tienda
Para probar la página, siga estos pasos:
- Haz clic en el botón Agente de prueba para abrir el simulador.
- Escribe
What is the store location?
y pulsa Intro. - El agente proporciona la dirección.
- Cierra el simulador.
El agente ha seguido estos pasos para responder a la entrada del usuario final:
- Cuando proporcionaste información, el flujo activo era el Flujo de inicio predeterminado y la página activa era la página de inicio del flujo. Cada uno de los controladores de estado aplicados al flujo activo estaba en el ámbito, por lo que el agente los evaluó.
- Una de las rutas evaluadas tiene store.location como requisito de intención. Tu entrada coincide con esta intención, por lo que se ha llamado a la ruta.
- La ruta llamada no tiene mensajes de respuesta de cumplimiento, por lo que no ha añadido nada a la cola de respuestas.
- La ruta llamada tiene un destino de transición, por lo que la página activa ha cambiado a la página Ubicación de la tienda.
- La página Ubicación de la tienda tiene un cumplimiento de entrada, por lo que el mensaje de respuesta del cumplimiento se ha añadido a la cola de respuestas (la dirección).
- El agente ha respondido con el contenido de la cola de respuestas.
Página de horario de apertura con creación insertada
En esta sección, creará una página Horario de la tienda que responda a las preguntas de los usuarios finales sobre el horario de la tienda. En las secciones anteriores, has creado páginas e intents desde las pestañas Compilación y Gestión. En esta sección se muestra una forma más rápida de crear estos tipos con la creación insertada.
Para crear una ruta, una intención y una página de forma insertada, sigue estos pasos:
- Haz clic en el nodo Página de inicio del gráfico.
- Junto a Rutas, haz clic en add Añadir. Se abrirá el panel de edición de la ruta de la intención.
- En la sección Intención, selecciona Nueva intención. Se abrirá el panel de edición de la intención.
Crea una intención
store.hours
con las siguientes frases de entrenamiento:What are your store hours?
What time do you close?
Haz clic en Guardar para guardar la intención. El panel de edición de la intención se cierra.
Desplázate hacia abajo hasta la sección Transición del panel de edición de la ruta.
En Transición de página, selecciona Nueva página.
Escribe
Store Hours
en el campo de texto que aparece.Haz clic en Guardar. La nueva página aparece en el gráfico porque ahora hay una transición que lleva a ella.
Cierra el panel de edición de la ruta.
Añade un fulfillment de entrada que proporcione el horario de la tienda, de forma similar a los pasos que se siguen para Ubicación de la tienda.
Cierra los paneles de edición que tengas abiertos.
Página de artículos del pedido
A continuación, crearás una página que use parámetros de formulario. Cuando el usuario final solicite un nuevo pedido de camisa, la sesión pasará a esta página. Cuando está activa, esta página recoge la talla y el color del pedido de la camiseta.
Crear un tipo de entidad personalizado para la talla de camisa
Los tipos de entidad se usan para controlar cómo se extraen los datos de las entradas de los usuarios finales. Conversational Agents (Dialogflow CX) proporciona entidades de sistema predefinidas que pueden coincidir con muchos tipos de datos habituales. Por ejemplo, hay entidades de sistema para buscar coincidencias de fechas, horas, colores, direcciones de correo electrónico, etc. También puede crear sus propias entidades personalizadas para que coincidan con datos personalizados.
En el caso de este agente, puedes usar una entidad de sistema para el color de la camiseta, pero debes crear una entidad personalizada para la talla. El tipo de entidad de tamaño debe tener las siguientes entradas de entidad:
Entidad | Sinónimos |
---|---|
pequeña | pequeño, diminuto |
medio | medio, normal, promedio |
grande | grande, enorme, gigante |
Para crear esta entidad, sigue estos pasos:
- Selecciona la pestaña Gestionar.
- Haga clic en Tipos de entidad.
- Haz clic en + Crear.
- Asigna el nombre visible
size
. - Añade las entradas de entidad que se indican en la tabla anterior.
- Haz clic en Guardar.
Crear un intent de pedido con parámetros de intent
Necesitas una intención que se corresponda cuando el usuario final solicite un nuevo pedido de camiseta. Esta intención también debería captar opcionalmente el color o la talla de la camiseta que quiera el usuario final, en caso de que proporcione esa información al principio.
Los parámetros se usan para registrar y hacer referencia a los valores que ha proporcionado el usuario final durante una sesión. Cada parámetro tiene un nombre visible y un tipo de entidad. A diferencia de las entradas sin procesar de los usuarios finales, los parámetros son datos estructurados que se pueden usar fácilmente para realizar alguna lógica o generar respuestas.
Puedes controlar cómo se extraen los datos de los usuarios finales con la coincidencia de intenciones anotando partes de tus frases de entrenamiento y configurando los parámetros de intención asociados.
Por ejemplo, considera la frase de entrenamiento "¿Qué tiempo va a hacer mañana en Tokio?".
Debes anotar "mañana" con un parámetro date
y "Tokio" con un parámetro location
.
Cuando anotas partes de una frase de entrenamiento, Conversational Agents (Dialogflow CX) reconoce que estas partes son solo ejemplos de los valores reales que proporcionarán los usuarios finales en el tiempo de ejecución.
Si un usuario introduce una consulta como "¿Qué tiempo hará el viernes en Sídney?",
Conversational Agents (Dialogflow CX) extraerá el parámetro date
de "Friday" y el parámetro location
de "Sydney".
Para anotar una frase de entrenamiento con la consola, sigue estos pasos:
- Selecciona la parte de la frase de entrenamiento que quieras anotar.
- Seleccione el tipo de entidad que quiera en la lista.
- Se creará un parámetro en la tabla de parámetros que aparece más abajo.
Crea una intención siguiendo los pasos que se indican arriba.
Asigna el nombre order.new
a esta intención.
En cada frase que contenga un color, anota el color con un color
parámetro
y el tipo de entidad de sistema @sys.color
.
Por cada frase que contenga una talla de camisa, anota la talla con un parámetro size
y el tipo de entidad personalizada @size
que has creado en los pasos anteriores.
Las frases de entrenamiento y los parámetros deberían tener un aspecto similar al siguiente:
Crear una página de pedido
Crea la nueva página de pedido siguiendo pasos similares a los anteriores:
- Nombre visible:
New Order
- Cumplimiento de la entrada:
Ok, let's start a new order.
Añadir un formulario a la página de pedido
En cada página, puede definir un formulario, que es una lista de parámetros que se deben recoger del usuario final de la página. El agente interactúa con el usuario final durante varias conversaciones hasta que ha recogido todos los parámetros de formulario necesarios, también conocidos como parámetros de página. Por cada parámetro de formulario, también debe proporcionar peticiones que el agente usa para solicitar esa información al usuario final. Este proceso se denomina relleno de formularios.
Cuando un usuario final proporciona parámetros de intención para una coincidencia de intención, estos parámetros se convierten en parámetros de sesión. Cuando una página se activa por primera vez, todos sus parámetros de formulario se rellenan previamente con los parámetros de sesión que tengan el mismo nombre. Por lo tanto, si el usuario final indica la talla o el color cuando se detecta la intención order.new, estos valores se rellenarán automáticamente en el formulario.
En la nueva página de pedido, debe definir dos parámetros de formulario obligatorios:
Obligatorio | Nombre visible | Tipo de entidad | Es una lista | Petición |
---|---|---|---|---|
color | @sys.color | ¿De qué color quieres? | ||
size | @size | ¿Qué tamaño quieres? |
Para añadir este formulario, sigue estos pasos:
- En el gráfico, haga clic en la página Nuevo pedido.
- Haz clic en Parámetros añadir add. Se abrirá el panel de edición de parámetros.
- Añada los parámetros tal como se describe en la tabla anterior.
- Haz clic en Guardar.
- Cierra el panel de edición de parámetros.
Añadir una ruta de intención de pedido al flujo
De forma similar a los pasos que has seguido anteriormente, añade una ruta al flujo de inicio predeterminado. Se debe llamar a esta ruta cuando el usuario final quiera hacer un nuevo pedido:
- Intención: order.new
- Página de destino de la transición: Nuevo pedido
Confirmation page
En la última página, solo se confirmará el pedido y se finalizará la sesión.
Crear la página de confirmación
Crea una página de confirmación con una respuesta que use los parámetros de sesión para confirmar el pedido:
- Nombre visible:
Order Confirmation
- Cumplimiento de la entrada:
You can pick up your order for a $session.params.size $session.params.color shirt in 7 to 10 business days. Goodbye.
Añadir rutas de condición a la página de pedido
También puedes usar condiciones para determinar si se llama a una ruta. Las condiciones se suelen usar para comprobar si se ha completado un formulario o se configuran para que se llamen siempre cuando se evalúan.
Para definir condiciones en la consola, consulta la documentación sobre definir condiciones.
Añade la siguiente ruta a la página de pedidos, que se llamará cuando se rellene el formulario de la página de pedidos. Fíjate en cómo esta ruta de condición usa referencias de parámetros en su respuesta al usuario final y cómo transfiere la sesión a la página Confirmación de pedido.
- Condición:
$page.params.status = "FINAL"
- Dice el agente:
You have selected a $session.params.size, $session.params.color shirt.
- Página de transición:
Order Confirmation
Añade la siguiente ruta a la página de pedido, que se llamará en cada turno de conversación en el que la página esté activa y se evalúe la ruta de condición. Cuando se evalúa y se llama a la condición anterior, la página se inactiva, por lo que no se evalúa esta ruta de condición true:
- Condición:
true
- Dice el agente:
I'd like to collect a bit more information from you.
Crear una ruta de condición para finalizar la sesión
Añade la siguiente ruta de condición a la página Confirm Order (Confirmar pedido) para finalizar la sesión una vez que la página se haya activado y se haya procesado su respuesta de entrada:
- Condición:
true
- Destino de la transición: Página:
End Session
Probar el agente completado
Prueba el agente con el siguiente diálogo:
Creación de diálogos | Explicación |
---|---|
Usuario final: hola Agente: hola, soy un agente virtual para pedidos de camisetas. ¿Cómo puedo ayudarte? |
|
Usuario final: quiero comprar una camisa azul Agente: de acuerdo, vamos a iniciar un nuevo pedido. Agente: Necesito que me facilites algo más de información. Agente: ¿De qué tamaño quieres la pizza? |
|
Usuario final: grande Agente: Has seleccionado una camisa azul grande. Agente: Puedes recoger tu pedido de una camiseta azul grande en un plazo de entre 7 y 10 días hábiles. Goodbye. |
|
Puesta en producción
Antes de ejecutar tu agente en producción, asegúrate de implementar las prácticas recomendadas para la puesta en producción.