Mem0: Memory Layer untuk Aplikasi AI yang Personalized
Salah satu tantangan terbesar dalam membangun aplikasi AI adalah kemampuan untuk mengingat konteks dan preferensi pengguna lintas sesi. Secara default, LLM seperti GPT atau Claude tidak memiliki memori persisten. Setiap percakapan dimulai dari nol. Di sinilah Mem0 hadir sebagai solusi.
Mem0 adalah memory layer open-source yang memungkinkan aplikasi AI Anda menyimpan, mengambil, dan mengelola memori secara cerdas. Dengan Mem0, chatbot Anda bisa mengingat preferensi pengguna, riwayat interaksi, dan konteks penting lainnya.
Mengapa Mem0?
Bayangkan Anda membangun AI assistant untuk customer service. Tanpa memory layer, setiap kali pelanggan menghubungi, AI harus menanyakan ulang informasi dasar. Dengan Mem0:
- AI mengingat nama, preferensi, dan riwayat pelanggan
- Respons menjadi lebih personal dan kontekstual
- Pengalaman pengguna meningkat drastis
- Efisiensi operasional meningkat
Mem0 menggunakan semantic search untuk menemukan memori yang relevan, bukan sekadar keyword matching. Ini berarti AI bisa memahami konteks dan mengambil informasi yang benar-benar relevan.
Instalasi
Pertama, install Mem0 menggunakan pip:
pip install mem0ai
Untuk menggunakan fitur lengkap dengan vector database, install juga dependensi opsional:
pip install mem0ai[qdrant]
Anda juga memerlukan API key dari OpenAI (default) atau provider LLM lainnya:
export OPENAIAPIKEY="sk-your-api-key-here"
Inisialisasi Mem0
Ada dua cara menggunakan Mem0: versi in-memory untuk development dan versi persistent untuk production.
Setup Dasar (In-Memory)
from mem0 import Memory
Inisialisasi dengan konfigurasi default
m = Memory()
Setup dengan Qdrant (Persistent)
from mem0 import Memory
config = {
"vectorstore": {
"provider": "qdrant",
"config": {
"host": "localhost",
"port": 6333,
"collectionname": "mem0memories"
}
},
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o-mini",
"temperature": 0.1
}
},
"embedder": {
"provider": "openai",
"config": {
"model": "text-embedding-3-small"
}
}
}
m = Memory.fromconfig(config)
Operasi Memori Dasar
Mem0 menyediakan empat operasi utama: add, get, search, dan delete.
Menambahkan Memori (Add)
# Menambahkan memori untuk user tertentu
result = m.add(
"Saya suka kopi hitam tanpa gula dan biasanya minum di pagi hari",
userid="user123"
)
print(result)
Output: {'results': [{'id': '...', 'memory': 'Suka kopi hitam tanpa gula', 'event': 'ADD'}]}
Mem0 secara otomatis mengekstrak informasi penting dari teks yang diberikan. Perhatikan bahwa Mem0 tidak menyimpan teks mentah, melainkan mengekstrak fakta dari teks tersebut.
Mengambil Semua Memori (Get)
# Mengambil semua memori untuk user tertentu
memories = m.getall(userid="user123")
for memory in memories:
print(f"ID: {memory['id']}")
print(f"Memory: {memory['memory']}")
print(f"Created: {memory['createdat']}")
print("---")
Mencari Memori (Search)
# Semantic search - mencari memori yang relevan
results = m.search(
"Apa minuman favorit user ini?",
userid="user123"
)
for result in results:
print(f"Memory: {result['memory']}")
print(f"Score: {result['score']}")
Search menggunakan semantic similarity, sehingga query "minuman favorit" akan menemukan memori tentang "kopi hitam" meskipun kata-katanya berbeda.
Menghapus Memori (Delete)
# Menghapus memori spesifik berdasarkan ID
m.delete(memoryid="memoryidhere")
Menghapus semua memori user
m.deleteall(userid="user123")