La construcción de software flexible, para resolver un problema, brinda a quienes lo construyeron, el poder de replicarlo y reutilizarlo en diferentes contextos.
Las empresas de tecnología, por ejemplo, crean software a diario y casi siempre lo reutilizan para resolver nuevos tipos de problemas aún más complejos. Piense en un banco. Incluso antes de crear una aplicación, capaz de mostrarle el saldo al titular de una cuenta, una institución financiera necesita un software capaz de procesar el saldo del cliente durante las últimas 24 horas. Idealmente, si este mismo cliente desea consultar su saldo a través del sitio web del banco, se utilizará el mismo software de procesamiento para mostrarle los valores. Ten en cuenta que el software de procesamiento se ha convertido en un activo bancario y puede/debe reutilizarse siempre que sea necesario.
En el mundo de los bots sucede algo muy parecido. Tu empresa puede contar con diferentes puntos de relación con los clientes, subdivididos por productos o canales. Sin embargo, es un hecho que en algún momento el tema/contenido que se está discutiendo puede ser el mismo en diferentes lugares.
Pensando en este problema, Blip desarrolló el concepto de bots y subbots. A través de un enrutador bot - responsable de administrar los subbots, es posible crear una jerarquía de subbots que trabajan juntos durante la interacción del usuario.
Una de las ventajas de trabajar en este modelo es tener la posibilidad de reutilizar un bot ya construido dentro de un nuevo bot. Imagina, por ejemplo, una empresa que tiene sucursales en México y EE. UU. La sucursal mexicana necesita un bot capaz de satisfacer las solicitudes de los clientes en español, mientras que la sucursal norteamericana necesita la aplicación para poder satisfacer las solicitudes de los clientes en inglés.
En este escenario, una solución interesante sería construir dos bots, uno para cada idioma y contexto cultural. Sin embargo, la empresa acaba de cerrar un nuevo contrato y abrirá una nueva sucursal en Dublín, Irlanda, un país que tiene el inglés como idioma oficial, pero tiene una gran concentración de personas que hablan español. Ahora será necesario construir un nuevo bot capaz de responder a los clientes según el idioma preferido del cliente (español o inglés).
Una posible solución para este escenario es construir un nuevo bot con la replicación de todos los datos/contenidos de los bots creados previamente. Sin embargo, esta no es una solución muy flexible, ya que los datos se duplicarían en diferentes ubicaciones.
A través de la jerarquía de bots y subbots de Blip, es posible resolver este problema agregando 2 bots nuevos. El primero será el enrutador bot, el bot de la sucursal irlandesa, capaz de conversar en cualquier idioma, y el segundo será el bot principal, responsable de averiguar el idioma preferido del usuario y enviarlo a uno de los bots existentes. (México o EE. UU.). El siguiente dibujo muestra la arquitectura de esta solución.
Ten en cuenta que los subbots continúan trabajando para servir a las sucursales (México y EE. UU.) directamente, y ahora también pueden ayudar a servir a los clientes en Irlanda de forma indirecta. Además, cualquier corrección o cambio realizado en las aplicaciones de la sucursal mexicana de la sucursal estadounidense también estará disponible para el bot irlandés.
Antes de comenzar a utilizar la jerarquía de bots y subbots de Blip, debes comprender algunos conceptos teóricos:
Bot Router (o enrutador del bot) - es responsable de administrar los subbots. Este es el bot que verá el cliente, por lo que es este bot el que debería publicarse y probarse en los canales. El enrutador bot no tiene reglas ni contenido, solo tiene la referencia de todos los subbots. Cualquier enrutador bot debe tener al menos 1 subbot.
Main SubBot (subBot principal) - cada vez que un usuario habla con un bot enrutador por primera vez, se le dirige al subbot principal de la jerarquía. Es el responsable de definir, por primera vez, qué subbot atenderá al cliente. Si el enrutador bot tiene solo un bot será, obligatoriamente, el bot principal.
Subbot - cualquier bot que pertenezca a la jerarquía de un enrutador bot.
Servicio - cada subbot se reconoce como un servicio de enrutador de bot. Este nombre es necesario para que los subbots con el mismo nombre puedan usarse dentro de un enrutador de bot. Deberás darle un nombre (nombre del servicio) a cada subbot. Este será el nombre utilizado para hacer referencia a tu subbot durante el intercambio entre bots.
Caducidad de la redirección - es posible definir un tiempo de inactividad para cada subbot. Imagina un subbot que solo puede atender al cliente en un momento específico. De esa forma, el tiempo de vencimiento define un límite, en segundos, del período durante el cual este subbot debe estar activo en la conversación con relación a la última interacción del cliente.
Para explicar, paso a paso, cómo implementar una arquitectura de bot y subbot similar al ejemplo de este texto, preparamos el artículo Cómo crear um bot router con 3 subbots.
Si tienes alguna pregunta, utiliza nuestro foro http://forum.blip.ai.
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃