Escrito por José Manuel Ortega en Planeta Chatbot.
DialogFlow es un servicio que permite a los desarrolladores construir conversaciones usando técnicas de procesamiento de lenguaje natural. Los sistemas construidos con dialogflow proporcionan la base de conocimientos sobre la cual trabajan los sistemas de inteligencia artificial.También proporciona un asistente de voz que permite crear nuestros propios asistentes de voz mediante las SDKs para Android, IOS e incluso tiene librerías para varios lenguajes como JavaScript,Java,Python.
Hay multitud de aplicaciones que podrían crearse empleando este servicio:
- Para tomar dictados o notas en tu aplicación.
- Búsquedas en la web.
- Dictados.
- Interacción con distintos componentes, lanzar otras aplicaciones, realizar ciertos cambios en configuración.
- Buscar sinónimos
Podemos iniciar sesión en este servicio si disponemos de una cuenta de Google.
Una vez registrado ya sea usando la cuenta de Google o ingresando los datos desde cero,podrás acceder directamente a la interfaz de donde puedes crear tu asistente(agente) de AI virtual. Cada asistente que creas y al cual le enseñas habilidades específicas se llama “agente”. Para empezar, puede crear su primer agente haciendo clic en el botón “Create new agent” en la parte superior izquierda:
Al crear el agente,también creará automáticamente un proyecto de Google Cloud Platform de forma que todo estará automatizado.Cuando haya introducido la configuración de su agente, seleccione “Save” junto al nombre del agente para guardar la configuración.
Al crear un agente nuevo se crean unos intents por defecto.Los intents son los componentes predefinidos o definidos por el desarrollador y se encargan de procesar las solicitudes de los usuarios.Los “intents” (intenciones) permite crear conexiones entre las entidades y lo que el usuario dijo en lenguaje natural con las acciones que quieres que haga el programa.
En la sección User says se definen aquellas frases que el usuario va a escribir para interactuar con el agente. En esta misma pantalla abajo del todo podemos ver las respuestas que vienen definidas por defecto.
La consola de prueba
Una vez que se ha creado el agente, puede probarlo con la consola de prueba a la derecha. Puede introducir consultas en la parte superior y se enviarán al agente, mostrándole lo que se devolverá como respuesta:
Si se desplaza hacia abajo en el lado derecho de los resultados, verá más detalles cómo se interpreta la petición del usuario. Debajo hay un botón llamado “Show JSON”. para ver cómo la API le devolverá este tipo de respuesta en su aplicación.Se abrirá el visor de JSON y le mostrará una respuesta de JSON similar a ésta:
Cómo añadir una pequeña conversación
Mediante la función Small Talk puede añadir un poco de inteligencia a su agente. Esto proporciona una lista de respuestas a las preguntas más comunes.Para activarlo, vaya a la opción de menú “Small Talk” a la izquierda y haga clic en Enable.
Después de habilitar, si se desplaza hacia abajo se puede ver una lista de de frases por defecto. Por ejemplo en la sección About agent puede añadir respuestas diferentes a la pregunta “Who are you?”. Al añadir frases, verá la cifra de porcentaje al lado de la sección para mostrarle cuánto ha personalizado su agente.
Probar el intent creado
Para probar el intent basta con ir la consola de prueba a la derecha y escribir la frase que has puesto en la sección user says, en este caso obtenemos la respuesta que hemos definido.Con el botón show JSON podemos ver cómo quedaría la respuesta para el caso de que vayamos a integrarlo en una aplicación.
El agente responde con una de sus respuestas definidas,de forma que cuando se proporcione la frase más de una vez, el servicio aprende a dar una respuesta que mejor se adapte a la petición.Cuantas más frases proporcione en el intent con respuestas más específicas, el agente será capaz de responder de forma más óptima.
Uso de contextos
Al iniciar una conversación con el agente ,éste necesita conocer la manera de seguir con la conversación con el usuario a medida que la vaya haciendo preguntas. Si el usuario dice alguna palabra que está fuera del contexto de la conversación,es posible que el agente no sea capaz de seguir la conversación con el usuario ya que la palabra está fuera del contexto de la misma.
Aquí entra en juego la sección de Context donde poder crear contextos para realizar un seguimiento de lo que el usuario y el agente han estado hablando. Sin contextos, cada frase estaría completamente aislada de la anterior.
Los contextos están diseñados para transmitir información de conversaciones anteriores o fuentes externas (por ejemplo, perfil de usuario, información del dispositivo, etc.). Además, se pueden utilizar para administrar el flujo de conversación.
Aquí tendrá una sección para el contexto de entrada(add input context) y otra para el contexto de salida(add output context). Los contextos de entrada le indican al agente en qué contexto debe ejecutarse el intent. Los contextos de salida son los que permiten configurar un intent para ser recogidos en la conversación.
Si vuelve a probar el agente vemos cómo aparece una nueva sección contexts en la respuesta.
Entidades
Una entidad es un concepto que permite que los agentes entiendan cuando se mencionan por parte del usuario en la conversación. Cada entidad tiene un rango de valores y propiedades que contienen los parámetros que el agente necesitará entender para responder a este concepto.Hay tres tipos de entidades en dialogflow:
- Sistema: Tipos de entidad definidos como fecha, color, correo electrónico.Puede encontrar una lista completa de estas entidades en la documentación sobre entidades del sistema.
- Desarrollador: Entidades que creamos para nuestras necesidades individuales.
- Usuario: Se crean para usuarios individuales mientras utilizan el asistente y pueden ser generados por la API para ser utilizados en una sola sesión.
Los “entities” tiene presentes dos ideas fundamentales, algo así como el concepto o la idea principal de una oración (la palabra clave), y aquellos elementos que conforman el concepto y las diferentes formas en la que podemos nombrar a estos elementos (sinónimos).
El objetivo de utilizar un asistente de voz , es que entienda qué quiere decir el usuario dada una frase o una orden, la frase debe de tener un concepto o idea principal en la que se basa la frase, en otras palabras; una palabra clave, por ejemplo ciudades.
Crear una entidad
Como datos esenciales hay que definir el nombre de la entidad y el principal término asociado a dicha entidad junto con sinónimos de este término.
Uso de su entidad en un intent
En la página de intents del agente hay que incluir la entidad dentro las frases definidas. Para ello hay que enseñar al agente que “myEntity” es una entidad, escriba esa palabra y al seleccionarla aparecerá una lista desplegable.
Al incluir la entidad myEntity, debe aparecer como parámetros en el intent. También aparecerá como parámetro en el nombre la acción.
Ahora al escribir una frase que contenga las palabras bot o robot ,éstas se resaltarán en color y se marcarán como una entidad del tipo myEntity.
Si lo probamos con la consola vemos cómo obtenemos la respuesta junto con el parámetro myEntity=robot
Integraciones con otras aplicaciones
Web Demo le permite compartir públicamente su agente a través de una página generada o incrustarla en su sitio web existente a través de un iframe.Para activarlo lo podemos hacer desde la opción de menú integrations.
Una vez habilitada, verá una ventana con la siguiente información:
- URL de la página web generada en la que se publicará el agente.
- Un enlace a la configuración del icono y descripción del agente.
- Código para incrustar en un sitio web a través de un iframe de HTML.
La página web generada incluye el agente con el que los usuarios pueden interactuar y enlaces para integrarlo en otras aplicaciones, enviarlo por correo electrónico y otros enlaces para compartir el agente en redes sociales como Twitter, Google Plus o Linkedin.