CorePlus: una plantilla de Microsoft Bot Framework v4

CorePlus: Minimizable Web Chat Component

Tras participar en un proyecto pionero con Microsoft Bot Framework v3, descubrí la necesidad de volver a estudiar la plataforma casi desde cero. Microsoft estaba preparando el lanzamiento de una nueva versión mejorada que incluía muchos cambios respecto de la versión previa. Los cambios eran tan importantes que convertían en obsoletos todos los proyectos de la anterior versión 3. BFv4 es una reescritura completa del framework, con nuevos conceptos, terminología, documentación, arquitectura, etc. En palabras de Microsoft:

Bot Framework SDK V4 es una evolución del muy exitoso SDK V3. V4 es una versión importante que incluye cambios que impiden que los bots V3 se ejecuten en el nuevo SDK de V4.

Microsoft ha creado una colección de ejemplos para facilitar el aprendizaje de su kit de desarrollo de bots, Bot Builder SDK v4, así como un conjunto de plantillas basadas en Yeoman, una herramienta para la generación de estructuras básicas de proyectos de software.
A partir del proyecto generado por una plantilla oficial de Microsoft Bot Framework v4 llamada Core Bot (Node.js), he creado una versión avanzada, CorePlus Bot (Node.js), pensada para desarrollar chatbots Transaccionales, de Preguntas y Respuestas y Conversacionales, todo en uno, al tiempo que promueve las mejores prácticas de diseño. La plantilla propone modificaciones en la estructura y arquitectura del proyecto original, y proporciona soluciones para los problemas técnicos y de diseño que se presentan.

CorePlus implementa las siguientes funcionalidades:

  • Mostrar una Tarjeta de Bienvenida utilizando la tecnología Adaptive Card
  • Usar el servicio cognitivo LUIS para modelar interacciones de tipo: Saludos, pedir Ayuda o Chistes, filtrar Lenguaje Inapropiado, y Cancelar transacciones en curso
  • Usar el servicio cognitivo QnA Maker para modelar conversaciones intrascendentes (chit-chat, small talks) y de tipo Preguntas y Respuestas.
  • Usar diálogos de tipo Waterfall para modelar el flujo de la conversación de ida y vuelta
  • Usar mensajes personalizados para validar la entrada del usuario
  • Conservar información sobre la conversación y el usuario
  • Gestionar las interrupciones de la conversación
  • Permitir la cancelación, y su confirmación, de un diálogo en curso
  • Usar sinónimos de Sí/No para preguntas con respuesta Sí/No
  • Utilizar un comando de reinicio para volver a comenzar la conversación desde el principio
  • Enviar mensajes indicadores de escritura cuando lo considere apropiado
  • Implementar la internacionalización y la conversación multilingüe
  • Usar un componente web de chat minimizable sin utilizar React

El proyecto de software se complementa con un artículo, en inglés, que presenta la plantilla, describe sus características más importantes, y explica por qué están allí y cómo puede sacarle partido.

CorePlus: Web Chat

Aunque la plantilla está lista para ser usada, es un trabajo inacabado, porque el desarrollo del framework subyacente está en continuo avance. Esto significa que CorePlus también debería mantenerse actualizado en consecuencia. Debería adaptarse a los cambios y mejoras del MBFv4 a lo largo del tiempo. También puede y debe ser mejorado con las contribuciones de la comunidad. Sus opiniones, sugerencias y contribuciones son más que bienvenidas. Mantengamos, pues, la conversación.

Enlaces de interés:

CorePlus: a Microsoft Bot Framework v4 template
https://www.codeproject.com/Articles/4254785/CorePlus-a-Microsoft-Bot-Framework-v4-template

Repositorio del proyecto CorePlus en GitHub
https://github.com/hinojosachapel/coreplus