Seguimos Vanesa(@VanesaGC_Flow) y yo(@guanberdolfo) con Bot Framework.
Una vez hemos terminado el Flow, empezaremos con el desarrollo del bot.
Dentro de las herramientas que componen Microsoft Bot Framework tenemos el Bot Connector y el Bot Builder:
El Bot Builder es el SDK que usaremos para desarrollar nuestros bots. Este sdk (en su ultima versión) esta disponible para Node.JS, NET. Core, Python y Java, estos dos últimos en preview.
Este SDK también incluye herramientas para facilitarnos el uso de los servicios cognitivos durante la creación de nuestro chatbot.
Mas información en: https://docs.microsoft.com/es-es/azure/bot-service/?view=azure-bot-service-4.0
El Bot Channel Registration es un servicio que nos ofrece Microsoft para conectar nuestro chatbot con los diferentes canales soportados: Webchat, Facebook , Telegram , Skype , Teams.
Para usar el Connector no es necesario que nuestro bot este creado con el SDK de Bot Builder, pero en ese caso necesitaríamos que el bot siguiera el formato de mensajes API REST que usa el Bot Connector.
Mas información en: https://docs.microsoft.com/es-es/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0
El Bot Emulator es otra herramienta con la que podemos probar nuestro chatbot sin tenerlo conectado al Bot Connector, mientras lo vamos creando usando el Bot Builder.
Enlace de descarga del Bot Emulator: https://github.com/microsoft/BotFramework-Emulator
Antes de empezar con los pasos a seguir para conectar un Chatbot con Teams queremos decirles que en el siguiente github tenemos el código y el tutorial para arrancar el bot: https://github.com/hectorgd/botwithflow
LUIS o LANGUAGE UNDERSTANDING INTELIGENT SERVICE
Uno de los problemas que surge con los chatbots es saber interpretar cual es el mensaje que el usaurio intenta decir a nuestro bot. De este problema surge LUIS (Language Understanding Intelligent Service).
LUIS es un servicio de Microsoft Cognitive Services que nos da la posibilidad de generar un modelo que nos permita obtener la intención del usuario. Para ello nos vamos a la web de https://eu.luis.ai/ y generaremos nuestra aplicación que contendrá nuestro modelo
Una vez tengamos nuestra aplicación creada vamos al apartado de “Crear” o “Build”, en el veremos varias opciones y varios términos como Intenciones o Entidades. Nosotros vamos a crear una intención de prueba que sea AddGroup y que será la intención para crear un grupo en el bot.
¿Qué es una intención? Pues una intención es la acción que quiere realizar el usuario. En nuestro caso el usuario dira algo parecido a “quiero crear un grupo” pues la intención será CrearGrupo
Después tenemos las Entities o Entidades que son valores que nos pueden venir dentro de una intención. Un ejemplo sería que el usuario dijera “quiero crear un grupo con el nombre MyTeam” si creamos una entidad de GroupName nos devolvería MyTeam como entidad dentro de la intención CrearGrupo.
Vemos que dentro de la intención AddGroup hemos añadido posibles frases para esta intención y al mismo tiempo vemos que algunas de ellas contienen la entidad de GroupName que será el nombre del grupo.
Hay diferentes tipos de entidades siendo las más usadas las entidades predefinidas, que están ya hechas y nos ayudaran a sacar de un texto , pues la fecha si nos dicen por ejemplo mañana o el próximo lunes.
También podemos crearnos nuestras propias entidades y decirle de que tipo son
Como publicar un un bot en Teams
Para publicar un chatbot en Teams compatible con Microsoft Bot Framework primero crearíamos un Bot Channel Registration en Azure. Esta parte esta explicada en mi github: https://github.com/hectorgd/botwithflow
Una vez lo tengamos y lo configuremos para que apunte al endpoint de nuestro bot lo que haremos será activar el canal de Teams
Vale ya tenemos el bot en Teams pero ¿Cómo le podemos hablar?
Para poder hablarle a nuestro bot en Teams tenemos que generar una App para Teams que incluya nuestro Bot , suena más difícil de lo que realmente es.
Vamos a necesitar añadir una App a nuestro Teams llamada App Studio, la cual nos facilitara la vida a la hora de crear una App para Teams.
Una vez tengamos nuestra app añadida a Teams pues vamos a pestaña que dice Manifest Editor, con la cual generaremos el zip de nuestra aplicación.
Tras darle a crear App nos pedirá un montón de información de nuestra aplicación , como el nombre que tendrá , una descripción , como se usa ,las url de privacidad y uso y el icono que tendrá.
Pero también veremos que hay un apartado de ¡BOTS¡
Cuando le demos a Bots nos saldrá un menú parecido a este donde tendremos que seleccionar a añadir un bot existente
Pondremos el nombre que aparecerá en Teams y el AppId que aparece en el Bot Channel Registration y le damos a guardar.
Una vez configurado nos debería de salir algo parecido a esto:
Una vez tengamos el bot configurado nos va a salir la siguiente ventana para finalizar, en ella nos va a salir 3 opciones y dependiendo de lo que queramos vamos a elegir una u otra.
Si le damos a Install nos instalara la aplicación en el Teams actual, si le damos a Download nos descargara nuestra aplicación con un Zip con lo que podremos instalarla en otro Microsoft Teams
Y la última opción nos permitirá publicar nuestra app al directorio de aplicaciones de Teams, tras una verificación por parte del equipo de Teams.
Si queremos mantener nuestra app privada recomendamos las dos primeras opciones.
Si elegimos la opción de Download , para instalarla en otro Teams será en la siguiente opción dentro del menu de aplicaciones en Teams:
Nos saldrá un explorador de archivos y elegiremos nuestro fichero zip que hemos descargado.
Con esto podemos buscar a nuestro bot que nos saldrá tanto en conversaciones o también podemos añadirlo como miembro de un equipo y todos los miembros podran hablarle
Para poder hablarle dentro de un equipo es necesario que lo invoquemos con @NombreDelBot en nuestro caso tenemos que poner @Flowy + la pregunta.
¿No has leido la parte 3?. Pincha aquí para leerla.
Espero que les haya sido de ayuda y nos vemos en el próximo post