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:
- Consulta los conceptos básicos de Dialogflow.
- Sigue los pasos de configuración.
Crear un agente
Si aún no has creado un agente, hazlo ahora:
- Ve a la consola de Dialogflow ES.
- 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.
- 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.
- Introduce el nombre, el idioma predeterminado y la zona horaria predeterminada del agente.
- 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.
- 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:
-
Descarga el archivo
new-agent.zip
. - Ve a la consola de Dialogflow ES.
- Selecciona tu agente.
- Haz clic en el botón de configuración settings situado junto al nombre del agente.
- Selecciona la pestaña Exportar e importar.
- 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:
- Ve a la consola de Dialogflow ES.
- Selecciona el agente que acabas de crear.
- 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.
Probar la intención de respaldo predeterminada
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:
- 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.
- Escribe
get-agent-name
en el campo Nombre de la intención. - En la sección Frases de entrenamiento, haz clic en Añadir frases de entrenamiento.
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
En la sección Respuestas, introduce lo siguiente en la sección Respuesta de texto:
My name is Dialogflow!
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
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:
- En el menú de la barra lateral de la izquierda, haz clic en el botón más situado junto a Intenciones.
- Ponle un nombre a la intención
set-language
en la parte superior del formulario de intención. - Añade las siguientes frases de entrenamiento:
I know English
I speak French
I know how to write in German
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 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:
- 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:
- Desplázate hacia abajo hasta la sección Respuestas.
- Añade la siguiente respuesta de texto:
Wow! I didn't know you knew $language.
- 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
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:
- En el menú de la barra lateral de la izquierda, haz clic en el botón para añadir una entidad junto a Entidades.
- Introduce
language-programming
como nombre de la entidad. Añade las siguientes entradas de entidad (filas):
Valor de referencia Sinónimos JavaScript JavaScript, js, ECMAScript Java Java Python Python, py 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 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:
- En el menú de la barra lateral de la izquierda, haz clic en Intenciones.
- Haz clic en la intención
set-language
. - Añade las siguientes frases de entrenamiento:
I know javascript
I know how to code in Java
- 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.
- En la sección Respuestas, añade la siguiente respuesta de texto:
$language-programming is an excellent programming language.
. - 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
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
:
- Selecciona la intención
set-language
que has creado en los pasos anteriores. - En la sección Respuesta, actualiza la respuesta de texto:
Wow! I didn't know you knew $language. How long have you known $language?
- Haz clic en el botón Guardar y espera hasta que el cuadro de diálogo Entrenamiento del agente indique que se ha completado.
- En el menú de la barra lateral de la izquierda, haz clic en Intenciones.
- Coloca el cursor sobre la intención
set-language
y haz clic en Añadir intención de seguimiento. - En la lista que aparece, haz clic en Personalizado.
- 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.
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:
- En el menú de la barra lateral de la izquierda, haz clic en Intenciones.
- Haz clic en la intención
set-language - custom
. - Añade las siguientes frases de entrenamiento:
3 years
about 4 days
for 5 years
- 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.
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:
- Actualiza la respuesta de texto del intent
set-language - custom
aI can't believe you've known #set-language-followup.language for $duration!
. - 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.