Liferay Smart webs powered by GPT

Hace un año ChatGPT irrumpió en nuestras vidas de forma inesperada, transformando nuestra interacción con la tecnología y abriendo nuevas posibilidades en el ámbito de la inteligencia artificial. En este breve periodo toda la maquinaria empresarial se ha puesto manos a la obra en potenciar sus herramientas dotándolas de una capa de “inteligencia”. Con el propósito de enriquecer la experiencia de usuario hemos aprovechado el conocimiento conjunto para integrar GPT y Liferay.

¿Cuál fue el objetivo?

La meta principal fue potenciar Liferay permitiendo que, al contribuir contenidos, se pudiesen etiquetar como “contenidos GPT”. De esta manera, GPT podría analizarlos y responder preguntas a través de un widget de chat que se pudiese incrustar en cualquier página de Liferay.

Manos a la obra

Trabajando en conjunto con el equipo de Asistentes Conversacionales, buscamos una solución que fuese equilibrada en tiempo, mantenible, que siguiese el camino que está marcando Liferay y que apostase por la seguridad en los datos, una preocupación compartida por todos.

Integración con GPT

Desde el lado de Asistentes Conversacionales se desarrolló y desplegó un microservicio en Azure el cual tiene varios cometidos. Este servicio “escucha” cada actualización de contenido marcado como GPT que se produzca en Liferay, permitiendo así entrenar el modelo conversacional de GPT de manera inmediata. Además, se encarga de gestionar las consultas del web chat operando con los modelos de embeddings. Para lograrlo se configuró un sistema que permite a GPT analizar los contenidos etiquetados aprovechando las capacidades de procesamiento de lenguaje natural. De esta manera, el sistema genera respuestas coherentes y contextualmente relevantes.

Este enfoque garantiza tanto la eficiencia en el entrenamiento continuo del modelo, como la generación de una respuesta coherente y adaptada a la situación, mejorando significativamente la calidad de la interacción conversacional.

 

Configuración en Liferay

Aprovechamos todas las funcionalidades nativas que proporciona Liferay, combinando Objects y Client Extensions para la generación de contenidos e integración del web chat de manera sencilla y eficiente. Este enfoque no solo es eficiente en términos de desarrollo, sino que también se alinea perfectamente con la filosofía de Liferay.

¿Por qué Objects?

Los Objects se integran con todos los frameworks de Liferay, esto significa que entre otras muchas cosas podremos tratarlos como un Asset más de caja al igual que un Web Content, realizar búsquedas sobre los Objects que creemos y además en el momento de publicación del Object se creará automáticamente un API Rest y GraphQL para realizar cualquier operación CRUD sobre el Object creado, todo ello sin “tirar una sola línea de código” aprovechando el enfoque de Low Code / No Code.

Si os interesa todo lo relacionado con Objects y Low Code / No Code en este mismo blog podréis ampliar vuestro conocimiento:

¿Para qué los usamos?

Para la generación de contenidos: Vamos a generarlos como entradas de un Object, cada entrada puede tener múltiples campos sobre los cuales GPT podrá consultar, por ejemplo, Título y Descripción. Esta generación se podrá realizar manualmente desde la administración o si lo preferimos mediante API Rest ya sea de forma unitaria o de forma masiva mediante Batch APIs, podríamos también crear un formulario con fragments en una página de contenido, la opción elegida dependerá del caso de uso en concreto por ello Liferay siempre ofrece múltiples formas de hacer las cosas.

Para la actualización de contenidos: Usaremos las Acciones de los Objects para definir que en cada creación, modificación o eliminación de un contenido se realice una llamada mediante un Webhook a un microservicio el cual se encargará de entrenar el modelo GPT.

Veámoslo paso a paso:

Abriremos el menú de aplicaciones y haremos clic en el apartado de Objetos. En segundo lugar, crearemos un nuevo Object desde el botón de "Añadir objeto":

En el formulario de creación cumplimentaremos los campos.

El próximo paso es personalizar nuestro objeto añadiendo los campos que necesitemos y acciones para que se comunique con el microservicio, para ello editaremos el objeto creado.

En la tab “Campos” añadiremos dos campos de texto llamados “Title” y “Content”:

Por último, en la tab “Acciones” añadiremos acciones para que en el momento de creación, actualización o eliminación de una entrada del objeto haga un POST con los datos al microservicio que va a entrenar el modelo de GPT.

Como se ha comentado anteriormente, vamos a usar una acción de tipo webhook en la cual especificaremos el endpoint correspondiente del microservicio que tenemos creado y el desencadenador, que en cada caso será el correspondiente a la acción que queremos realizar. Por ejemplo, en la acción de actualización el desencadenador será “Después de actualizar”.

Una vez publiquemos este objeto tendremos la configuración preparada para que pueda albergar la información deseada y pueda ser analizada por GPT.

Únicamente faltaría añadir esta información como entradas al objeto creado del modo que más nos guste.

¿Por qué Client Extensions?

Las Client Extensions permiten la extensión de Liferay incorporando funcionalidades adicionales del mismo modo que Objects sin desarrollar un módulo OSGi aprovechando Low Code / No Code. Podremos desplegar estas Client Extensions en cualquier entorno ya sea onpremise o en cloud, esto nos aporta flexibilidad para cualquier tipo de instalación que tengamos.

¿Cómo las usamos?

Aprovechamos esta funcionalidad para integrar el web chat en las páginas de Liferay, este web chat es una aplicación en React que puede estar funcionando en el mismo servidor o en otro diferente.

Veámoslo paso a paso:

Para crearlas es tan sencillo como abrir el menú de aplicaciones y acceder al apartado de Aplicaciones personalizadas > Aplicaciones. En este apartado, crearemos un nuevo Elemento personalizado:

En el formulario de creación añadiremos los datos de nuestro web chat:

Y con estos pasos ya tendremos el web chat integrado en Liferay en cualquier página.

Resultado

Este enfoque garantiza eficiencia en el entrenamiento continuo del modelo, generando respuestas coherentes y adaptadas a la situación y mejora significativamente la calidad de la interacción conversacional, elevando la experiencia del usuario.

Veamos un ejemplo práctico en el que tenemos información sobre seguridad en la empresa, esta información son entradas en nuestro objeto, los hemos mostrado en una página a modo consulta y en esta página tenemos integrado el web chat, pero no es necesario que los contenidos estén en una página para que el web chat pueda responder sobre ellos.

Lanzaremos una pregunta sobre seguridad y nos proporcionará una respuesta en base a los contenidos marcados como GPT, la información obtenida puede obtenerse de uno o varios contenidos, GPT se encargará de cruzar la información y naturalizar esta respuesta.

What’s next Coming soon…
 

Ebook IA

Tags

IA
He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA