Crea y personaliza un agente

En Dialogflow, un agente creado recientemente viene con dos intents predeterminados, el intent de bienvenida predeterminado y el intent de resguardo predeterminado. Los primeros pasos para compilar un agente, además de crear intents nuevos, implican personalizar estos intents para que coincidan con el propósito y la persona de tu agente.

Antes de comenzar

Antes de probar este instructivo, debes estar familiarizado con los conceptos básicos de Dialogflow que se describen en las Guías de inicio rápido.

Crea un agente

Usa la consola de Dialogflow para crear un agente llamado “MarysBikeShop”. Si no estás seguro de cómo hacerlo, repasa las Guías de inicio rápido.

Personaliza el intent de bienvenida predeterminado

Comencemos con la personalización de la respuesta del intent de bienvenida predeterminado de acuerdo con las prácticas recomendadas de diseño de conversaciones de Google. Las recomendaciones sugieren que cumplas tres objetivos principales con tu saludo: dar la bienvenida al usuario, establecer expectativas y dejar que el usuario tome el control.

En función de estas recomendaciones, podemos redactar el saludo de nuestro agente:

Te damos la bienvenida. Puedo decirte los horarios de atención de la tienda o puedo programar una cita. ¿Qué prefieres?

Para actualizar la respuesta del intent de bienvenida predeterminado, sigue los pasos que se indican a continuación:

  1. Haz clic en el intent de bienvenida predeterminado.
  2. Navega a la sección Responses (Respuestas).
  3. En la tabla Text response (Respuesta de texto), borra todas las respuestas predeterminadas.
  4. En la tabla Text response (Respuesta de texto), copia y pega la siguiente respuesta:

    Welcome. I can tell you the shop hours, or I can set up an appointment. Which would you like?

  5. Haz clic en GUARDAR.

  6. Prueba la actualización mediante el uso del simulador en la consola de Dialogflow.

    Figura 2. Diagrama de flujo que muestra el intent de bienvenida con sus respuestas y expresiones coincidentes.

Crea variantes de respuesta

Después de redactar una nueva frase de bienvenida, necesitamos crear otras variaciones. Incluye las siguientes variaciones como respuestas en el intent de bienvenida predeterminado:

  • Welcome. I can tell you the shop hours, or I can make an appointment. What can I do for you?
  • Hello there. I can tell you the shop hours, or I can schedule an appointment. How may I help you today?

Cuando proporcionamos múltiples respuestas para un intent, Dialogflow selecciona de manera aleatoria una variante de respuesta de la lista. Sin embargo, ten en cuenta que existen maneras más sofisticadas de controlar las variaciones en las respuestas una vez que comenzamos a escribir el código para la entrega, lo que permite que un intent utilice una lógica compleja. El componente de entrega de Dialogflow se explica en otras secciones.

En nuestras variantes de respuesta, las frases de bienvenida terminan con una pregunta, como “¿Qué prefieres?” y “¿Qué puedo hacer para ayudarte?”. En este punto, el agente espera una expresión del usuario, la cual debe mostrar lo que el usuario espera del agente. En la próxima sección, creamos el primer intent personalizado del agente que puede identificar y resolver la solicitud de un usuario.

Crea un intent personalizado

Queremos que el agente de la tienda de bicicletas realice dos tareas:

  • Informar a los clientes acerca del horario de atención
  • Programar citas para los clientes

Primero, creemos un intent que pueda informar a los usuarios acerca del horario de atención de la tienda de bicicletas. Podemos comenzar escribiendo un diálogo de muestra para este intent:

Usuario: ¿Cuándo están abiertos?

Agente: Nuestro horario es de 9:00 a.m. a 6:00 p.m., todos los días. ¿Hay algo más que pueda hacer por ti?

A fin de crear un intent que pueda controlar este diálogo, sigue los pasos que aparecen a continuación:

  1. Crea un nuevo intent llamado Hours.
  2. En la sección Frases de entrenamiento (Training phrases) del intent Horario, ingresa la siguiente frase de entrenamiento: When are you open?
  3. En la sección Respuestas (Responses), ingresa la siguiente respuesta en la tabla Respuesta de texto (Text response): We're open from 9 AM to 6 PM every day. Is there anything else I can do for you?
  4. Haz clic en GUARDAR.

    Figura 3. Diagrama de flujo que muestra el intent de bienvenida predeterminado y el intent personalizado nuevo, Hours.

La configuración anterior nos brinda un intent básico que funciona. Cuando un usuario hace la pregunta “¿Cuándo están abiertos?”, Dialogflow hace coincidir la declaración del usuario con el intent personalizado Horas. Luego, el intent responde con la frase “Estamos abiertos de 9:00 a.m. a 6:00 p.m., todos los días. ¿Hay algo más que pueda hacer por ti?”.

Agrega más frases de entrenamiento

Debido a que el intent Horas tiene una sola frase de entrenamiento por el momento, “Cuándo están abiertos?”, el intent no tiene el conocimiento suficiente para identificar otras declaraciones similares que tengan el mismo significado. Necesitamos proporcionar más frases de entrenamiento para que el agente pueda relacionar una variedad de declaraciones del usuario que expresen la misma intención.

En lenguaje natural, casi siempre tenemos diferentes maneras de formular frases que tengan el mismo significado. Recomendamos que cada intent comience con al menos entre 10 y 20 frases de entrenamiento (según la complejidad del intent). A medida que comiences a probar el agente, agrega más frases de entrenamiento mediante el uso de la herramienta de entrenamiento de Dialogflow.

Con la frase “¿Cuándo abren?”, podemos proponer estas 10 variaciones que los usuarios podrían decir en su lugar:

  • Are you open today?
  • How late are you open on weekends?
  • When do you close?
  • What time do you open tomorrow morning?
  • Are you open now?
  • Business hours.
  • How early can I drop in?
  • Tell me your opening hours.
  • What are your hours?
  • How late can I come in?

Para agregar estas variaciones como frases de entrenamiento, sigue estos pasos:

  1. Haz clic en el intent Horas.
  2. En la sección Frases de entrenamiento (Training phrases), copia y pega cada frase anterior.
  3. Haz clic en GUARDAR.
  4. Prueba el intent con varias declaraciones del usuario mediante el uso del simulador en la consola de Dialogflow.

Hasta ahora, tenemos un agente que puede saludar y dar la bienvenida a los usuarios y, luego, identificar y resolver una solicitud específica. Sin embargo, ¿qué sucede cuando los usuarios dicen algo que el agente no puede entender?

En la próxima sección, exploraremos un intent especial que está diseñado para responder a declaraciones que no tienen coincidencia: un intent de resguardo.

Personaliza el intent de resguardo

Un intent de resguardo es un intent especial que se asocia cuando una declaración del usuario no coincide con ningún otro intent. Al igual que el intent de bienvenida predeterminado, un intent de resguardo genérico llamado intent de resguardo predeterminado se incluye en cada agente.

Un intent de resguardo puede provocar que los usuarios formulen declaraciones en un formato que el agente pueda entender. Para actualizar la respuesta del intent de resguardo predeterminado, sigue estos pasos:

  1. Haz clic en el intent de resguardo predeterminado.
  2. Navega a la sección Responses (Respuestas).
  3. En la tabla Text response (Respuesta de texto), borra todas las respuestas predeterminadas.
  4. En la tabla Text response (Respuesta de texto), copia y pega la siguiente respuesta:

    Sorry, did you want to hear our hours, or set up an appointment?

  5. Haz clic en GUARDAR.

    Figura 4. Diagrama de flujo que muestra el intent de resguardo en la esquina superior izquierda.

La pregunta rápida en la respuesta de resguardo, “¿quieres conocer nuestro horario o programar una cita?”, guía a los usuarios para proporcionar una declaración reconocible. El agente debe esperar una de las siguientes declaraciones del usuario: “Quiero saber el horario” o ”Quiero programar una cita”.

En este momento, nuestro agente no puede resolver una cita.“Me gustaría programar una cita.” En la siguiente sección, crearemos un intent avanzado que pueda resolver la solicitud para configurar una cita.