Saltearse al contenido

Astra DB Chat Memory

Astra DB Chat Memory es un componente de Nappai que guarda y recupera los mensajes de una conversación en una base de datos Astra DB.
Con él, las respuestas de tu asistente de IA pueden recordar lo que se dijo antes, manteniendo el contexto de la conversación a lo largo del tiempo.

¿Cómo funciona?

Cuando configuras el componente, Nappai crea una conexión con tu instancia de Astra DB usando el token de aplicación y el endpoint que has guardado en la credencial “Astra DB API”.
El componente necesita tres piezas de información:

  1. Collection Name – el nombre de la colección dentro de Astra DB donde se guardarán los mensajes.
  2. Namespace – opcional, permite organizar las colecciones dentro de un espacio de nombres.
  3. Session ID – identifica la sesión de chat; todos los mensajes con el mismo ID se agrupan juntos.

Al iniciar una conversación, el componente escribe cada mensaje en la colección indicada.
Cuando el asistente necesita continuar la conversación, lee los mensajes anteriores de la misma sesión y los devuelve como un objeto BaseChatMessageHistory.
Esto permite que el modelo de lenguaje mantenga el contexto sin tener que cargar todo el historial en memoria local.

Entradas

Antes de usar el componente, sigue estos pasos:

  1. Configura la credencial “Astra DB API” en la sección de credenciales de Nappai.
    • Debes introducir el token de aplicación y el endpoint de Astra DB.
  2. Selecciona esa credencial en el campo Credential del componente.

Los campos que debes rellenar son:

  • Collection Name: El nombre de la colección dentro de Astra DB donde se guardarán los mensajes.
  • Namespace: (Opcional) El espacio de nombres dentro de Astra DB para la colección.
  • Session ID: Identificador de la sesión de chat.

Nota: No aparece un campo llamado “Credential” en la lista de entradas; simplemente selecciona la credencial que has creado.

Salidas

  • Memory: Un objeto BaseChatMessageHistory que contiene todos los mensajes de la sesión actual.
    Este objeto se puede usar como entrada para otros componentes de LangChain que necesiten el historial de conversación.

Ejemplo de Uso

  1. Añade el componente “Astra DB Chat Memory” al flujo de tu dashboard.
  2. Configura:
    • Collection Name: chat_history
    • Namespace: (dejar vacío si no lo necesitas)
    • Session ID: {{session_id}} (puedes usar una variable que se genere al iniciar la conversación)
  3. Conecta la salida Memory a un componente de generación de texto (por ejemplo, “OpenAI LLM”).
  4. Cuando el usuario envía un mensaje, el flujo:
    • Guarda el mensaje en Astra DB.
    • Recupera el historial completo con Memory.
    • Lo pasa al modelo de IA para generar una respuesta contextualizada.

Componentes Relacionados

  • LCChatMemoryComponent – la clase base que define la interfaz de memoria de chat.
  • AstraDBChatMessageHistory – la implementación específica que interactúa con Astra DB.
  • OpenAI LLM – componente que puede usar la salida Memory para generar respuestas.

Consejos y Mejores Prácticas

  • Usa un nombre de colección descriptivo (ej. support_chat, sales_bot) para facilitar la gestión de datos.
  • Limita el número de mensajes que guardas en una sesión si tu aplicación necesita conservar solo los últimos N intercambios.
  • Revisa la política de retención de Astra DB para asegurarte de que los datos se borran cuando ya no son necesarios.
  • Evita exponer el token en el flujo; confía en la credencial gestionada por Nappai.
  • Prueba la conexión con un pequeño conjunto de mensajes antes de desplegar en producción.

Consideraciones de Seguridad

  • Token y Endpoint: Se almacenan en la credencial “Astra DB API” y no aparecen en el flujo.
  • Acceso a la base de datos: Asegúrate de que solo los usuarios autorizados tengan permiso para crear o modificar credenciales.
  • Encriptación: Astra DB cifra los datos en reposo; sin embargo, revisa la configuración de tu instancia para cumplir con los requisitos de tu organización.
  • Auditoría: Habilita el registro de auditoría en Astra DB para rastrear quién accede a los mensajes de chat.