PRACTICAL BOT DEVELOPMENT
FICHA
Foto Título:            PRACTICAL BOT DEVELOPMENT: DESIGNING AND BUILDING BOTS WITH NODE.JS AND MICROSOFT BOT FRAMEWORK
Autor:            Szymon Rozga
Editorial:       Apress
Idioma:         Inglés
Páginas:        672
Publicación:  2018
Lectura:         2020
COMENTARIO EDITORIAL
(Fuente: Traducción y ligera elaboración propia de la descripción de producto en Amazon)

Explora el concepto de bot y descubre los motivos para trabajar en este nuevo tipo de aplicaciones con plataformas de mensajería. Este libro es un recurso accesible que enseña los conceptos básicos que hay detrás del diseño e implementación de bots. Cada capítulo se apoya en los temas anteriores y, cuando es conveniente, se muestra código real que implementa los conceptos. Con solo usar un editor de código, puedes empezar a crear hoy mismo experiencias bot inteligentes y atractivas.

'Practical Bot Development' te enseñará cómo crear tus propios bots en plataformas como Facebook Messenger o Slack, extenderlos con APIs, y aplicar algoritmos de Inteligencia Artificial y Machine Learning en la nube. Al finalizar el libro, estarás equipado con la información necesaria para alcanzar a miles de nuevos usuarios con los bots que crees. Este libro es un gran recurso para aquellos que buscan obtener los beneficios de contruir sus propios bots apoyándose en la viabilidad de plataformas.

Lo que aprenderás:
  • Entender la arquitectura general de un bot

  • Distinguir entre lo que es una gran experiencia y una mala experiencia con bots

  • Explorar las ideas que hay tras el procesamiento de lenguaje natural y aplicarlo al desarrollo de bots

  • Implementar bots sobre Messenger, Slack y canales a medida usando Node.js y el Microsoft Bot Builder framework.

  • Desplegar bots en Facebook Messenger y Slack.

COMENTARIO PERSONAL

'Practical Bot Development', subtitulado, 'Designing and Building Bots with Node.js and Microsoft Bot Framework', es un tratado largo y completo sobre los conceptos y la construcción de chatbots en el entorno Microsoft, un libro orientado a desarrolladores pero que no elude sino que, por el contrario, explica en mi opinión muy correctamente, algunos aspectos teóricos que hay detrás de forma que tambiñen es una buena vía para aprender conceptos generales sobre chatbots, y más aún teniendo en cuenta las similitudes de conceptos con otras plataformas como el Dialogflow de Google.

Aunque todo el libro es muy práctico y orientado a la ejemplificación medante código real de todos los conceptos, también se preocupa, como se ha dicho, de explicar bien los fundamentos. En ese sentido, hay una cierta tendencia, aunque no radical, a que los primeros capítulos sean algo más conceptuales y en los ultimos, por el contrario, predomine la codificación.

El libro se estructura en catorce capítulos, como sigue:
  • 'Chapter 1: Intorudctions to Chat Bots:' Comienza por los rudimentos básicos: explicar lo que es un chatbot incluyendo un par de ejemplos trivales de código, explicar el auge actual de los chatbots o explorar su utilidad. También describe la anatomía de un chatbot incluyendo el elemento gestor de la conversación y el elemento gestor del lenguaje natural e incluyendo ya conceptos como los 'intents', las entidades y la acciones y la integración con canales.

  • 'Chapter 2: Chat Bot Natural Language Understanding:' Un capítulo más conceptual en que explica las principales ideas sobre entendimiento de lenguaje natural. Define primero un poco el campo de NLU ('Natural Language Understanding') y luego aporta algunos rudimentos sobe machine learning, incluyendo los tipos de aprendizajes y algunos fundamentos sobre los algoritmos empleados. Finalmente explora las tareas que se realizan en el procesamiento de lenguaje natural,

  • 'Chapter 3: Language Understanding Intelligence Service (LUIS):' explica las fundamentos del uso de LUIS, el servicio de entendimiento de lenguahe natural de Microsoft. Explica cómo acceder y crear una aplicación, cómo crear 'intents' y 'utterances' y cómo desplegar una aplicación. Continua hablando del uso de entidades, prestando especial atención a las ya predefinidas como 'age', 'dimension', 'money' y así un bastante extenso etcétera. Luego explica cómo entrenar entidades y cómo crear entidades a medida. Y también se adentra en tipos complejos de entidades como las compuestas, jerárquicas, listas o de expresiones regulares. Además explica aspectos más avanzados como el aprendizaje activo, la integración con la corrección ortográfica, el importado y exportado de aplicaciones o el uso de LUIS mediante API.

  • 'Chapter 4: Conversation design:' Aporta algo de teoría sobre el diseño de conversaciones, como la identificación de casos de uso habituales o su reporesentación mediante grafos. Luego habla de aspectos como las respuestas del bot, la autenticación y autorización o el desarrollo de tarjetas ('cards') especializdas. Finaliza aportando algunas guias y buenas prácticas en el diseño de conmversaciones.

  • 'Chapter 5: Introducing the Microsoft Bot Framework:' Inicia el recorrido más orientado al código y para ello en este capítulo aporta las ideas básicas de Microsoft Bot Framework, especialmente Microsoft Bot Builder SDK. Se explica la instalación y configuración, la conexión con canales, el uso de Microsoft Bot Emulator, la conexión con Azure y se ejemplifica todo con un sencillo bot que interactúa vía Facebook Messenger. Luego se explican algunos conceptois del SDK como sesiones, mensajes, cascadas ('waterfalls'), entradas ('prompts'), diálogos, reconocedores ('recognizers'), los botones o las tarjetas y se ejemplifica todo con un bot que gestiona la agenda

  • 'Chapter 6: Diving into the Bot Builder SDK:' Un extenso capítulo en que profundiza en las capacidades del Bot Builder hablando de los estados de las conversaciones. profundizando en los tipos y uso de los mensajes incluyendo los proactivos, el contenido enriquecido, las acciones sugeridas los canales, los chat grupales, los diálogos personalizados, las acciones o las librerías.

  • 'Chapter 7: Building an Integrated Bot Experience:' Explora la integración del bot con elementos del exterior basándose como ejemplo en la integración con Google Calendar. Comienza con unos temas previos para lo que, tras unas breves palabras sobre autenticación con OAuth 2.0, explica cómo configurar las APIs de Google, cómo integrar la autenticación con el Bot Builder o el mecanismo de login. Y luego ya entra en la integración con el API de Google Calendar y cómo se trata desde el código del bot.

  • 'Chapter 8: Extending Channel Functionality:' En este capítulo pretende ir más allá del uso básico de canales viendo cómo invocar funcionalidad nativa específica propia de cada canal. Para ello se explica la integración con Slack, cómo conectarse, cómo es y cómo usar el API de Slack. Habla de cómo crear mensajes interactivos (mensaje que incluye, además de información, botones y menús) y del uso del multipaso ('multistep').

  • 'Chapter 9: Creting New Channel Connector:' explica cómo hacer que el bot interactue con canales no previstos en la plataforma o de manera personalizada, usando para ello la Direct Line API. Primero explica brevemente en que consiste el API y luego aborda la construcción de un chat web personalizado. Luego habla de los bots de voz y ofrece un ejemplo usando Twilio y, en concreto, el producto Programmable Voice. Posteriormente explica el estandar SSML ('Speech Synthesis Markaup Language') soportado por Google Assitant y Amazon Alexa y cómo se puede hacer conversión texto-voz usando SSML.

  • 'Chapter 10: Making the Chatbot Smarter:' Repasa los servicios cognitivos disponibles en Azure y que pueden ser usados por un bot para corrección ortográfica, análisis de sentimiento, soporte multi-lenguaje, soporte para preguntas-respuestas o visión por computador.

  • 'Chapetr 11: Adaptive Cards and Custom Graphics:' entra en la especialización y personalización en materia de tarjetas y gráficos. Explica y ejemplifica con código las capacidades de las 'Adaptive Cards' de Microsoft y luego aborda los gráficos personalizados usando el concepto de 'headless browsers'.

  • 'Chapter 12: Human Handoff:' Trata del paso del control entre el bot y un humano para las situaciones en que se exceden las capacidades del bot. Tras explicar algunas ideas generales, ejemplifica cómo hacerlo en el caso de Facebook Messenger mediante el uso del Facebook Handoff Protocol.

  • 'Chapter 13: Chatbot Analytics:' Aborda el tema de los indicadores y la analítica en los chatbots explorando primero las preguntas habituales que quisiéramos contestar sobre el uso de los chatbots (demografía sentimiento, retención de usuario, etc) y luego explora plataformas analíticas como el propio dashboard ofrecido por Microsoft pero tambien Facebook Analytics. En el resto del capítulo trabaja, ya más en detalle y con ejemplos de código, con Dashbot y Google Chatbase

  • 'Chapter 14: Applying Our Learnings Alexa Skill Kit:' Capítulo final en que se realiza la integración con Alexa. Se cuentaa cómo crear una nueva skill, las capacidades NLU y de reconocimiento automático de voz de Alexa y se trabaja con el Alexa Skills Kit para Node.js explicando cómo conectar todo con Microsoft Bot Framework.

'Practical Bot Development' es en mi opinión un gran libro porque aporta todo el conocimiento real, práctico y aplicado en código que puede necesitar un desarrollador pero bien escrito y muy bien rodeado de explicaciones de concepto que hacen entender muy bien toda la idea. Muy recomendable para cualquier desarrollador de chatbots en entorno Microsfot y para todo aquel que, queriendo entender qué hacen y cómo los chatbots no se incomode por la abundancia de código o de pantallas de uso de las herramientas.