DEV Community

Cover image for De preguntas sencillas a conversaciones inteligentes: Cómo crear un chatbot con memoria real
Hazel Saenz for AWS Español

Posted on

De preguntas sencillas a conversaciones inteligentes: Cómo crear un chatbot con memoria real

Crea un chatbot potente con memoria real con Vercel AI SDK, Mem0, AWS CDK y Astro. Este artículo explica paso a paso cómo crear una IA conversacional capaz de recordar interacciones pasadas y ofrecer respuestas en función del contexto, impulsada por Claude a través de Amazon Bedrock. Más información sobre la arquitectura, los beneficios y cuándo utilizar este enfoque para los asistentes de soporte, los robots de aprendizaje, las aplicaciones personalizadas y la narración interactiva.

Hace unos meses, me propuse un desafío: quería crear un chatbot que fuera más allá de responder a preguntas aisladas, uno que pudiera recordar conversaciones pasadas y mantener el contexto real. Tras varios ensayos e iteraciones, diseñé una arquitectura que no solo es potente sino que también es escalable y fácil de implementar.

Ahora quiero explicarte cómo puedes crearlo también, paso a paso, con el SDK de IA de Vercel, Mem0, un backend sin servidor con AWS CDK y un frontend creado con Astro. En el centro de este chatbot está Claude, de Amazon Bedrock, un modelo que ofrece respuestas naturales y sensibles al contexto.

Requisitos previos

Antes de empezar, asegúrate de tener lo siguiente:

  • Un Cuenta de AWS con permisos para desplegar pilas de CDK.
  • UN Cuenta Mem0 y tu correspondencia Clave de API. Inscríbete en https://mem0.ai.
  • Acceso a Claude a través de Amazon Bedrock en tu región de AWS.
  • Node.js y npm instalados.
  • Conocimientos básicos de TypeScript, la arquitectura sin servidores y cómo usar la terminal.

¿Por qué esta arquitectura?

Necesitaba algo ligero, escalable y fácil de ampliar sin sacrificar la calidad. La combinación del SDK de IA de Vercel y Mem0 me permite centrarme en la lógica empresarial, mientras que el AWS CDK gestiona la infraestructura como código. Astro, por otro lado, ofrece una interfaz rápida y moderna.

¿Qué es el SDK de IA de Vercel?

El SDK de IA de Vercel está diseñado para desarrolladores que quieren integrar la IA en sus aplicaciones sin perder tiempo configurando clientes complejos. Ofrece:
Gestión fluida de las indicaciones y respuestas.
Streaming para obtener respuestas en tiempo real.
Soporte nativo para varios modelos, incluido Claude en Amazon Bedrock.

¿Qué es Mem0?

Mem0 es el componente que permite al bot «recordar». Almacena la conversación y selecciona qué partes del contexto son relevantes para la siguiente interacción. Esto significa:
Conversaciones más coherentes y continuas.
Menos fichas por solicitud (mayor eficiencia y menor coste).
Una experiencia de usuario más personalizada.

¿Cuándo utilizar este enfoque?

Esta arquitectura es perfecta cuando tu robot necesita entender y recordar:

  • Asistentes de soporte: donde es fundamental no pedir a los usuarios la misma información repetidamente.
  • Aprender o asesorar a los chatbots: que se adaptan en función del progreso del usuario.
  • Aplicaciones personalizadas: en las que recordar las preferencias o el historial del usuario es clave.
  • Narración o juegos interactivos: en los que el contexto forma parte de la experiencia.

Si tu bot solo responde a preguntas aisladas, este enfoque puede ser «demasiado» para tus necesidades.

Ventajas de esta arquitectura

  • Escalabilidad: Lambda y DynamoDB crecen con tus necesidades.
  • Velocidad: Astro ofrece una interfaz ultrarrápida.
  • Flexibilidad: Puedes cambiar de modelo (Claude, OpenAI, etc.) sin rediseñarlo todo.
  • Rentable: La tecnología sin servidor se adapta perfectamente a los entornos de tráfico variable.

Estructura del proyecto 🏗

El repositorio de chat con memoria incluye dos carpetas principales:
cdk: backend con Lambdas, API Gateway y DynamoDB.
web: interfaz creada con Astro que se conecta al backend.

**Paso 1: **Clonar el repositorio

git clone https://github.com/hsaenzG/chat-with-memory.git
cd chat-with-memory
Enter fullscreen mode Exit fullscreen mode

Paso 2: Implementa el backend con AWS CDK

cd cdk
npm install
aws configure
cdk deploy
Enter fullscreen mode Exit fullscreen mode

Esto crea la API con Lambdas integrado con el SDK de IA de Vercel, Mem0 y Claude.

**Paso 3: **configurar la interfaz con Astro

cd ../web
npm install
Enter fullscreen mode Exit fullscreen mode

Añadir .env:

PUBLIC_API_URL= https://{your-api}.amazonaws.com
Enter fullscreen mode Exit fullscreen mode

Ejecutar localmente:

npm run dev
Enter fullscreen mode Exit fullscreen mode

**Paso 4: **La memoria y Claude (Bedrock)
El backend usa Mem0 y Claude para ofrecer respuestas según el contexto.
Ejemplo:

// This snippet initializes the Mem0 client and handles memory storage/retrieval for conversations.
const memoryClient = new MemoryClient({
  apiKey: process.env.MEM0_API_KEY,
  organizationName: process.env.MEM0_ORG_NAME,
  projectName: process.env.MEM0_PROJECT_NAME,
});

// Claude via Bedrock is then invoked with memory context prepended to the prompt.
const command = new InvokeModelCommand({
  modelId: 'anthropic.claude-v2',
  contentType: 'application/json',
  body: JSON.stringify({
    prompt: fullPromptWithMemories,
    max_tokens_to_sample: 1000,
    temperature: 0.7,
  }),
});
Enter fullscreen mode Exit fullscreen mode

consulta el código completo aquí: https://github.com/hsaenzG/chat-with-memory/blob/main/lambda/hello.ts

Esta configuración permite a tu chatbot:

  • Recuperar la memoria asociada al usuario.
  • Inyecta el contexto relevante a las instrucciones de Claude.
  • Almacena las respuestas del usuario y de la IA como memoria futura para garantizar la continuidad.

Lecciones aprendidas

  1. Divide las tareas en instrucciones específicas para obtener mejores resultados.
  2. Mem0 es esencial para las conversaciones largas.
  3. Claude (Bedrock) ofrece un gran equilibrio entre el contexto y la calidad.

🌟 Repositorio completo: https://github.com/hsaenzG/chat-with-memory
🌟 Sigue explorando, sigue aprendiendo y disfruta del proceso.

Top comments (1)

Collapse
 
darito profile image
David Alonso

Excelente artículo! Voy a anotarlo en la lista de cosas a hacer el fin de semana :D