Guía de inicio rápido: compila un agente

En esta guía de inicio rápido, se muestra cómo usar la consola de Dialogflow para compilar y probar un agente simple.

Antes de comenzar

Debes hacer lo siguiente antes de leer esta guía:

  1. Lee los conceptos básicos de Dialogflow.
  2. Realiza los pasos de configuración.

Crea un agente

En los pasos que se brindan esta guía, damos por sentado determinadas características de tu agente. Por eso, es recomendable que comiences con un agente nuevo. Debes borrar cualquier agente existente en tu proyecto antes de crear uno nuevo. Para borrar un agente existente, haz lo siguiente:

  1. Ve a la Consola de Dialogflow.
  2. Si se te solicita, accede a la consola de Dialogflow. Consulta Descripción general de la consola de Dialogflow para obtener más información.
  3. Selecciona el agente que deseas borrar.
  4. Haz clic en el botón de configuración settings ubicado junto al nombre del agente.
  5. Desplázate hasta la parte inferior de la pestaña de configuración General.
  6. Haz clic en Borrar este agente.
  7. Ingresa BORRAR en el campo de texto.
  8. Haz clic en Borrar.

Para crear un agente, haz lo siguiente:

  1. Ve a la Consola de Dialogflow.
  2. Si se te solicita, accede a la consola de Dialogflow. Consulta Descripción general de la consola de Dialogflow para obtener más información.
  3. Haz clic en Crear agente en el menú de la barra lateral izquierda. Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hasta la parte inferior y haz clic en Crear agente nuevo.
  4. Ingresa el nombre del agente, y el idioma y la zona horaria predeterminados.
  5. Si ya creaste un proyecto, ingrésalo. Si deseas permitir que la consola de Dialogflow cree el proyecto, selecciona Crear un proyecto de Google nuevo.
  6. Haz clic en el botón Crear.

Intents

Los Intents clasifican la intención del usuario final para un turno de conversación. Puedes definir varios intents para cada agente, de manera que, en conjunto, estos intents permitan llevar a cabo una conversación completa.

Intents predeterminados

Cuando creas un agente, se crean los siguientes dos intents predeterminados:

  • Intent de bienvenida predeterminado: Se detecta una coincidencia con este intent cuando el usuario final inicia una conversación con tu agente. Debería mostrar una respuesta que le permita al usuario final saber qué hace tu agente o qué puede decir para comenzar una conversación.
  • Intent de resguardo predeterminado: Se detecta una coincidencia con este intent cuando el agente no puede hacer puede identificar ningún otro intent al que corresponda la expresión del usuario final.

Para ver estos intents, accede a la lista de intents de tu agente mediante los siguientes pasos:

  1. Ve a la Consola de Dialogflow.
  2. Selecciona el agente que acabas de crear.
  3. Haz clic en Intents, en el menú de la barra lateral izquierda.

En el centro de la consola, se muestra la lista de intents del agente.

Captura de pantalla de la lista de intents del agente

Prueba el intent de resguardo predeterminado

Captura de pantalla del simulador

El simulador de Dialogflow se encuentra a la derecha de la consola. Con el simulador, puedes probar tu agente mediante mensajes escritos o de voz.

Para probar el agente, haz lo siguiente:

  • Haz clic en el campo Probar ahora
  • Escribe algo
  • Presiona Intro

La respuesta del agente aparece en la sección Default response (Respuesta predeterminada). Dado que no se detectó una coincidencia entre tu entrada y un intent, se recurrió al intent de resguardo predeterminado, y recibiste una de las respuestas predeterminadas.

Crea y entrena un nuevo intent

Para cada intent debes definir muchas frases de entrenamiento. Una frase de entrenamiento es un ejemplo de lo que un usuario final podría escribir o decir a tu agente, lo que también se conoce como expresión de usuario final. Por ejemplo, un usuario final podría preguntar “¿Cómo te llamas?”, “¿Tienes nombre?” o, simplemente, “¿Nombre?”. Todas estas expresiones de usuario final son únicas, pero tienen la misma intención: obtener el nombre del agente.

Crea un intent para manejar esta situación:

  1. Haz clic en el botón para agregar intents add junto a Intents en el menú de la barra lateral izquierda.
  2. Ingresa name (nombre) en el campo Nombre del intent.
  3. En la sección Frases de entrenamiento, haz clic en el campo de texto vacío. Ingresa las siguientes frases de entrenamiento y presiona Intro después de cada entrada:

    • What is your name?
    • Do you have a name?
    • name
  4. En la sección Respuestas, haz clic en el campo de texto y escribe:

    • My name is Dialogflow!
  5. Haz clic en el botón Guardar y espera a que la ventana emergente Entrenamiento del agente indique que se completó el entrenamiento.

Prueba tu intent

Captura de pantalla del simulador

En el simulador, escribe “¿Cómo te llamas?” (What's your name?) y presiona Intro.

El agente responde a la expresión de forma correcta, aunque la expresión sea un poco diferente a las frases de entrenamiento que proporcionaste.

Dialogflow usa frases de entrenamiento como ejemplos para un modelo de aprendizaje automático a fin de hacer coincidir expresiones de usuario final con intents. El modelo compara la expresión con cada intent incluido en el agente, le asigna una puntuación a cada intent y establece la coincidencia con el intent que reciba la puntuación más alta. Si la puntuación más alta es demasiado baja, el modelo establece la coincidencia con el intent de resguardo.

Parámetros y entidades

Cuando se detecta una coincidencia con un intent en el entorno de ejecución, Dialogflow proporciona los valores extraídos de la expresión del usuario final en forma de parámetros. Cada parámetro tiene un tipo que se denomina tipo de entidad, el cual determina cómo se extraen los datos. A diferencia de la entrada sin procesar del usuario final, los parámetros son datos estructurados que se pueden usar con facilidad para realizar alguna lógica o generar respuestas.

Cuando compilas un agente, puedes anotar distintas partes de tus frases de entrenamiento y configurar los parámetros asociados a fin de controlar la forma en que se extraen los datos.

Agrega parámetros a un intent nuevo

Para crear un intent nuevo con parámetros, sigue estos pasos:

  1. Haz clic en el botón de signo más add junto a Intents en el menú de la barra lateral izquierda.
  2. Asigna el nombre Languages al intent en la parte superior de su formulario.
  3. Agrega las siguientes frases de entrenamiento:
    • I know English
    • I speak French
    • I know how to write in German
  4. Haz clic en Save (Guardar).

    Captura de pantalla de la frase de entrenamiento anotada

De forma automática, Dialogflow detecta parámetros en las frases de entrenamiento que se reconocen como entidades del sistema. Estas son entidades que proporciona Dialogflow para muchos tipos de datos comunes como ubicación, color y fecha.

Debajo de la sección Training phrases (Frases de entrenamiento), Dialogflow crea una fila en la tabla Actions & parameters (Acciones y parámetros):

  • Required (Obligatorio): La casilla de verificación no está marcada, por lo que este parámetro es opcional.
  • Parameter name (Nombre del parámetro): Este parámetro recibió automáticamente el nombre “language” (“idioma”) porque se lo reconoce como un idioma.
  • Entity (Entidad): Este es el tipo de entidad. Se reconoce como una entidad del sistema @sys.language.
  • Valor (Value): este es el identificador que usas cuando haces referencia al valor de este parámetro.
  • Es lista (Is List): la casilla de verificación no está marcada, por lo que el parámetro no es una lista.

Usa datos de parámetros en una respuesta

Puedes usar el valor de un parámetro en tus respuestas. Por ejemplo, puedes usar la referencia del parámetro $language en tus respuestas cuando compilas un agente. En el entorno de ejecución, se reemplazará con el idioma especificado en la expresión del usuario final.

En la sección Respuestas, agrega la siguiente respuesta y haz clic en el botón Guardar:

  • Wow! I didn't know you knew $language

Prueba tu parámetro

Captura de pantalla del simulador

En el simulador ingresa I know Russian (“Hablo ruso”).

Puedes ver que Dialogflow extrae de forma correcta el parámetro language (idioma) con el valor “ruso” y que se insertó de manera correcta en el lugar en el que se usó la referencia del parámetro en la respuesta.

Crea tus propias entidades

En la mayoría de los casos, habrá datos específicos que te interesa obtener de los usuarios, pero que no están incluidos en las entidades del sistema. Para manejar esos casos, puedes crear entidades personalizadas.

Sigue estos pasos para crear una entidad personalizada:

  1. Haz clic en el botón para agregar entidades add junto a Entidades en el menú de la barra lateral izquierda.
  2. Ingresa ProgrammingLanguage (lenguaje de programación) como nombre de la entidad.
  3. Agrega las siguientes entradas de entidad (filas):

    Valor de referencia (Reference Value) Sinónimos (Synonyms)
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Haz clic en Guardar (Save).

Cada entidad debe incluir lo siguiente:

  • Un nombre
  • Una o más entradas de entidad (filas)
  • Un valor de referencia y uno o más sinónimos para cada entrada de entidad

Dialogflow puede manejar variaciones simples, como las relativas a plurales y mayúsculas, pero es recomendable que agregues todos los sinónimos posibles para tus entradas. Cuanto más sinónimos agregues, mayor será la capacidad del agente para determinar tus entidades.

Usa tu nueva entidad

Agrega frases de entrenamiento al intent "Idiomas" que hacen uso de la nueva entidad:

  1. Haz clic en Intents, en el menú de la barra lateral izquierda.
  2. Haz clic en el intent Languages.
  3. Agrega las siguientes frases de entrenamiento:
    • I know javascript
    • I know how to code in Java
  4. Ten en cuenta que los lenguajes de programación de estas frases de entrenamiento se anotan y agregan a la lista de parámetros de forma automática.

    Captura de pantalla del uso de la entidad

  5. En la sección Respuestas, agrega $ProgrammingLanguage is cool.

  6. Haz clic en Guardar.

Prueba tu entidad nueva

Captura de pantalla del simulador

En el simulador ingresa I know how to code in py (“Sé codificar en Py”).

Puedes ver que Dialogflow extrajo correctamente py para el parámetro ProgrammingLanguage, lo identificó como la entidad Python y, luego, insertó el valor en la respuesta.

Contextos

Para controlar el flujo de la conversación, puedes usar el contexto.

Agrega un intent de seguimiento

Los intents de seguimiento ofrecen una manera sencilla de dar forma a una conversación sin tener que crear y administrar contextos de forma manual.

Cuando creas un intent de seguimiento, se agrega de forma automática un contexto de salida al intent superior y se agrega un contexto de entrada con el mismo nombre al intent de seguimiento. Esto significa que se detecta una coincidencia con el intent de seguimiento solo si hay coincidencia con su intent superior en el turno anterior de la conversación.

Para agregar un intent de seguimiento personalizado al intent Languages, sigue estos pasos:

  1. Selecciona el intent Languages que creaste en los pasos anteriores.
  2. En la sección Respuesta, actualiza la respuesta de texto:
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. Haz clic en Guardar.
  4. Haz clic en Intents, en el menú de la barra lateral izquierda.
  5. Coloca el cursor sobre el intent Languages y haz clic en Agregar intent de seguimiento (Add follow-up intent).

    Captura de pantalla de agregar intent de seguimiento

  6. Haz clic en Custom (Personalizado) en la lista que aparece.

    Captura de pantalla de agregar intent de seguimiento personalizado

Dialogflow le asigna automáticamente el nombre Languages - custom al intent de seguimiento.

Coincidencia con intents de seguimiento

Para que se detecte una coincidencia con un intent de seguimiento, es necesario que se haya detectado antes una coincidencia con su intent superior. Dado que el intent Languages - custom solo coincide después del intent Languages, puedes dar por sentado que al usuario se le preguntó “¿Cuánto hace que hablas $language?”. Ahora, puedes agregar frases de entrenamiento para las respuestas probables del usuario a esa pregunta:

  1. Haz clic en Intents, en el menú de la barra lateral izquierda.
  2. Haz clic en el intent Languages - custom.
  3. Agrega las siguientes frases de entrenamiento:
    • 3 years
    • about 4 days
    • for 5 years

Prueba tu intent de seguimiento

Ingresa I know French (“Hablo francés”) en el simulador y, luego, responde la pregunta “¿Cuánto hace que hablas francés?” con about 2 weeks (“Alrededor de 2 semanas”).

Captura de pantalla del simulador

A pesar de que no hay respuesta para la segunda expresión (“alrededor de 2 semanas”), puedes ver que la expresión coincide con el intent correcto (Languages - custom), y el parámetro de duración se analiza de forma correcta (“2 semanas”).

Intents y contextos

Inspecciona el intent Languages; verás que Languages-followup aparece como contexto de salida, precedido por el número 2. Este número indica la vida útil.

Captura de pantalla de contexto de salida

Cuando se detecta una coincidencia con el intent Languages, se activa el contexto Languages-followup y se los adjunta a la conversación durante dos turnos (vida útil de 2). Por lo tanto, cuando el usuario responda la pregunta "¿Cuánto hace que hablas $language?", el contexto Languages-followup está activo.

Inspecciona el intent Languages - custom; verás que Languages-followup aparece como un contexto de entrada, que es igual que el contexto de salida del intent Languages.

Captura de pantalla de entrada de intent

Los intents que poseen un contexto de entrada correspondiente a un contexto activo tienen preferencia cuando Dialogflow establece las coincidencias con intents.

Contextos y parámetros

Los contextos almacenan los valores de los parámetros. Puedes acceder a los valores de los parámetros definidos en el intent Languages cuando tu contexto de salida está activo.

En el intent Languages - custom solo preguntaste cuánto tiempo hace que el usuario habla el idioma y no por el idioma al que se hace referencia. Agrega la siguiente respuesta al intent Languages - custom y haz clic en el botón Guardar:

  • I can't believe you've known #languages-followup.language for $duration!

La referencia #languages-followup.language se conoce como referencia de parámetro para un contexto activo.

Prueba el parámetro de contexto

Ingresa I know French (“Hablo francés”) en el simulador y responde la pregunta con “1 mes” (1 month). Ten en cuenta que el valor del parámetro language se recupera del contexto.

Captura de pantalla del simulador