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:
- Lee los conceptos básicos de Dialogflow.
- Realiza los pasos de configuración.
Crea un agente
Si aún no creaste un agente, sigue estos pasos para crearlo:
- Ve a la consola de Dialogflow ES.
- 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.
- 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).
- Ingresa el nombre del agente, y el idioma y la zona horaria predeterminados.
- Si ya creaste un proyecto, ingrésalo. Si quieres que la consola de Dialogflow cree el proyecto, selecciona Create a new Google project.
- Haz clic en el botón 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 importar 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:
- Descarga el archivo
new-agent.zip
. - Ve a la consola de Dialogflow ES.
- Selecciona el agente.
- Haz clic en el botón de configuración settings que se encuentra junto al nombre del agente.
- Selecciona la pestaña Export and Import.
- 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:
- Ve a la consola de Dialogflow ES.
- Selecciona el agente que acabas de crear.
- 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.
Prueba el intent de resguardo predeterminado
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:
- Haz clic en el botón para agregar intents junto a Intents en el menú de la barra lateral izquierda.
- Ingresa
get-agent-name
en el campo Nombre del intent. - En la sección Training Phrases (Frases de entrenamiento), haz clic en Agregar frases de entrenamiento.
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
Dentro de Responses (Respuestas), ingresa lo siguiente en la sección Text Response (Respuesta de texto):
My name is Dialogflow!
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
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:
- Haz clic en el botón más junto a Intents en el menú de la barra lateral izquierda.
- Nombra el intent
set-language
en la parte superior del formulario de intents. - Agrega 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 a que el cuadro de diálogo Entrenamiento del agente indique que se completó el entrenamiento.
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):
- 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:
- Desplázate hacia abajo hasta la sección Respuestas.
- Agrega la siguiente respuesta de texto:
Wow! I didn't know you knew $language.
- 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
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:
- Haz clic en el botón para agregar entidades junto a Entidades en el menú de la barra lateral izquierda.
- Ingresa
language-programming
para el nombre de la entidad. Agrega las siguientes entradas de entidad (filas):
Valor de referencia (Reference Value) Sinónimos (Synonyms) JavaScript JavaScript, js, ECMAScript Java Java Python Python, py 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 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:
- Haz clic en Intents, en el menú de la barra lateral izquierda.
- Haz clic en el intent
set-language
. - Agrega 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 reciben anotaciones y se agregan a los parámetros en la sección Acción y parámetros de forma automática.
- En la sección Respuestas, agrega la siguiente respuesta de texto secundaria:
$language-programming is an excellent programming language.
- 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 la entidad nueva
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:
- Selecciona el intent
set-language
que creaste en los pasos anteriores. - 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?
- 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.
- Haz clic en Intents, en el menú de la barra lateral izquierda.
- Coloca el cursor sobre el intent
set-language
y haz clic en Agregar intent de seguimiento. - Haz clic en Personalizado en la lista que aparece.
- 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
.
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:
- Haz clic en Intents, en el menú de la barra lateral izquierda.
- Haz clic en el intent
set-language - custom
. - Agrega las siguientes frases de entrenamiento:
3 years
about 4 days
for 5 years
- 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.
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:
- 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 a que el cuadro de 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 la entrega.