🧠 Memory Problem
LLM stateless — প্রতি conversation থেকে নতুন। User-এর past preference, history মনে রাখতে external memory দরকার।
📊 Memory Type
- Short-term — current conversation context
- Episodic — past conversation summary
- Semantic — facts about user (name, preference)
- Procedural — how user likes things done
🛠️ Memory Architecture
User Message
↓
[Memory Retriever] ← Vector DB (past memory)
↓
Augmented Prompt (system + memory + message)
↓
LLM Response
↓
[Memory Extractor] → Save important fact
↓
Vector DB updated
💻 Simple Memory System
from openai import OpenAI
import chromadb
client = OpenAI()
db = chromadb.PersistentClient("./memory")
collection = db.get_or_create_collection("user_memory")
def save_memory(user_id, fact):
collection.add(
documents=[fact],
metadatas=[{"user_id": user_id, "ts": time.time()}],
ids=[f"{user_id}_{uuid.uuid4()}"]
)
def get_memories(user_id, query, k=5):
results = collection.query(
query_texts=[query],
n_results=k,
where={"user_id": user_id}
)
return results["documents"][0]
# Usage
memories = get_memories("user_123", current_message)
system = f"User context: {memories}\n\nRespond personalized."
🎯 Production Frameworks
- Mem0 — open source, easy API
- Letta (MemGPT) — research-grade memory
- Zep — managed memory platform
- LangChain Memory — multiple types built-in
💡 Mem0 Example
from mem0 import Memory
m = Memory()
# Add memory
m.add("User loves spicy Thai food", user_id="alice")
m.add("Allergic to peanut", user_id="alice")
# Retrieve relevant
memories = m.search("dinner suggestion", user_id="alice")
# Returns: [Thai food preference, peanut allergy]
⚖️ Privacy ও Ethics
- User explicit consent before storing
- "Forget me" feature mandatory (GDPR)
- Sensitive data (health, finance) — separate handling
- Encrypt at rest
- Audit log: কী save হলো, কে access করলো
- Default: less is more
🎓 মূল কথা ⭐
Memory = relationship। User feel "AI আমাকে চেনে" হলে retention 10x। তবে privacy-first design। Trust break হলে আর recover হয় না।