Postgres Memory
Este componente actúa como una memoria a largo plazo para tu asistente de IA en el sistema Nappai. Utiliza PostgreSQL como un almacenamiento robusto y seguro, permitiendo guardar “memorias” (datos contextuales, estados de procesos o información importante) para que puedan ser recuperados más tarde.
Es ideal para crear asistentes que “recuerden” información entre diferentes interacciones o que mantengan el estado de una conversación compleja a lo largo del tiempo.
¿Cómo funciona?
Imagina que este componente es un archivador digital seguro. Cuando un dato importante (como las preferencias del usuario, el estado de una tarea automatizada o el resumen de una conversación) entra al componente, este lo guarda en una tabla específica dentro de tu base de datos PostgreSQL.
En lugar de perder la información al cerrar una sesión, el componente la almacena con una clave única (Memory Key). Cuando necesitas esa información nuevamente, simplemente solicitas la clave y el componente busca en la base de datos y te devuelve el dato guardado.
Además, soporta búsqueda semántica, lo que significa que no solo puedes buscar por la clave exacta, sino también por significado (si estás usando modelos de embedding conectados), lo que facilita encontrar información relevante basada en el contexto.
Conexión y Credenciales
Este componente requiere una conexión previa a tu base de datos. No ingresas contraseñas o URLs directamente en el nodo, sino que utilizas una Credencial preconfigurada para mayor seguridad.
- Dirígete a la sección de Credenciales en el panel de Nappai.
- Crea una nueva credencial del tipo Postgres SQL.
- Nota: Asegúrate de guardar la URL de conexión completa en el campo
PostgresSQL Server Connection URL. El formato suele ser:postgresql://user:password@host:port/database?sslmode=require.
- Nota: Asegúrate de guardar la URL de conexión completa en el campo
- Vuelve a este componente y en el campo Credential, selecciona la credencial que acabas de crear.
Entradas
A continuación se describen los campos necesarios para configurar el componente. Ten en cuenta que muchos de estos campos están vinculados a la lógica interna de memoria y pueden no requerir interacción directa en todos los flujos, pero están disponibles para una configuración avanzada.
- Embedding: Modelo de embedding para convertir texto en vectores numéricos. Se usa para habilitar la búsqueda semántica (buscar por significado en lugar de por palabra exacta). Conecta aquí un componente de embedding (como OpenAI o HuggingFace) si deseas usar la búsqueda inteligente.
- Visible en: Operaciones que soporten búsqueda semántica.
- Enable Checkpointing: Activa o desactiva la creación de puntos de control. Útil para guardar el estado intermedio de procesos largos.
- Visible en: Operaciones que soporten checkpoints.
- Enable Store: Activa o desactiva el almacenamiento de la memoria. Si lo desactivas, el componente solo leerá datos pero no los guardará.
- Visible en: Todas las operaciones.
- Embedding Dimension: El tamaño de los vectores numéricos. Debe coincidir con la configuración de tu modelo de embedding.
- Visible en: Operaciones que soporten búsqueda semántica.
- Session ID: El espacio de nombres para el almacenamiento. Ayuda a separar memorias de diferentes usuarios o sesiones para evitar conflictos.
- Visible en: Todas las operaciones.
- Conversation ID: Identificador específico para la conversación actual. Permite agrupar memorias relacionadas con una misma interacción.
- Visible en: Todas las operaciones.
- Enable Semantic Search: Habilita la búsqueda semántica con vectores. Requiere que hayas conectado un modelo en el campo Embedding.
- Visible en: Operaciones que soporten búsqueda.
Salidas
Estas son las información que el componente te devuelve para que puedas usarlas en el siguiente paso de tu flujo de automatización:
- Memory: El dato recuperado (texto, estructura JSON o similar) que fue almacenado previamente con la clave indicada.
Ejemplo de Respuesta JSON
Si el componente recupera una memoria exitosamente, podrías recibir una estructura similar a esta: json { “memory”: { “user_preferences”: { “theme”: “dark”, “language”: “es” }, “last_task_status”: “pending” }, “success”: true }
Conectividad
Este componente se conecta lógicamente con:
- Componentes de Procesamiento de Lenguaje (NLP/LLM): Para enviar el contexto recuperado (“Memory”) al asistente de IA, permitiendo que responda basado en datos previos.
- Componentes de Embedding (OpenAI, HuggingFace, etc.): Para convertir texto en vectores y habilitar la búsqueda semántica avanzada.
- Otros Componentes de Memoria: Para encadenar múltiples capas de almacenamiento o recuperar contexto de diferentes fuentes.
Ejemplo de Uso
Escenario: Configurar un asistente de soporte técnico que recuerde el historial de incidencias de cada usuario.
- Guardado: Cuando un usuario reporta un problema, conectas el texto del reporte al campo Memory Value del componente “Postgres Memory”, usando el Session ID del usuario como clave.
- Recuperación: En la siguiente interacción del mismo usuario, el componente recupera el reporte anterior usando la misma Session ID.
- Resultado: El campo Memory devuelve el reporte anterior, permitiendo al asistente contextualizar su respuesta (ej: “Veo que ya reportaste este error antes, aquí hay una solución…”).
Consejos y Mejores Prácticas
- Uso de Claves Únicas: Siempre utiliza Session ID o Conversation ID claros y únicos para evitar que la memoria de un usuario se mezcle con la de otro.
- Validación de Credenciales: Asegúrate de que tu base de datos PostgreSQL esté accesible desde el servidor de Nappai antes de configurar el componente.
- Manejo de Errores: Si la recuperación falla, revisa los campos de salida Success y Error para diagnosticar si fue un problema de conexión o de clave inexistente.
Consideraciones de Seguridad
- Seguridad de Credenciales: Nunca compartas la cadena de conexión (URL) de tu base de datos directamente. Usa siempre la sección de Credenciales de Nappai para gestionar accesos de forma segura.
- Acceso a Datos: Asegúrate de que solo los usuarios autorizados puedan acceder a las memorias almacenadas, especialmente si contienen datos sensibles del usuario.
- Respaldo de Base de Datos: Dado que este componente usa PostgreSQL para persistencia, es crucial mantener respaldos regulares de tu base de datos para no perder el contexto histórico de las automatizaciones.