ChatBots inteligentes con Azure (parte 2): Construcción del Bot

Publicado por Santi Macias el

Microsoft AzureMicrosoft Bot FrameworkCognitive ServicesChatBotsMicrosoftBots

Como explicamos en el primer artículo de ChatBots, Microsoft Bot Framework nos simplifica el trabajo para la construcción y publicación de ChatBots directamente desde el Portal de Azure.

Hoy veremos lo fácil que es construir un Bot Asistente Virtual simulando un departamento de Atención al Cliente de una empresa de telefonía para responder las típicas preguntas frecuentes y lo mejor de todo sin escribir una sola línea de código fuente.

Para ello, usaremos los servicios de Azure Bot Services y QnA Maker donde definiremos tanto infraestructura para nuestro bot como la base de conocimiento con la lista de todas las preguntas y las respuestas.

Requisitos Previos

Para llevar a cabo el ejemplo serán necesarios estos requerimientos:

  • Cuenta de Azure con suscripción y créditos
  • Conocimientos básicos del Portal de Azure
  • Conocimientos básicos acerca de los Cognitive Services
  • Configuraciones de ApplicationID y Secret Keys

Diagrama Conceptual

Para entender mejor de qué estamos hablando veamos un diagrama conceptual de todo el ecosistema que vamos a utilizar para nuestro ejemplo:

Hoy, nos centraremos en la parte de construcción del ChatBot con Microsoft Bot Framework en el portal de Azure y en posteriores artículos seguiremos diseñando el resto de elementos del diagrama.

Creando nuestro Bot en Azure

Nos registramos en el portal en Azure y seleccionamos Bot Services dentro de la categoría AI + MACHINE LEARNING para crear nuestro ejemplo:

alt

Pulsamos +Add para abrir un nuevo diálogo del Bot Service, seleccionamos WebApp Bot y pulsamos Create para llegar al formulario de definición del nuevo Bot:

alt

El formulario nos solicita las características del Bot, el nombre que le daremos (AtencionClientesBot), grupo de recursos, capa de precios, template inicial y el resto de los datos que vemos en la imagen:

alt

Algunos apuntes a tener en cuenta

Pricing Tier: Es la capa de precios para los mensajes del Bot, en nuestra demo usamos la F0 que es gratuita con un límite de 10K mensajes/mes. Es importante saber que estos precios solo son para mensajes y se pueden cambiar más adelante, no tienen que ver con los costes de infraestructura que están definidos en AppService Plan que seleccionemos más abajo.

Bot Template: La plantilla seleccionada nos creará la estructura básica de nuestro proyecto del Bot, en nuestra demo QnA con C# y la solución de Visual Studio lista para descargar como veremos más adelante.

AppService Plan: Es el plan de precios y localización donde se publicará la infraestructura del Bot y según el vuestro puede variar el precio en función de las capacidades de máquina que tengáis seleccionada. Como comenté al inicio, se deben tener conocimientos básicos de uso de Azure y el tema de precios es de los más importantes para no llevaros sorpresas a final de mes.

Por último, antes de pulsar Create, revisaremos bien el formulario para confirmar que los valores están bien, Si todo es correcto, pulsamos Create y en un  minuto, ya lo tendremos listo en el directorio de Bots de Azure, si miramos la barra de notificaciones nos informará en todo momento.

Configurando el Bot en Azure

En este punto, ya tenemos el Bot creado en Azure, volvemos a nuestra lista de Bot Services. Refrescamos si no aparece a la primera en pantalla:

alt

Para abrir la configuración seleccionamos AtencionClientesBot y accedemos al formulario para ver todas las características de nuestro bot, como el título, imagen, el código fuente en opción Build y otros settings que más adelante comentaremos y utilizaremos.

Si somos curiosos, pulsamos en el grupo de recursos: AtencionClientesBot-rg y veremos qué hizo realmente Azure, donde aparecerán todos los recursos asociados a nuestro Bot.

Una vez finalizado estos pasos ya tenemos nuestro Bot listo para probarlo porque Azure lo ha publicado directamente en la ruta que vimos al definirlo.

Probando el Bot en Azure

Para probarlo, volvemos a la lista de Bot Services y seleccionamos nuestro AtencionClienteBot, donde se nos mostrará la pantalla para gestionarlo con todas las opciones que nos ofrece el Portal de Azure:

alt

Como vemos, disponemos de varias opciones para gestionar nuestro Bot y la URL donde esta publicado el Endpoint. Si abrimos un navegador y escribimos: https://atencionclientesbot.azurewebsites.net, veremos cómo nos muestra una web con información y enlaces de ayuda:

alt

También disponemos de la opción Test in Web Chat para simular una conversación con el Bot sin tener que publicarlo en ningún canal:

alt

Si escribimos "hola", nos responde informando que faltan settings QnAAuthKey, QnAEndpointHostName y QnAKnowledgebaseId que ahora no están definidos, para ello necesitamos QnA Maker y será el tema del próximo artículo.

Conclusiones

Hemos visto lo rápido y fácil que resulta la creación e implementación de ChatBot en el portal de Azure con apenas unos cuantos clicks de ratón.

Recordamos que un Bot de Azure, no es más que una aplicación web que expone un API para interactuar con otras aplicaciones y servicios mediante mensajes REST/JSON y debemos integrarlo con otros servicios cognitivos de Azure para enseñarle y dotarlo de inteligencia como veremos en el próximo artículo.

Como siempre, cualquier duda o consulta podéis dejarla en los comentarios.
¡Síguenos en Twitter para estar al día de próximas entregas de la serie!

Autor

Santi Macias

Microsoft Tech Lead en knowmad mood, +20 años trabajando con tecnologías Microsoft actualmente centrado sobretodo en Azure, Cloud Native, DevOps, Docker, Kubernetes, Microservicios y Serverless.