Pasar al contenido principal
Cargando...

Integración de un bot basado en IA generativa en Whatsapp

Inspiring technology by Hunters

Nuestros Hunters siguen trayéndonos más novedades tecnológicas. En esta ocasión nos hablan de la Integración de un bot basado en IA generativa en Whatsapp. ¡Sigue leyendo!

¿Alguna vez has tenido que realizar una tarea sencilla con la que has perdido más tiempo del que esperabas? Esto es algo que sucede con regularidad. Buscar un listado de clientes o facturas, enviar un correo o buscar información de un repositorio remoto son algunos de los problemas a los que se tiene que hacer frente en momentos inesperados y que, seguro, alguna vez has deseado poder hacerlo sin tener que interrumpir tus tareas. Por suerte, contamos con una herramienta basada en inteligencia artificial generativa que ayudará a resolver estos problemas de la forma más sencilla posible.

¿Qué es la IA generativa?

En estos últimos años ha habido un gran progreso y aumento de modelos de inteligencia artificial avanzados en muchos ámbitos. Hoy en día puedes generar en cuestión de pocos segundos texto, audio, imágenes e incluso video, algo que hace unos años nos parecía impensable. Todas estas herramientas de inteligencia artificial pertenecen a un grupo concreto: las IAs generativas.

La IA generativa se encarga de crear nuevas ideas y contenido a partir del aprendizaje de otro ya existente. Todas las IAs se enfocan en aprender a imitar la inteligencia humana, pero esta se dedica a resolver nuevos problemas y a crear resultados basados en la información de la que dispone. Es de gran utilidad en muchos campos, pero sobre todo como apoyo a profesionales, ayudándoles a resolver tareas sencillas y tediosas en menor tiempo y con menor esfuerzo.

Para ello, se han creado numerosos sistemas, pero hoy nos centraremos en uno de gran interés en lo que respecta a la creación de chatbots que permitan contestar ciertas inquietudes con mayor o menor especialización.

Puesta en marcha

Esta herramienta es de gran utilidad para usuarios y clientes, pero, ¿qué pasaría si nos centramos en su uso para resolver problemas reales y no solo en ofrecer las soluciones? Con esta propuesta en mente, hemos trabajado para crear un prototipo que permita mostrar el potencial de utilizar una herramienta como esta.

Nuestro programa consiste en un chatbot accesible desde WhatsApp, especializado en dar solución a problemas básicos con la menor intervención del usuario y mediante lenguaje natural.

Debido a la necesidad de incorporar inteligencia artificial, el primer paso es seleccionar una de las IAs conversacionales que se ofertan hoy día y utilizar su API para conectar con nuestro programa. Hemos buscado alternativas Open Source gratuitas que no limitasen el envío de mensajes y nos decantamos por Ollama (Open Language Learning for Machine Autonomy), una herramienta que nos permite poner en marcha grandes modelos de lenguaje (LLM) en un entorno local. Esto no solo nos permite poner en marcha en un pod de Kubernetes un modelo de lenguaje en funcionamiento, sino que al ser Ollama una plataforma para ejecutar modelos y no un modelo en sí, podemos cambiar entre los muchos modelos de lenguaje que permite utilizar y adaptarlo dependiendo del tipo de respuesta que necesite el usuario.

Por otro lado, para poder utilizar WhatsApp como medio de comunicación, hemos tenido que obtener un número sandbox digital que permita añadir un bot. Esto lo hemos conseguido con Twilio, una plataforma creada para facilitar la conexión de aplicaciones y, mayoritariamente, chatbots a WhatsApp.

Funcionamiento del flujo de nuestra aplicación

 

El flujo de nuestra aplicación funcionaría como lo vemos en la imagen superior. Desde WhatsApp consumimos los mensajes del usuario, que serán procesados por Twilio y recogidos mediante su API por nuestro Java SVC.

Desde aquí, dicho mensaje será enviado a la IA generativa de Ollama junto con datos contextuales que faciliten la precisión en la respuesta. Una vez obtenida, se devuelve a nuestro Java SVC, que procederá a utilizarla para conectar y procesar la instrucción generada en el servicio pertinente (en nuestro caso, una base de datos o GitHub, pero podría ser cualquier aplicación que permita comunicación mediante API).

En resumen, nuestra aplicación traduce el lenguaje natural del usuario al lenguaje necesario para consumir una API de cierto servicio. A continuación, exponemos dos ejemplos de su uso:

Trabajo con base de datos

Una de las funcionalidades que hemos puesto en práctica es dar soluciones precisas a problemas de base de datos. A partir de la orden del usuario, nuestro programa se encargará de pasarle a la IA la petición, además del contexto que le permita responder de forma adecuada (normalmente aportando querys de base de datos). Una vez recibido esto, la respuesta es utilizada por el programa para acceder a la base de datos del usuario y hacer los cambios o consultas para después pasarlas al usuario. Esto permite realizar funciones de base de datos sin necesidad de acceder a la misma y tener que escribir código. Además, al hacer estas consultas desde el programa y no directamente desde la IA, evitamos cualquier tipo de violación de la confidencialidad de datos.

- Trabajo con base de datos

 

Trabajo con GitHub

De modo similar, podemos trabajar con GitHub haciendo consultas y cambios sin necesidad de acceder a la propia aplicación. El funcionamiento es el mismo: el usuario envía una petición en lenguaje natural y la IA contesta de manera que la API de GitHub pueda comprender para así obtener los resultados que, por último, serán devueltos como respuesta al usuario.

- Trabajo con GitHub:

Futuras ampliaciones:

  • Integración con otras plataformas: Incorporar el bot en Telegram, Slack y Microsoft Teams, permitiendo a los usuarios acceder a sus funciones desde diferentes plataformas de comunicación y colaboración.
  • Entrenar el modelo para mejorar su optimización: Esto nos posibilita que lo que conteste la IA pueda ser utilizado para acceder a otros servicios y obtener datos o realizar modificaciones sin que el usuario acceda a ellos directamente.
  • Automatización de flujos de trabajo: Extender las capacidades para automatizar tareas repetitivas en servicios como Docker, Kubernetes y CI/CD, permitiendo a los desarrolladores ejecutar despliegues y procesos con mayor facilidad.
  • Soporte multilingüe: Añadir soporte para múltiples idiomas para hacer el bot más accesible a usuarios internacionales.
  • Seguridad mejorada: La aplicación analizará el teléfono del mensaje recibido y conseguirá el usuario asociado. Tras esto, se comprobará si el usuario tiene permisos para acceder al uso de la aplicación.
  • Nuevos modelos de lenguaje: Ampliar el repertorio con modelos especializados en infraestructura y DevOps para abarcar más ámbitos técnicos y mejorar la especialización.
  • IoT: El bot puede utilizarse para controlar luces, termostatos, cámaras de seguridad y otros dispositivos conectados directamente desde WhatsApp. De esta forma, el bot actuaría como un asistente inteligente similar a Alexa, facilitando la automatización del hogar y el monitoreo de entornos laborales desde el mismo chat.
  • Soporte para más bases de datos: Para tener más amplitud de opciones y respuestas, lo ideal es que nuestro SVC sea capaz de procesar peticiones a diferentes tipos de bases de datos además de PostgreSQL.

Conclusiones

Como hemos podido comprobar, existe un gran potencial al juntar un chatbot con inteligencia artificial generativa. No solo sirve para dar respuesta a preguntas de manera amplia y natural, sino que puede especializarse y configurarse con otras aplicaciones que pueden llegar a convertirse en una herramienta imprescindible tanto para los profesionales de hoy en día como para el resto de usuarios. Nuestro programa es solo un prototipo que intenta demostrar las grandes capacidades de este enfoque, pero la cantidad de personalización y ampliación para satisfacer toda clase de necesidades es prácticamente infinita.

¿Quieres saber más sobre Hunters?

Ser un hunter es aceptar el reto de probar nuevas soluciones que aporten resultados diferenciales. Únete al programa Hunters y forma parte de un grupo transversal con capacidad de generar y transferir conocimiento.

Anticípate a las soluciones digitales que nos harán crecer. Consulta más información sobre Hunters en la web.

LinkedIn

Francisco Fernández
Técnico de Software
Altia

Ruben Gadea

Ruben Gadea
Técnico de Software
Altia