Crea un agente de Dialogflow ES

En esta guía, 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

Si aún no creaste un agente, hazlo ahora:

  1. Ve a la consola de Dialogflow ES.
  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 Create agent, en el menú de la barra lateral izquierda. (Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hacia la parte inferior y haz clic en Create new agent).
  4. Ingresa el nombre del agente, y el idioma y la zona horaria predeterminados.
  5. Si ya creaste un proyecto, ingrésalo. Si quieres que la consola de Dialogflow cree el proyecto, selecciona Create a new Google project.
  6. Haz clic en el botón Crear (Create).

Importa el archivo de ejemplo al agente

En los pasos que se brindan en esta guía, se hacen suposiciones sobre tu agente, por lo que debes import un agente preparado para esta guía. Cuando realizas la importación, en estos pasos se usa la opción restablecer, que reemplaza todas las opciones de configuración, intents y entidades del agente.

El agente preparado para esta guía es un agente nuevo, sin intents ni entidades definidos por el usuario.

Para importar el archivo, sigue estos pasos:

  1. Descarga el archivo new-agent.zip.
  2. Ve a la consola de Dialogflow ES.
  3. Selecciona el agente.
  4. Haz clic en el botón de configuración junto al nombre del agente.
  5. Selecciona la pestaña Export and Import.
  6. Selecciona Restore From Zip y sigue las instrucciones para restablecer el archivo ZIP que descargaste.

Intents

Los Intents categorizan la intención de un usuario final para un turno de conversación. Puedes definir varios intents para cada agente; tus intents combinados pueden manejar una conversación completa.

Intents predeterminados

Cuando creas un agente, se crean dos intents predeterminados:

  • Intent de bienvenida predeterminado: Este intent coincide cuando el usuario final inicia una conversación con el 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: Este intent coincide cuando el agente no puede hacer coincidir la expresión del usuario final con ningún otro intent.

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

  1. Ve a la consola de Dialogflow ES.
  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

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 Try it now (Probar ahora).
  • Escribe What is your name?
  • Presiona Intro.

La respuesta del agente aparece en la sección Default response (Respuesta predeterminada). Dado que tu entrada no coincidió con ningún intent, el intent de resguardo predeterminado coincidió y recibiste una de las respuestas predeterminadas.

Crea un intent nuevo

Los pasos de esta sección crean un intent que puede responder la pregunta “What is your name?” (¿Cómo te llamas?). 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 al agente, lo que también se conoce como expresión de usuario final. Debes definir muchas frases de entrenamiento que proporcionen a Dialogflow una variedad de expresiones que deben coincidir con un intent.

Para crear un intent, sigue estos pasos:

  1. Haz clic en el botón para agregar intents  junto a Intents en el menú de la barra lateral izquierda.
  2. Ingresa get-agent-name en el campo Nombre del intent.
  3. En la sección Training Phrases (Frases de entrenamiento), haz clic en Agregar frases de entrenamiento.
  4. Ingresa las siguientes frases de entrenamiento y presiona Intro después de cada entrada:

    • What is your name?
    • Do you have a name?
    • Tell me your name

    Captura de pantalla de las frases de entrenamiento

  5. Dentro de Responses (Respuestas), ingresa lo siguiente en la sección Text Response (Respuesta de texto):

    • My name is Dialogflow!

    Captura de pantalla de las frases de entrenamiento

  6. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Prueba tu intent

Captura de pantalla del simulador

En el simulador, escribe 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 da una puntuación a cada intent y establece la coincidencia con el intent que recibe 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 un intent coincide en el entorno de ejecución, Dialogflow proporciona los valores extraídos de la expresión del usuario final como parámetros. Cada parámetro tiene un tipo, llamado tipo de entidad, que dicta 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 fácilmente para realizar alguna lógica o generar respuestas.

Cuando compilas un agente, puedes controlar cómo se extraen los datos mediante la anotación de las partes de tus frases de entrenamiento y la configuración de los parámetros asociados.

Crea parámetros

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

  1. Haz clic en el botón más  junto a Intents en el menú de la barra lateral izquierda.
  2. Nombra el intent set-language en la parte superior del formulario de intents.
  3. Agrega las siguientes frases de entrenamiento:
    • I know English
    • I speak French
    • I know how to write in German
  4. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

    Captura de pantalla de la frase de entrenamiento anotada

Automáticamente, 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 and parameters (Acciones y parámetros):

Captura de pantalla de la frase de entrenamiento con una anotación

  • 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 recibe el nombre language de forma automática, ya que 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.

Para agregar una respuesta que use un parámetro, haz lo siguiente:

  1. Desplázate hacia abajo hasta la sección Respuestas.
  2. Agrega la siguiente respuesta de texto: Wow! I didn't know you knew $language.
  3. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Prueba tu parámetro

Captura de pantalla del simulador

En el simulador, ingresa I know Russian.

Puedes ver que Dialogflow extrae de forma correcta el parámetro language con el valor Russian y que Russian se insertó de forma correcta en donde se usó la referencia del parámetro en la respuesta.

Crea tus propias entidades

En la mayoría de los casos, tienes datos específicos que necesitas recopilar de los usuarios, que no son proporcionados por 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  junto a Entidades en el menú de la barra lateral izquierda.
  2. Ingresa language-programming para el 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 el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Captura de pantalla del uso de la entidad

Dialogflow puede manejar variaciones simples, como las relativas a plurales y mayúsculas, pero debes agregar 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 la entidad nueva

Agrega frases de entrenamiento al intent set-language que usan la entidad nueva mediante estos pasos:

  1. Haz clic en Intents, en el menú de la barra lateral izquierda.
  2. Haz clic en el intent set-language.
  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 reciben anotaciones y se agregan a los parámetros en la sección Acción y parámetros de forma automática.
  5. En la sección Respuestas, agrega la siguiente respuesta de texto secundaria: $language-programming is an excellent programming language.
  6. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Prueba la entidad nueva

Captura de pantalla del simulador

En el simulador, ingresa I know how to code in py.

Puedes ver que Dialogflow extrajo de forma correcta py para el parámetro language-programming, 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 un contexto de salida al intent superior, así como un contexto de entrada con el mismo nombre al intent secundario. Esto significa que el intent de seguimiento coincide solo cuando el intent superior coincide en el turno de conversación anterior.

Para agregar un intent de seguimiento personalizado al intent set-language, sigue estos pasos:

  1. Selecciona el intent set-language 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 el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.
  4. Haz clic en Intents, en el menú de la barra lateral izquierda.
  5. Coloca el cursor sobre el intent set-language y haz clic en Agregar intent de seguimiento.
  6. Haz clic en Personalizado en la lista que aparece.
  7. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Dialogflow nombra de forma automática el intent de seguimiento como set-language - custom.

Captura de pantalla del intent de seguimiento

Coincidencia con intents de seguimiento

Los intents de seguimiento solo coinciden después de que el intent superior haya coincidido. Dado que el intent set-language - custom solo tiene coincidencias después del intent set-language, puedes dar por sentado que al usuario se le preguntó How long have you known $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 set-language - custom.
  3. Agrega las siguientes frases de entrenamiento:
    • 3 years
    • about 4 days
    • for 5 years
  4. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Prueba el intent de seguimiento

Ingresa I know French en el simulador y, luego, responde la pregunta How long have you known French con about 2 weeks.

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

Intents y contextos

Inspecciona el intent set-language para verificar que set-language-followup aparece como un contexto de salida, precedido por el número 2. Este número es el indicador de la vida útil.

Captura de pantalla de contexto de salida

Después de que coincide el intent set-language, se activa el contexto set-language-followup y se adjunta a la conversación durante dos turnos (vida útil de 2). Por lo tanto, cuando el usuario responde a la pregunta How long have you known $language?, el contexto set-language-followup está activo.

Inspecciona el intent set-language - custom para verificar que set-language-followup aparece como un contexto de entrada, que es igual que el contexto de salida para el intent set-language.

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 set-language cuando tu contexto de salida está activo.

En el intent set-language - custom solo preguntaste cuánto tiempo hace que el usuario conoce el idioma y no por el idioma al que se hace referencia.

Para hacer referencia al idioma en la respuesta, haz lo siguiente:

  1. Actualiza la respuesta de texto del intent set-language - custom a I can't believe you've known #set-language-followup.language for $duration!
  2. Haz clic en el botón Guardar y espera hasta que el diálogo Entrenamiento del agente indique que se completó el entrenamiento.

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

Prueba el parámetro de contexto

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

Producción

Antes de ejecutar el agente en producción, asegúrate de implementar las prácticas recomendadas de producción.

¿Qué sigue?

Prueba la guía de inicio rápido de entregas.