Cómo crear un bot de forma sencilla (2 y fin)

Thursday, July 12, 2018

Cómo crear un bot de forma sencilla (2 y fin)

En el post anterior "Cómo crear un bot de forma sencilla (...)" explicamos qué es un bot, y para qué se suelen utilizar. También propusimos crear un Chatbot tipo FAQ basándonos en nuestro Diccionario Tecnológico LUCA. Para ello, comenzamos creando una base de conocimientos en forma de preguntas y respuestas con QnA Maker. En este segundo post, veremos cómo pasar de esa KB a un chatbot publicado en Skype. Paso a paso.




En el post anterior, creamos el servicio Datapedia_LUCA sobre la KB de preguntas y respuestas de nuestro diccionario tecnológico generada en QnA Maker. Ahora vamos a dar los siguientes pasos:
  • Publicaremos la KB en Azure, conectada con el servicio
  • Crearemos un Bot en Azure, y lo probaremos
  • Conectaremos el Bot con la KB de la que tendrá que obtener sus respuestas
  • Lo publicaremos en Skype

Publicar la KB en Azure


Desde el portal de QnA Maker, vemos las bases de datos que tenemos configuradas. En este caso, sólo una. 



Al abrirla, vemos el formato de preguntas y respuestas que ya vimos en el post anterior. 





Ahora vamos a publicar esta KB en Azure mediante el comando Publish.


Figura 3: Al publicar la KB la pasamos a un modo de producción que permite que un Bot o una App se conecten a ella
Figura 3: Al publicar la KB la pasamos a un modo de producción que permite que un Bot o una App se conecten a ella


En seguida obtenemos el siguiente mensaje que indica que el servicio se ha publicado correctamente. Es importante que guardemos estos datos, porque los necesitaremos más adelante.

Figura 4: Una vez publicado el servicio se generan estas claves que usaremos para conectarlo al bot. 


Crear el servicio Chatbot

Ha llegado el momento de crear el Chatbot. Para ello, nos vamos al portal de Azure, donde, si recordamos, ya habíamos creado el servicio Datapedia_LUCA desde QnA Maker.


Figura 5: Vista en Azure de los servicios creados desde QnA Maker.
Figura 5: Vista en Azure de los servicios creados desde QnA Maker.

Para agregar un nuevo recurso, seleccionamos la opción de menú "+ Crear un recurso", y en el buscador ponemos por ejemplo web app, o bot:


Figura 6: Buscamos recursos en Azure Marketplace

De entre la lista de disponibles, el que  nos interesa es Web App Bot, así que lo seleccionamos:


Figura 7: Lista de rescursos tipo Web app.
Figura 7: Lista de rescursos tipo Web app.

El servicio Web App Bot está diseñado especialmente para facilitar el desarrollo de bots, a los que  podrán conectarse los usuarios por medio de distintos canales.


Figura 8: Servicio web app bot,
Figura 8: Servicio web app bot,

El formulario para crear el servicio es muy similar al que usamos en la primera parte para el servicio Datapedia_LUCA. En este formulario le damos nombre al bot, indicamos los datos de suscripción, grupo de recursos, ubicación, tarifa etc

Figura 9: Formulario de creación del bot en Azure.
Figura 9: Formulario de creación del bot en Azure.

Un poco más abajo indicamos qué plantilla de bot nos interesa. En nuestro caso, elegimos "Question and Answer" y el lenguaje Node.js


Figura 10: Parte inferior del formulario.

A continuación hay que crear un identificador y contraseña para la aplicación- Podemos hacerlo de forma automática o conectándonos al portal de registro de aplicaciones mediante el enlace azul de la tercera columna y copiando y pegando el ID y la contraseña generados en el portal en los campos que aparecen bajo el enlace.


Figura 11: Configuración del Id y contraseña de la aplicación.
Figura 11: Configuración del Id y contraseña de la aplicación.

Una vez incorporada esta información, sólo nos queda dar al botón "Crear" y vemos cómo se envía la implementación para el Web App Bot.


Figura 12: Enviando la implementación del servicio.
Figura 12: Enviando la implementación del servicio.


Probar el servicio y conectarlo a la KB

El servicio ya está creado y podemos verlo en el panel de Azure, junto con el creado para la KB. Hacemos click sobre el icono del nuevo servicio y vamos a probar a "chatear" con el bot. Para ello, seleccionamos la opción "Probar el chat en web". Si preguntamos, como hicimos para probar la KB en QnA Maker ¿Qué es algoritmo?, por ejemplo, obtenemos:


Figura 13: Prueba del chatbot. Todavía no está conectado a la KB.
Figura 13: Prueba del chatbot. Todavía no está conectado a la KB.


El mensaje nos indica que el bot está escuchando, pero todavía no está conectado a nuestro servicio Datapedia. ¿Os acordáis de las claves que nos guardamos antes?. Ahora es el momento de recuperarlas.


  • QnAKnowledgebaseId
  • QnAEndpointHostName
  • QnAAuthKey

  • Vamos a  Configuración de App Services/Configuración de la aplicación, vemos que los valores están en blanco. Editamos el campo simplemente haciendo click sobre él con el ratón, añadimos los valores que guardamos antes, teniendo cuidado con el orden, ya que no se llaman exactamente igual. Guardamos y volvemos a probar el bot que ahora sí que va a funcionar.

    Figura 14: Conexión del bot a la KB.
    Figura 14: Conexión del bot a la KB.


    Efectivamente, cuando volvemos a preguntar al bot qué es un algoritmo, ya sabe darnos una respuesta adecuada. 

    Figura 15: Probamos de nuevo el chatbot y ahora sí que funciona.

    Antes de conectarlo a algún canal, si queremos personalizarlo, podemos agregar una imagen para el perfil del bot.

    Figura 16: Añadimos el icono  al perfil del bot.
    Figura 16: Añadimos el icono  al perfil del bot.


    Publicar el servicio en Skype

    Y ya sólo nos queda publicarlo en Skype. Para ello, dentro del mismo menú de configuración del servicio, elegimos la opción "Canales". Por defecto, aparece el canal "Web Chat".

    Figura 17: Conexión del blog a distitnos canales.
    Figura 17: Conexión del blog a distitnos canales.

    Hay disponibles una gran cantidad de canales. Entre los destacados, tenemos Cortana, Direct Line, Microsoft Teams y Skype. Pero también se puede publicar el bot en canales como Telegram, Facebook Messenger, Slack o incluso por correo.

    Figura 18: Opciones de canales disponibles
    Figura 18: Opciones de canales disponibles

    Seleccionamos como canal Skype. En la página "Publicar" podemos configurarlo con todo detalle, añadiendo datos como el nombre del Bot, una descripción, asignarle un categoría, indicar quién es el editor, el mercado al que está dirigido, la compatibilidad de idioma, datos de condiciones de uso y privacidad etc. Con esa información, si se envía a revisión a Microsoft (con el botón que aparece justo al final del formulario), el bot se podrá publicar en Skype y su vínculo de acceso se podrá distribuir a un número ilimitado de usuarios. Pero vamos a hacer algo mucho más sencillo.

    Figura 19: Publicación "oficial" en Skype.
    Figura 19: Publicación "oficial" en Skype.

    En nuestro caso, como no pretendemos dejar el bot en producción, optaremos por una opción muy simple, pero que al mismo tiempo, nos permite ver perfectamente cómo funcionaría el bot en Skype. Volvemos a la página principal de "Conectarse a Canales", y vemos que ahora ya están disponibles dos: Web Chat y Skype. Seleccionamos la opción "Obtener los códigos para insertar de los bots":

    Figura 20: Seleccionamos Obtener los códigos...
    Figura 20: Seleccionamos Obtener los códigos...

    Copiamos el código para insertar el bot en Skype en un fichero .txt, le cambiamos la extensión de .txt a .html y lo abrimos.

    Figura 21: Código para insertar el bot en Skype
    Figura 21: Código para insertar el bot en Skype.

    Al abrirse el navegador, tenemos un bonito botón de agregar a Skype. Pulsamos "Add to Skype":

    Figura 22: Al ejecutar el código de inserción en un sencillo html podemos acceder al botón "Agregar a Skype".
    Figura 22: Al ejecutar el código de inserción en un sencillo html podemos acceder al botón "Agregar a Skype".

    Si no tenemos sesión iniciada, nos pedirá hacerlo y después nos aparece la siguiente pantalla con la opción de agregar el bot a nuestros contactos en Skype.

    Figura 23: Agregamos el bot a Skype como contacto

    Una vez agregado el bot, si entramos en Skype y seleccionamos "+", podemos "Agregar nuevos bots"


    Figura 24: Desde Skype, buscamos el bot para iniciar una conversación.
    Figura 24: Desde Skype, buscamos el bot para iniciar una conversación.


    Buscamos por el nombre de nuestro bot:


    Figura 25: Buscamos por el  nombre del bot.
    Figura 25: Buscamos por el  nombre del bot.

    Y una vez agregado, ya podemos chatear con él y hacerle nuestra pregunta favorita. ¿Qué es algoritmo?. 

    Figura 26: Consultamos nuestro Diccionario Tecnológico a través de Skype por medio de un bot.

    Ya podemos chatear en Skype con nuestra Datapedia gracias al bot que hemos creado. Como veis, no es que sea difícil, sino más bien un poco largo. Y tampoco es que nuestro bot sea muy comunicativo. Le tenemos que preguntar por el término concreto, pero no sabe saludarnos, no sabe distinguir entre distintas formas de preguntar lo mismo... tiene mucho que aprender. Aquí, y ahora sí que sí, es donde se hace imprescindible el trabajo del desarrollador, muchas veces acompañado de expertos en comunicación o lingüística que ayuden a redactar las formas más habituales de plantear una pregunta, o, por ejemplo, cómo responder a preguntas malintencionadas.

    Esperamos, no obstante, que este pequeño experimento os haya ayudado a comprender qué es un bot, cómo funciona y las múltiples formas en que se pueden aplicar a muchas tareas que realizamos habitualmente.



    No comments:

    Post a Comment