Cómo guardar logs de mensajes de watsonx Assistant utilizando Webhooks
En los proyectos donde utilizamos watsonx Assistant como asistente conversacional, es crucial contar con un mecanismo para registrar los mensajes intercambiados entre los usuarios y el asistente. Esto permite analizar conversaciones, mejorar respuestas y auditar interacciones. Una forma eficiente de lograrlo es mediante el uso de webhooks, los cuales pueden extender la funcionalidad del asistente y conectarlo con sistemas externos.
En este artículo, explicaré cómo crear un microservicio para guardar logs de los mensajes enviados al asistente utilizando el tipo de webhook Log
. Este microservicio almacenará los datos en una base de datos MongoDB y estará listo para integrarse con watsonx Assistant.
¿Qué son los webhooks en watsonx Assistant?
Un webhook es un mecanismo que permite realizar llamadas desde el asistente hacia un servicio externo durante una conversación. El webhook de tipo Log
es particularmente útil para registrar cada mensaje y respuesta generados en el asistente, sin necesidad de condiciones adicionales.
El flujo típico de un webhook Log
es el siguiente:
- El usuario envía un mensaje al asistente.
- El asistente procesa el mensaje y genera una respuesta.
- El webhook se activa, enviando el mensaje y su respuesta al microservicio configurado.
- El microservicio almacena la información, permitiendo su análisis posterior.
Creando el microservicio para guardar logs
El siguiente código muestra un ejemplo de microservicio desarrollado con FastAPI. Este microservicio se encarga de recibir los mensajes del webhook Log
, validarlos y almacenarlos en una base de datos MongoDB.
Para implementar el microservicio que registra los logs de mensajes del asistente, debemos seguir los siguientes pasos:
Paso 1: Crear el ambiente virtual
Ejecuta los siguientes comandos en tu terminal:
Paso 2: Crear el archivo requirements.txt
Este archivo contendrá las dependencias del proyecto. Crea un archivo llamado requirements.txt
con el siguiente contenido:
Paso 3: Instalar las dependencias
Ejecuta el siguiente comando para instalar las librerías necesarias:
Con esto, el ambiente virtual estará configurado y las dependencias listas para usar.
Paso 4: Crear el archivo de configuración
Es necesario configurar las credenciales y parámetros de conexión a MongoDB. Para esto, crearemos un archivo llamado config.py
con el siguiente contenido:
Además, debemos crear un archivo .env
en el mismo directorio con las variables de entorno necesarias, como este ejemplo:
Esto permitirá cargar la configuración de manera centralizada y segura.
Paso 5: Crear los modelos de datos
Ahora definiremos los modelos necesarios para validar y estructurar los datos recibidos del webhook. Crea un archivo llamado models.py
con el siguiente contenido:
Estos modelos permiten estructurar los datos enviados por watsonx Assistant, garantizando que sean válidos y estén completos antes de ser procesados.
Paso 6: Implementar el microservicio
Con la configuración y los modelos listos, podemos implementar el microservicio. Este se encargará de recibir los logs, validarlos y almacenarlos en MongoDB. Aquí está el código completo del microservicio en main.py
:
Integrando el microservicio con Watsonx Assistant
Una vez que el microservicio está configurado y ejecutándose, el siguiente paso es integrarlo con watsonx Assistant mediante el uso de webhooks. Aquí te explico cómo hacerlo paso a paso:
Conclusión
Utilizar webhooks de tipo Log es una excelente estrategia para centralizar y analizar las interacciones entre usuarios y el asistente. Con este enfoque, podrás almacenar de manera segura y eficiente todos los mensajes en una base de datos, habilitando capacidades avanzadas como análisis de datos, auditorías o visualización de métricas.