Saltearse al contenido

Redis Memory

Bienvenido al componente Redis Memory. Este nodo es fundamental para dotar a tus asistentes de IA de una “memoria” persistente, permitiéndoles recordar información importante entre diferentes interacciones o sesiones. Utiliza Redis, un motor de almacenamiento rápido y confiable, para asegurar que tus datos (ya sean mensajes simples o información vectorizada para búsquedas inteligentes) estén disponibles cuando los necesites.

¿Cómo funciona?

Imagina que Redis Memory es como un archivista inteligente y extremadamente rápido. Cuando tu sistema o flujo de trabajo genera información (como el historial de una conversación o el estado de una tarea), este componente toma esos datos y los guarda en un servidor central (Redis).

En lugar de perder la información cada vez que se reinicia una sesión, Redis Memory la guarda en categorías organizadas por Claves (Keys). Además, si estás trabajando con IA, puede transformar el texto en “vectores” numéricos (usando modelos de Embedding) para que tu sistema pueda buscar información por significado, no solo por palabras exactas.

Internamente, este componente se conecta a tu servidor Redis configurado. Puede operar de dos formas principales:

  1. Memoria de Sesión: Guarda datos específicos para una conversación o sesión actual.
  2. Búsqueda Semántica: Si está configurado con un modelo de Embedding, puede almacenar y recuperar información basada en similitudes de significado, facilitando la creación de bases de conocimiento.

Conexión y Credenciales

Este componente requiere que tengas acceso a un servidor Redis. Aunque la configuración detallada del servidor se hace a nivel de infraestructura, asegúrate de tener la siguiente información a mano para configurar el nodo:

  • URL del Servidor Redis: Incluye el host, puerto y, si es necesario, el nombre de la base de datos.
  • Autenticación: Si tu servidor requiere usuario y contraseña, asegúrate de que estén configurados correctamente en tu entorno de Nappai.

Para usar este componente en tu flujo de trabajo, asegúrate de haber establecido la conexión adecuada en los parámetros del sistema.

Entradas

Los siguientes campos están disponibles para configurar este componente. Ten en cuenta que la mayoría son configuraciones invisibles que determinan cómo se comporta el nodo internamente, mientras que otros son esenciales para vincular tus datos.

  • Redis Server Connection URL: La URL completa para conectarse a tu servidor de Redis. Es el puente principal que permite al sistema leer y escribir datos.
  • Session ID: (Requerido) El identificador único de la sesión actual. Esto es crucial para que Redis sepa a qué “caja” o memoria pertenecen los datos de esta conversación específica.
  • Conversation ID: (Requerido) El identificador único de la conversación. Ayuda a diferenciar múltiples hilos de chat dentro de una misma sesión.
  • Embedding: (Opcional - HandleInput) Si deseas realizar búsquedas inteligentes (semánticas), debes conectar aquí la salida de un modelo de Embedding (como OpenAI, HuggingFace, etc.). Este componente convierte tu texto en números para poder buscar por significado.
  • Enable Checkpointing: (Opcional - Boolean) Activa o desactiva la creación de puntos de control para recuperar el estado del sistema en momentos específicos.
  • Enable Store: (Opcional - Boolean) Activa o desactiva el almacenamiento físico de los datos en Redis.
  • Embedding Dimension: (Opcional - Integer) La dimensión vectorial que espera tu modelo de embedding. Debe coincidir con la configuración del modelo que hayas seleccionado.
  • Enable Semantic Search: (Opcional - Boolean) Si activas este interruptor, habilitas la capacidad de buscar información por similitud de significado en lugar de solo por coincidencia exacta de texto. Requiere que hayas conectado un modelo de Embedding.

Nota: La mayoría de estas entradas (como el URL de conexión o los IDs de sesión) son configuraciones que se establecen al inicio del flujo y no se ven directamente en las operaciones de edición de mensajes.

Salidas

Este componente devuelve la información solicitada, lista para ser utilizada por otros nodos en tu automatización.

  • Memory: Es la salida principal. Contiene los datos recuperados del servidor Redis.
    • Tipo de Dato: Puede ser texto, JSON, o estructuras de datos complejas, dependiendo de lo que hayas guardado previamente.
    • Uso: Conecta esta salida a un nodo de “LLM” (para dar contexto a la IA) o a un nodo de “Parsear JSON” si la memoria contiene estructuras estructuradas.

Ejemplo de Respuesta JSON

Cuando solicitas memoria, el sistema devuelve los datos que guardaste con esa clave. Aquí tienes un ejemplo de lo que podría contener la salida Memory: json { “content”: “El cliente prefirió el plan Gold por su soporte 24/7.”, “timestamp”: “2023-10-27T10:30:00Z”, “metadata”: { “sentiment”: “positive”, “tags”: [“sales”, “premium”] } }

En un flujo de trabajo, usarías este JSON para que la IA sepa que el cliente es de la categoría “Premium” y que valora el soporte, ajustando así su respuesta.

Conectividad

Este nodo es un hub de almacenamiento. Lógicamente, se conecta de la siguiente manera:

  1. Recibe datos de:

    • Nodos de Proceso de Texto: (Ej. “Clean Text”, “Extract Data”) que preparan la información antes de guardarla.
    • Modelos de LLM: En algunos flujos avanzados, un LLM puede escribir directamente en esta memoria tras analizar un documento.
  2. Envía datos a:

    • Modelos de LLM (LLM Node): Para proporcionar contexto. La IA lee la memoria guardada para responder con más precisión.
    • Nodos de Procesamiento de Vectores: Si activaste la búsqueda semántica, los vectores generados pueden ser analizados por otros nodos para calcular distancias o similitudes.

Ejemplo de Uso

Escenario: Crear un historial de preferencias de clientes para un chatbot de ventas.

  1. Inicio: El usuario envía un mensaje: “Me gusta el plan Gold”.
  2. Procesamiento: Un nodo extrae el dato “Plan Gold”.
  3. Almacenamiento: Conectas la salida del dato extraído al nodo Redis Memory. Configuras el Session ID con el ID del chat actual y activas Enable Store. El nodo guarda la preferencia en Redis.
  4. Uso posterior: El usuario pregunta: “¿Qué plan me recomiendas?”.
  5. Recuperación: El nodo Redis Memory recupera la preferencia “Plan Gold” y la envía al nodo Memory.
  6. Respuesta: El LLM recibe esa memoria y responde: “Basado en tus preferencias, el Plan Gold sigue siendo ideal para ti”.

Consejos y Mejores Prácticas

  • Consistencia de Claves: Asegúrate de que el Session ID y el Conversation ID sean únicos y consistentes. Si cambian inesperadamente, el sistema no podrá recuperar la memoria guardada.
  • Uso de Embeddings: Si tu base de conocimientos es grande, usa el campo Enable Semantic Search. Buscar por palabras clave exactas puede ser impreciso, pero buscar por significado (vectores) permite encontrar respuestas aunque las palabras no coincidan exactamente.
  • Gestión de Memoria: Si usas Redis para memorias a largo plazo, vigila el tamaño de los datos. Redis es rápido pero tiene límites de memoria en el servidor.
  • Desarrollo vs. Producción: Ten en cuenta que este componente está en fase de desarrollo activo (is_development = True). Revisa su estabilidad si lo usas en un entorno crítico de producción y actualiza tu versión de Nappai regularmente.

Consideraciones de Seguridad

  • Protección de Datos: Redis Memory almacena datos persistentemente. Asegúrate de que tu servidor Redis esté protegido con contraseña y, si es posible, cifrado en tránsito.
  • Acceso a la Base de Datos: No expongas la interfaz de Redis (puerto 6379) directamente a internet sin una capa de seguridad, para evitar accesos no autorizados a la memoria de tus usuarios.
  • Limpieza de Datos: Implementa políticas de expiración (TTL) en Redis si no necesitas retener los datos indefinidamente, para cumplir con normativas de privacidad y ahorrar espacio.