Crear un agente de Dialogflow ES

En esta guía se explica cómo usar la consola de Dialogflow para crear y probar un agente sencillo.

Antes de empezar

Antes de leer esta guía, debes hacer lo siguiente:

  1. Consulta los conceptos básicos de Dialogflow.
  2. Sigue los pasos de configuración.

Crear un agente

Si aún no has creado un agente, hazlo ahora:

  1. Ve a la consola de Dialogflow ES.
  2. Si se te solicita, inicia sesión en la consola de Dialogflow. Para obtener más información, consulta el artículo Información general sobre la consola de Dialogflow.
  3. En el menú de la barra lateral de la izquierda, haz clic en Crear agente. Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hasta la parte inferior y haz clic en Crear nuevo agente.
  4. Introduce el nombre, el idioma predeterminado y la zona horaria predeterminada del agente.
  5. Si ya has creado un proyecto, accede a él. Si quieres permitir que la consola de Dialogflow cree el proyecto, selecciona Crear un proyecto de Google.
  6. Haz clic en el botón Crear.

Importar el archivo de ejemplo a tu agente

En los pasos de esta guía se presupone que tienes un agente, por lo que debes importar un agente preparado para esta guía. Al importar, estos pasos utilizan la opción Restaurar, que sobrescribe todos los ajustes, las intenciones y las entidades del agente.

El agente que se ha preparado para esta guía es un agente nuevo que no tiene intenciones ni entidades definidas 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 tu agente.
  4. Haz clic en el botón de configuración situado junto al nombre del agente.
  5. Selecciona la pestaña Exportar e importar.
  6. Selecciona Restaurar desde ZIP y sigue las instrucciones para restaurar el archivo ZIP que has descargado.

Intents

Intents categoriza la intención de un usuario final en un turno de conversación. En cada agente, defines muchas intenciones, y la combinación de todas ellas puede gestionar una conversación completa.

Intents predeterminados

Cuando creas un agente, se crean dos intenciones predeterminadas:

  • Intención de bienvenida predeterminada: esta intención se activa cuando el usuario final inicia una conversación con tu agente. Esta intención debe devolver una respuesta que informe al usuario final de lo que hace tu agente o de lo que puede decir para iniciar una conversación.
  • Intención de respaldo predeterminada: esta intención se activa cuando el agente no puede asociar la expresión del usuario final con ninguna otra intención.

Para ver estas intenciones, ve a la lista de intenciones de tu agente:

  1. Ve a la consola de Dialogflow ES.
  2. Selecciona el agente que acabas de crear.
  3. En el menú de la barra lateral de la izquierda, haz clic en Intenciones.

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

Captura de pantalla de la lista de intents

Probar la intención de respaldo predeterminada

Captura de pantalla del simulador

El simulador de Dialogflow se encuentra en la parte derecha de la consola. Con el simulador, puedes probar tu agente hablando o escribiendo mensajes.

Prueba el agente ahora:

  • Haz clic en el campo Probar ahora.
  • Escribe What is your name?.
  • Pulsa Intro.

La respuesta del agente aparece en la sección Respuesta predeterminada. Como tu entrada no ha coincidido con ninguna intención, se ha activado la intención de reserva predeterminada y has recibido una de las respuestas predeterminadas.

Crear una intención

Los pasos de esta sección crean una intención que puede responder a la pregunta "¿Cómo te llamas?". En cada intención, se definen muchas frases de entrenamiento. Una frase de entrenamiento es un ejemplo de lo que un usuario final puede escribir o decir a tu agente, también conocido como expresión de usuario final. Debes definir muchas frases de entrenamiento que proporcionen a Dialogflow una variedad de expresiones que deben coincidir con una intención.

Crear una intención:

  1. Haz clic en el botón para añadir una intención junto a Intenciones en el menú de la barra lateral de la izquierda.
  2. Escribe get-agent-name en el campo Nombre de la intención.
  3. En la sección Frases de entrenamiento, haz clic en Añadir frases de entrenamiento.
  4. Introduce las siguientes frases de entrenamiento y pulsa Intro después de cada una:

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

    Captura de pantalla de frases de preparación

  5. En la sección Respuestas, introduce lo siguiente en la sección Respuesta de texto:

    • My name is Dialogflow!

    Captura de pantalla de frases de preparación

  6. Haz clic en el botón Guardar y espera hasta que el cuadro de diálogo Entrenamiento del agente indique que se ha completado.

Probar un intent

Captura de pantalla del simulador

En el simulador, escribe What's your name? y pulsa Intro.

Tu agente responde correctamente a la expresión, aunque esta sea un poco diferente de las frases de entrenamiento que has proporcionado.

Dialogflow usa frases de entrenamiento como ejemplos para que un modelo de aprendizaje automático asocie las expresiones de los usuarios finales con las intenciones. El modelo comprueba la expresión con cada intención del agente, asigna una puntuación a cada intención y se corresponde con la intención que obtiene la puntuación más alta. Si la intención con la puntuación más alta tiene una puntuación muy baja, se activa la intención de reserva.

Parámetros y entidades

Cuando se encuentra una coincidencia con una intención en el tiempo 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, denominado tipo de entidad, que determina exactamente cómo se extraen los datos. 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.

Cuando creas un agente, controlas cómo se extraen los datos anotando partes de tus frases de entrenamiento y configurando los parámetros asociados.

Crear parámetros

Crea un intent con parámetros:

  1. En el menú de la barra lateral de la izquierda, haz clic en el botón más situado junto a Intenciones.
  2. Ponle un nombre a la intención set-language en la parte superior del formulario de intención.
  3. Añade 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 cuadro de diálogo Entrenamiento del agente indique que se ha completado.

    Captura de pantalla de una frase de entrenamiento anotada

Dialogflow detecta automáticamente los parámetros de las frases de entrenamiento que se reconocen como entidades del sistema. Se trata de entidades proporcionadas por Dialogflow para muchos tipos de datos habituales, como la ubicación, el color y la fecha.

Debajo de la sección Frases de entrenamiento, Dialogflow crea una fila en la tabla Acción y parámetros:

Captura de pantalla de una frase de entrenamiento anotada

  • Obligatorio: la casilla no está marcada, por lo que este parámetro es opcional.
  • Nombre del parámetro: este parámetro se denomina automáticamente language, porque se reconoce como un idioma.
  • Entidad: es el tipo de entidad. Se reconoce como una entidad del sistema @sys.language.
  • Valor: es el identificador que se usa al hacer referencia al valor de este parámetro.
  • Es una lista: la casilla no está marcada, por lo que el parámetro no es una lista.

Usar datos de parámetros en una respuesta

El valor de un parámetro se puede usar en tus respuestas. Por ejemplo, puedes usar la referencia del parámetro $language en tus respuestas al crear un agente. En tiempo de ejecución, se sustituirá por el idioma especificado en la expresión del usuario final.

Añade una respuesta que use un parámetro:

  1. Desplázate hacia abajo hasta la sección Respuestas.
  2. Añade 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 cuadro de diálogo Entrenamiento del agente indique que se ha completado.

Probar el parámetro

Captura de pantalla del simulador

En el simulador, introduce I know Russian.

Puedes ver que Dialogflow extrae correctamente el parámetro language con el valor Russian y que Russian se ha insertado correctamente donde se ha usado la referencia del parámetro en la respuesta.

Crear tus propias entidades

En la mayoría de los casos, necesitas recoger datos específicos de los usuarios que no proporcionan las entidades del sistema. Para ello, puedes crear entidades personalizadas.

Para crear una entidad personalizada, sigue estos pasos:

  1. En el menú de la barra lateral de la izquierda, haz clic en el botón para añadir una entidad junto a Entidades.
  2. Introduce language-programming como nombre de la entidad.
  3. Añade las siguientes entradas de entidad (filas):

    Valor de referencia Sinónimos
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Haz clic en el botón Guardar y espera hasta que el cuadro de diálogo Entrenamiento del agente indique que se ha completado.

Captura de pantalla de uso de entidad

Dialogflow puede gestionar aspectos sencillos, como el plural y el uso de mayúsculas, pero debes añadir todos los sinónimos posibles de tus entradas. Cuanto más añadas, mejor podrá determinar tu agente las entidades.

Usar la nueva entidad

Añade frases de entrenamiento a la intención set-language que usen la nueva entidad:

  1. En el menú de la barra lateral de la izquierda, haz clic en Intenciones.
  2. Haz clic en la intención set-language.
  3. Añade 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 automáticamente y se añaden a los parámetros de la sección Acción y parámetros.
  5. En la sección Respuestas, añade la siguiente respuesta de texto: $language-programming is an excellent programming language..
  6. Haz clic en el botón Guardar y espera hasta que el cuadro de diálogo Entrenamiento del agente indique que se ha completado.

Probar la nueva entidad

Captura de pantalla del simulador

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

Puedes ver que Dialogflow ha extraído correctamente py para el parámetro language-programming, lo ha identificado como la entidad Python y ha insertado el valor en la respuesta.

Contextos

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

Añadir un intent de seguimiento

Los intentos de seguimiento proporcionan una forma sencilla de controlar una conversación sin tener que crear y gestionar contextos manualmente.

Cuando creas un intent de seguimiento, se añade un contexto de salida al intent principal y un contexto de entrada con el mismo nombre al intent secundario. Esto significa que el intent de seguimiento solo se empareja cuando el intent principal se empareja en el turno de conversación anterior.

Añade una intención de seguimiento personalizada a la intención set-language:

  1. Selecciona la intención set-language que has creado 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 cuadro de diálogo Entrenamiento del agente indique que se ha completado.
  4. En el menú de la barra lateral de la izquierda, haz clic en Intenciones.
  5. Coloca el cursor sobre la intención set-language y haz clic en Añadir intención de seguimiento.
  6. En la lista que aparece, haz clic en Personalizado.
  7. Haz clic en el botón Guardar y espera hasta que el cuadro de diálogo Entrenamiento del agente indique que se ha completado.

Dialogflow asigna automáticamente el nombre set-language - custom a la intención de seguimiento.

Captura de pantalla de seguimiento

Concordancia de intents con intents de seguimiento

Los intents de seguimiento solo se emparejan después de que se haya emparejado el intent principal. Como la intención set-language - custom solo se corresponde después de la intención set-language, puedes suponer que se le acaba de hacer la pregunta al usuario How long have you known $language?. Ahora puedes añadir frases de entrenamiento para las posibles respuestas de los usuarios a esa pregunta:

  1. En el menú de la barra lateral de la izquierda, haz clic en Intenciones.
  2. Haz clic en la intención set-language - custom.
  3. Añade 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 cuadro de diálogo Entrenamiento del agente indique que se ha completado.

Probar el intent de seguimiento

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

Aunque no hay respuesta para la segunda expresión (about 2 weeks), puedes ver que la expresión se corresponde con la intención correcta (set-language - custom) y que el parámetro de duración se ha analizado correctamente (2 weeks).

Intenciones y contextos

Inspecciona la intención set-language para ver que set-language-followup aparece como contexto de salida y que tiene el número 2 delante. Este número se denomina tiempo de vida.

Captura de pantalla del contexto de salida

Una vez que se ha encontrado una coincidencia con la intención set-language, el contexto set-language-followup está activo y se adjunta a la conversación durante dos turnos (tiempo de vida de 2). Por lo tanto, cuando el usuario responda a la pregunta, How long have you known $language?, el contexto set-language-followup estará activo.

Inspecciona la intención set-language - custom para comprobar que set-language-followup aparece como contexto de entrada, que es el mismo que el contexto de salida de la intención set-language.

Las intenciones con un contexto de entrada que coincida con un contexto activo se priorizan mucho cuando Dialogflow coincide con las intenciones.

Contextos y parámetros

Los contextos almacenan valores de parámetros y puedes acceder a los valores de los parámetros definidos en la intención set-language cuando su contexto de salida está activo.

En la intención set-language - custom, solo has preguntado por el tiempo que el usuario lleva aprendiendo el idioma, no por el idioma en sí.

Para hacer referencia al idioma en la respuesta:

  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 cuadro de diálogo Entrenamiento del agente indique que se ha completado.

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

Probar el parámetro de contexto

Introduce I know French en el simulador y, a continuación, responde a la pregunta con 1 week. Observe que el valor del parámetro language se obtiene del contexto.

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.

Siguientes pasos

Prueba la guía de inicio rápido de la función de completar pedidos.