BL.Assistant: Hacia una plataforma de trabajo en equipo entre humanos e inteligencia artificial

Imagen destacada de BL.Assistant.

En el trabajo, puedes tener el mejor puesto de la historia (al menos desde tu punto de vista), pero siempre hay tareas aburridas y repetitivas que te hacen sentir que estás perdiendo el tiempo. En Berger-Levrault, nuestro objetivo es hacerte la vida más fácil, por eso hemos trabajado en BL.Assistant, una plataforma capaz de albergar robots basados en IA para ayudar a los agentes administrativos en sus repetitivas y tediosas tareas diarias.

En recursos humanos, contabilidad y otras actividades administrativas, hay numerosas tareas repetitivas con escaso valor añadido. Estas tareas hacen más pesado el trabajo diario y restan tiempo a los trabajadores, que podrían dedicarlo a actividades más complejas que requieren inteligencia y sutileza humana. El informe publicado recientemente por el Conseil d'Etat francés enumera una increíble cantidad de casos de uso en los que la automatización y la IA podrían mejorar los servicios públicos y liberar a los agentes de tareas de escaso valor añadido.
Además, las actividades administrativas están en plena transformación debido a la digitalización. Por otro lado, la metodología de desarrollo de software también está evolucionando. De hecho, los marcos de software, el conjunto de herramientas gráficas, los conductos de empaquetado y despliegue, y los entornos de desarrollo están en transición para sacar partido de Low-Code/No-Code marcos, RPA (automatización robótica de procesos), y Función como servicio (FaaS), para hacer la vida del desarrollador mucho más fácil. Estos planteamientos nos permiten reconsiderar por completo nuestra forma de desarrollar software de gestión. Estas plataformas ofrecen interfaces gráficas fáciles de usar con unidades preconfiguradas y herramientas para conectarlas. Sin embargo, estas herramientas, una vez utilizadas por separado, no están lo suficientemente maduras como para responder a necesidades complejas, y aún no existe una visión clara sobre sus limitaciones y las funcionalidades que ofrecen una vez conectadas entre sí.

Los marcos Low-Code/No-Code, la automatización robótica de procesos y la función como servicio nos permiten reconsiderar por completo la forma en que desarrollamos el software de gestión.

Por eso empezamos a investigar la creación de una plataforma que pretende resolver el problema de las tareas administrativas repetitivas y tediosas aprovechando la Inteligencia Artificial, el Procesamiento del Lenguaje Natural, la Automatización Robótica de Procesos y la Automatización Inteligente de Procesos. Esta plataforma así denominada BL.Assistant ofrece un mercado de robots programables consumibles a través de una interfaz No-Code/Low-Code para facilitar la automatización de tareas. Esta solución nos permite:

  • Ofrecer al usuario un conjunto de robots y funcionalidades desarrollado de forma fácil y rápida favoreciendo el Low-Code Framework capaz de responder a funciones complejas gracias a sus lenguajes de script integrados.
  • Una plataforma de mando y control que aprovecha las tecnologías Low-Code/No-Code para administrar un conjunto de robots disponibles y programar su ejecución, seguir su progreso, detenerlos, etc. Permite supervisar estas herramientas y su capacidad para responder a nuestro caso de uso.
  • Asegurar un desacoplamiento total entre la parte ejecutiva y la interfaz de usuario. Los robots no están vinculados a una entrada concreta, sino que proporcionan un conjunto de servicios consumibles que pueden ser utilizados por otras aplicaciones. La interacción con ellos debe ser lo más sencilla posible, mediante la llamada a servicios o a una API, por ejemplo.
  • Optimizar continuamente los recursos de cálculo necesarios para las ejecuciones de los robots. BL.Assistant debe integrar de forma nativa una lógica de despliegue sobre la marcha, la programación y la asignación dinámica de recursos basada en el enfoque Serverless.
  • Facilitar la incorporación de nuevos robots al ocuparse de todo el código y las técnicas de los requisitos no funcionales, lo que permite a los desarrolladores centrarse únicamente en el comportamiento y los objetivos del robot.

Dentro de BL.Assistant

La solución se basa en una arquitectura desacoplada con dos pilares, un plan de control y un plan de ejecución. El objetivo de este desacoplamiento es proporcionar un conjunto de servicios "Robots" consumibles que puedan ser utilizados por otras aplicaciones, no vinculadas a una entrada concreta. La siguiente figura ilustra los principales componentes de la arquitectura, así como la distribución de cada componente dentro de cada plan y la interacción entre cada servicio.

BL.Arquitectura auxiliar.
Figura 1: Arquitectura de BL.Assistant

El plan de control permite supervisar, gestionar, configurar y seguir el estado de los robots. Esta parte se compone de una aplicación web desarrollada con la herramienta Low-Code Budibase desde el que planificaremos y lanzaremos los robots. También contiene una base de datos conectada a la aplicación web y a un conector de servidor de streaming en tiempo real que recibe y registra las solicitudes de ejecución y los registros de los robots.
El plan de ejecución se aloja en un servidor distante del dispositivo del usuario. Se basa en una plataforma FaaS de código abierto, OpenFaaSque gestiona las solicitudes de ejecución de los robots, su lanzamiento y supervisa sus funciones. Otro servidor de streaming en tiempo real está presente en este plan (Agente de mensajes Kafka), los robots pasan sus registros en tiempo real al servidor, que los registra en lo que llamamos "tema". Para cada robot se crea un tema diferente.
El último componente de este plan es un servidor de automatización que se encargará de la integración continua y el despliegue automático de nuevos robots en la infraestructura. Este servidor es responsable de la creación de los robots a partir de código puesto en un repositorio de código (por ejemplo Gitlab) y los pone a disposición de OpenFaaS.

La interacción entre estos dos planes se produce de la siguiente manera:

  • Cuando se produce una solicitud de ejecución de un flujo de trabajo en la parte de la interfaz de usuario, los parámetros del flujo de trabajo se envían al cuerpo de una solicitud "API REST" bajo una forma JSON al plan de ejecución, y los archivos adjuntos se suben a la nube, un espacio de almacenamiento distante.
  • Mientras se ejecutan los flujos de trabajo, los robots descargan los archivos adjuntos necesarios para tratar la solicitud y suben los archivos resultantes a la nube, mientras el conector vinculado a la base de datos se suscribe al tema del servidor de streaming y consume los registros emitidos por los robots para mostrarlos en la interfaz de usuario en tiempo real. Al final del proceso, los robots se conectan al servicio de mensajería remota para enviar al usuario por correo electrónico el informe que detalla las tareas realizadas.

¿Qué viene ahora?

El objetivo inicial era facilitar la automatización de tareas repetitivas y tediosas. Para ello, desarrollamos una arquitectura que combina los conceptos de Low-Code/No-Code y RPA para facilitar la automatización y exponerlos como bots programables y consumibles, disponibles para su consumo en interfaces Low-Code/No-Code. No obstante, queremos destacar que se trata de una primera versión del proyecto. En un futuro próximo, queremos proponer robots interactivos que permitan al usuario interactuar con ellos en tareas que requieran cierto nivel de experiencia humana. Esto podría conseguirse de muchas maneras que nos proponemos explorar: como un chatbot, enviando órdenes a un robot a través del correo electrónico, o incluso vocalmente a través del teléfono o del sistema de videoconferencia favorito.

Por supuesto, esta es la primera versión de BL.Assistant, tenemos la intención de seguir explorando cómo esta arquitectura y el sistema pueden responder a las dificultades de los agentes administrativos y cómo permitir un fácil acceso a las últimas tecnologías y características en RPA e IA.

Por Mohamed Moalla

Más ...

Scroll al inicio