Close

Trends

¿Por qué no agregarle una capa de inteligencia a tus API?

El concepto inteligencia artificial está en boca de todos, y nadie en el mundo corporativo desconoce su importancia a la hora de optimizar procesos manuales en las empresas. Sin embargo, hoy quiero traerles una mirada más profunda desde la tecnología: cómo sumar inteligencia a dichos procesos, haciéndolos más efectivos, mas amigables y cuidando costos.

Brevemente, una API (Interfaz de Programación de Aplicaciones) define reglas y estructuras que se deben seguir para que la aplicación se comunique con otros sistemas propios o de terceros. Básicamente es el protocolo de intercambio de información (datos) entre distintos componentes de software

Dotar a nuestras APIs de inteligencia implica agregarles “capas de capacidad” para procesar información de manera más inteligente, que sea capaz de tomar decisiones, inferir conclusiones y ofrecer respuestas acordes al contexto. No es simplemente devolver datos; sino que la API pueda entender la solicitud para resolverla de la manera más efectiva para el usuario de la aplicación.

Vayamos a un caso concreto. Tengo una aplicación central que expone en su API el catálogo de productos. Hasta hoy estaba siendo utilizada por el sitio web en una grilla de productos con búsqueda, filtros y ordenamientos.

¿Qué sucede si ahora quiero incorporar un chatbot para ofrecer mis productos? No suena lógico implementar una interface similar, se supone que utilizamos chatbots porque queremos ofrecerle al (posible) cliente una mejor experiencia.

La interacción deseada sería algo muy parecido a esta secuencia:

  • El usuario comienza a interactuar con el chatbot motivado por una línea X de productos que vio en nuestras redes, o por una campaña que le llegó a su mail.
  • Nuestra API principal invoca a la aplicación «búsqueda de productos» con el filtro “línea X”, y recibe una lista de productos coincidentes con esa línea.
  • Nuestra API principal invoca a la aplicación «recomendaciones personalizadas» con esa lista y el nombre del usuario, la aplicación le devuelve esa misma lista con los productos reordenados por prioridad, según el historial del usuario y el comportamiento de otros usuarios de perfil similar.
  • Nuestra API principal invoca a la aplicación «descuentos y promociones” con los primeros productos de esa lista, y recibe descuentos o promociones para ese usuario, en función de las reglas de negocio definidas y los datos conocidos del mismo usuario.
  • Nuestra API principal invoca luego a la aplicación “generación de contenido” con las fichas técnicas de esos productos prioritarios, y un servicio “creativo” le devuelve recomendaciones y argumentos de venta para ese perfil.
  • Finalmente, nuestra API inteligente entrega al agente virtual de ventas todo lo que necesita para entablar una conversación en lenguaje natural y ¡¡¡con las mejores chances de lograr una venta!!!

¿Por qué no?, esa es la pregunta fácil… seguramente a esta altura del artículo se estarán preguntando ¿Cómo lo hago? Las alternativas son varias, dependen del escenario en particular. Mencionemos algunas, sobre el ejemplo anterior.

Lo primero que se debería identificar es el tipo de razonamiento que sería más adecuado para resolver cada una de estas aplicaciones de inteligencia. Por ejemplo:

  • La aplicación «búsqueda de productos» requiere un razonamiento basado en el conocimiento de nuestro catálogo, que se resuelve con una consulta SQL clásica a nuestra base de productos.
  • La aplicación «descuentos y promociones” se solucionaría con razonamiento basado en reglas, implementadas en un árbol de decisiones o en un motor de reglas (por ej. Drools) que determina los descuentos o promociones que aplicar a ese usuario, en función de reglas de negocio definidas previamente.
  • La aplicación «recomendaciones personalizadas» en una primera instancia lo podríamos resolver con razonamiento basado en casos anteriores, con lo que conocemos como cubo OLAP (historial de ventas dimensionado por atributos típicos del comprador). Esa misma capa de recomendaciones personales podría luego evolucionar hacia un razonamiento basado en modelos de IA (Machine Learning). Con un conjunto mayor de datos se entrenan para que puedan recomendar al usuario su “objeto de deseo”, o quizás predecir cómo reaccionará ante determinado estímulo de venta.
  • La aplicación generación de contenido” podríamos decir que requiere de un razonamiento de creatividad controlada, basado en IA Generativa (Large Language Models), que a partir de un conjunto de instrucciones con los que lo reentrenemos, pueda ajustar la respuesta a la entrada del usuario.

Identificados los tipos de inteligencia requeridas aún nos quedan por definir las cuestiones de arquitectura y diseño: cómo se comunican entre sí estas capas, la estrategia para elegir entre varios algoritmos de razonamiento, la cadena de responsabilidad para concatenar procesos de inferencia, si vamos a considerar arquitectura de microservicios para mayor escalabilidad y modularidad, etc.

Ahora faltaría definir los lenguajes de programación (¿Python, Java o .NET?), los frameworks de ML (¿TensorFlow, PyTorch o scikit-learn?), las bases de datos, de grafos, motores de reglas, APIs de terceros, etc.

Tranquilos!!!… Lo importante es que hayan comprendido la conveniencia de contar con estas herramientas en su negocio. En TGV nos podemos encargar de resolverles las inquietudes técnicas y acompañarlos en el proceso de construcción e implementación.

Share this content