Intents en Dialogflow CX
Este tutorial te enseñará a crear intents de manera sencilla, así como a mejorar tu NLU en Dialogflow CX, ya sea a través de la consola o de la CX CLI.
Intents en Dialogflow CX
Requisitos previos
Estas son las tecnologías utilizadas en este proyecto
- Google Cloud Account - Regístrate aquí de forma gratuita
- Dialogflow API enabled - Cómo habilitarla
- Dialogflow CX CLI - Instala y configura Dialogflow CX CLI
¿De qué se trata?
Intent
Antes de empezar a hablar de intents, es importante entender qué es el NLU. El Natural Language Understanding, la comprensión del lenguaje natural (NLU) es un subconjunto del Natural Language Processing, o procesamiento del lenguaje natural (NLP). Ayuda a que una “máquina” sea capaz de entender el lenguaje humano. Esta es una parte importante en Dialogflow CX, ya que ayuda a predecir la intención del usuario y nos permite actuar de una manera más “inteligente” para así evitar la ya típica pregunta: “No le he entendido, ¿podría repetirlo?”. Llamamos intents a las propuestas o peticiones de los usuarios que la máquina debe clasificar.
Cada intent cuenta con frases de entrenamiento o enunciados. También lo podéis encontrar como utterances. Por ejemplo, el welcome_intent
intent puede tener estas tres frases de entrenamiento:
- “Hola”
- “Qué tal”
- “¿Cómo estás?”
Como se puede observar en el ejemplo anterior, nuestra intención con el intent welcome_intent
es iniciar una conversación en cuanto un usuario pronuncie cualquiera de estas frases de entrenamiento. Un intent puede tener múltiples entities o entidades. Las entities se explicarán próximamente en otro artículo.
Para mostrar otro ejemplo, si observamos la imagen anterior, veremos el intent get_info
. Este intent también cuenta con múltiples frases de entrenamiento:
- “Cuéntame algo sobre Pikachu”
- “Dame información sobre Pikachu”
- “Información Pikachu”
- “Pikachu”
Por lo tanto, podemos solicitar información sobre un determinado Pokémon de muchas formas. En este ejemplo, pikachu
es una entity.
Una buena práctica puede consistir en probar las frases de entrenamiento con los usuarios finales. Esto te permitirá detectar las frases de entrenamiento que falten en tu NLU.
Dialogflow Console
Dialogflow Console es una interfaz web donde puedes diseñar tus conversaciones creando agentes y, dentro de un agente, crear flows, intents, entity types, etc. En la consola de Dialogflow es posible crear intents e interactuar fácilmente con ellos. Para ello, basta con acceder a la URL: https://dialogflow.cloud.google.com/cx. Este es su aspecto:
Dialogflow CX Console
Encontrarás tus intents en la pestaña Manage al hacer clic en la sección intents:
Dialogflow CX Intent
Con la consola de Dialogflow CX, puedes:
- Crear un intent: Cuando crees un intent, puedes añadir frases de entrenamiento y añadir una descripción o etiquetas a ese intent. También puedes agregar entity types a un intent.
- Eliminar un intent.
- Entrenar y validar tu NLU.
Siempre que crees, modifiques o elimines un intent, es importante que vuelvas a entrenar tus flows en Dialogflow CX. Esto volverá a entrenar tu NLU. De este modo, tu bot “entenderá” como interactúas con él junto con tus últimos cambios.
Dialogflow CX CLI
La Dialogflow CX CLI o cxcli
ies una herramienta de línea de comandos que puedes utilizar para interactuar con tus proyectos en Dialogflow CX en un terminal. Es un proyecto de código abierto creado por Xavier Portilla Edo. Con la cxcli
y puedes interactuar fácilmente con tus intents en Dialogflow CX.
Todos los comandos disponibles en la cxcli
para interactuar con tus intents se encuentran en el subcomando cxcli intent
.
Crear
Puedes crear utilizando esta herramienta Este comando se utiliza así:
cxcli intent create [intent-name] [parameters]
Puedes consultar el uso completo aquí. Es importante explicar el parámetro --training-phrases
. Se trata de una lista de las frases de entrenamiento para este intent, que se encuentran separadas por comas. Para las entities utilizadas en este intent, añade @entity-type
a la palabra en la frase de entrenamiento. Este es el formato:
word@entity-type
Aquí tienes un ejemplo: hello, hi how are you today@sys.date, morning!
Este es un ejemplo simple del comando cxcli intent create
:
cxcli intent create test_intent --training-phrases "hello, hi how are you today@sys.date, morning" --agent-name test-agent --project-id test-cx-346408 --location-id us-central1
El comando anterior te proporcionará un output como este:
$ cxcli intent create test_intent --training-phrases "hello, hi how are you today@sys.date, morning" --agent-name test-agent --project-id test-cx-346408 --location-id us-central1
INFO Intent created with id: projects/test-cx-346408/locations/us-central1/agents/40278ea0-c0fc-4d9a-a4d4-caa68d86295f/intents/a7870357-e942-43dd-99d2-4de8c81a3c09
Puedes observar el test_intent
en la Dialogflow CX Console:
test_intent
Eliminar
Asimismo, puedes eliminar un intent. TEl uso de este comando es bastante similar al utilizado para crear un intent:
cxcli intent delete [intent-name] [parameters]
Puedes consultar el uso completo del comando aquí. Este es un ejemplo simple del comando cxcli intent delete
:
cxcli intent delete test_intent --agent-name test-agent --project-id test-cx-346408 --location-id us-central1
El comando anterior te proporcionará un output como este:
$ cxcli intent delete test_intent --agent-name test-agent --project-id test-cx-346408 --location-id us-central1
INFO Intent deleted
Recursos
Si deseas comprobar el uso completo del comando cxcli intent
, puedes consultar esta página.
Si deseas saber más sobre intents en Dialogflow CX, consulta la documentación oficial.
Conclusion
Este es un tutorial básico para aprender qué es un Intent en Dialogflow CX. Como hemos visto en este ejemplo, es muy sencillo crear intents y evolucionar tu NLU en Dialogflow CX, ya sea mediante la consola o la cxcli
.
Espero que este tutorial te resulte útil.
¡Eso es todo, amigos!
Happy coding!