Cómo crear un agente de Dialogflow ES

Usa la consola de Dialogflow ES para compilar y probar un agente.

Antes de comenzar

Antes de comenzar, completa los siguientes pasos:

Crea un agente

  1. Ve a la consola de Dialogflow ES.
  2. Accede a la consola de Dialogflow si se te solicita. Para obtener más información, consulta Descripción general de la consola de Dialogflow.
  3. En el menú de la barra lateral, haz clic en Agentes.
  4. Selecciona la pestaña Tus agentes implementados.
  5. Haz clic en Crear agente.
  6. Ingresa el nombre del agente, y el idioma y la zona horaria predeterminados.
  7. Ingresa un proyecto existente. Para permitir que la consola de Dialogflow cree un proyecto, selecciona Crear un proyecto de Google nuevo.
  8. Haz clic en Crear.

Intents

Los Intents categorizan la intención de un usuario final para un turno de conversación. Se definen varios intents para cada agente, de manera que, en conjunto, estos permitan manejar una conversación completa.

Intents predeterminados

Cuando creas un agente, Dialogflow crea dos intents predeterminados para ti:

  • Intent de bienvenida predeterminado: Este intent coincide cuando el usuario final inicia una conversación con tu agente. Muestra una respuesta que le permite al usuario final saber qué hace tu agente o qué puede decir para iniciar 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 creaste.
  3. Haz clic en Intents en el menú de la barra lateral.

En el centro de la consola de Dialogflow , 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 hablando o escribiendo mensajes.

Para probar el agente, haz lo siguiente:

  1. Haz clic en el campo Try it now (Probar ahora).
  2. Tipo What is your name?.
  3. 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

En los pasos de esta sección, se crea un intent que responde a la pregunta "¿Cómo te llamas?". Para cada intent, se definen 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. Define frases de entrenamiento que ayuden a Dialogflow a hacer coincidir expresiones 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.
  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:

    • 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 a que el cuadro de 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 del agente, asigna una puntuación a cada intent y hace coincidir el intent con la puntuación más alta. Si el intent con la puntuación más alta tiene una puntuación muy baja, se hace coincidir 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 con facilidad para realizar alguna lógica o generar respuestas.

Para controlar cómo se extraen los datos cuando compilas un agente, anota partes de tus frases de entrenamiento y configura los parámetros asociados.

Crea parámetros

Para crear parámetros de intent, sigue estos pasos:

  1. Haz clic en el botón para agregar intents junto a Intents en el menú de la barra lateral.
  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 a que el cuadro de 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.

Después de agregar frases de entrenamiento, Dialogflow crea una fila en la tabla Acciones y parámetros:

Captura de pantalla de la frase de entrenamiento anotada

  • Required: No está marcada; este parámetro es opcional.
  • Parameter Name: Se le asigna el nombre language automáticamente porque se lo reconoce como un idioma.
  • Entity: Se reconoce como una entidad del sistema @sys.language.
  • Value: Es el identificador que se usa cuando se hace referencia al valor de este parámetro.
  • Is List: No está marcada; este parámetro no es una lista.

Usa datos de parámetros en una respuesta

Puedes utilizar 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, el agente la reemplaza por el idioma especificado en la expresión del usuario final.

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

  1. Ve a la sección Responses.
  2. En la sección Text Response, agrega lo siguiente: Wow! I didn't know you knew $language.
  3. Haz clic en el botón Guardar y espera a que el cuadro de diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Prueba tu parámetro

Captura de pantalla del simulador

En el simulador, escribe I know Russian. Puedes ver que Dialogflow extrae correctamente el parámetro language con el valor Russian y que se insertó correctamente en donde se usó la referencia del parámetro en la respuesta.Russian

Crea tus propias entidades

En la mayoría de los casos, necesitas recopilar datos específicos de los usuarios 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 junto a Entidades en el menú de la barra lateral.
  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 a que el cuadro de diálogo Entrenamiento del agente indique que se completó el entrenamiento.

Captura de pantalla del uso de la entidad

Dialogflow puede manejar casos simples, como plurales y mayúsculas. Agrega todos los sinónimos posibles para tus entradas. Cuanto más sinónimos agregues, mayor será la capacidad del agente para identificar 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.
  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 se anotan y 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 (Save) y espera a que el cuadro de 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. Dialogflow extrae correctamente py para el parámetro language-programming, lo identifica como la entidad Python y, luego, inserta el valor en la respuesta.

Contextos

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

Agrega un intent de seguimiento

Los intents de seguimiento te permiten controlar una conversación sin 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 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 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 de la siguiente manera:
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. Haz clic en el botón Guardar y espera a que el cuadro de diálogo Entrenamiento del agente indique que se completó el entrenamiento.
  4. Haz clic en Intents en el menú de la barra lateral.
  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.
  7. Haz clic en el botón Guardar y espera a que el cuadro de 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. Debido a que el set-language - custom intent solo coincide después del set-language intent, se le acaba de hacer al usuario la pregunta "¿Cuánto tiempo hace que conoces $language?" Agrega frases de entrenamiento para las respuestas probables del usuario a esa pregunta:

  1. Haz clic en Intents en el menú de la barra lateral.
  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 a que el cuadro de 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

Cuando se detecta una coincidencia con el intent set-language, se activa el contexto set-language-followup y se los adjunta a la conversación durante dos turnos (vida útil de 2). Por lo tanto, cuando respondes a una pregunta como How long have you known $language?, el contexto set-language-followup está activo.

Inspecciona el set-language - custom intent; verás que set-language-followup aparece como un contexto de entrada, que es igual que el contexto de salida del set-language 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 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 a que el cuadro de diálogo Entrenamiento del agente indique que se completó el entrenamiento.

La referencia #set-language-followup.language es una referencia de parámetro para un contexto activo.

Prueba el parámetro de contexto

Ingresa I know French en el simulador y, luego, responde la pregunta con 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, implementa las prácticas recomendadas de producción.

¿Qué sigue?

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