/mem0

The memory layer for Personalized AI

Primary LanguagePython

Mem0 Logo

Mem0 Slack Mem0 Discord Mem0 Twitter Y Combinator S24 mem0ai npm package mem0ai Python package on PyPi

Mem0: The Memory Layer for Personalized AI

Mem0 provides a smart, self-improving memory layer for Large Language Models, enabling personalized AI experiences across applications.

Note: The Mem0 repository now also includes the Embedchain project. We continue to maintain and support Embedchain ❀️. You can find the Embedchain codebase in the embedchain directory.

πŸš€ Quickstart

Installation

pip install mem0ai

Basic Usage (Open Source)

If you are looking for a hosted version and don't want to setup the infrastucture yourself, checkout Mem0 Platform Docs to get started in minutes.

import os
from mem0 import Memory

os.environ["OPENAI_API_KEY"] = "xxx"

# Initialize Mem0
m = Memory()

# Store a memory from any unstructured text
result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="alice", metadata={"category": "hobbies"})
print(result)
# Created memory: Improving her tennis skills. Looking for online suggestions.

# Retrieve memories
all_memories = m.get_all()
memory_id = all_memories[0]["id"] # get a memory_id
print(all_memories)

# Search memories
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")
print(related_memories)

# Update a memory
result = m.update(memory_id=memory_id, data="Likes to play tennis on weekends")
print(result)

# Get memory history
history = m.history(memory_id=memory_id)
print(history)

πŸ”‘ Core Features

  • Multi-Level Memory: User, Session, and AI Agent memory retention
  • Adaptive Personalization: Continuous improvement based on interactions
  • Developer-Friendly API: Simple integration into various applications
  • Cross-Platform Consistency: Uniform behavior across devices
  • Managed Service: Hassle-free hosted solution

πŸ“– Documentation

For detailed usage instructions and API reference, visit our documentation at docs.mem0.ai.

πŸ”§ Advanced Usage

For production environments, you can use Qdrant as a vector store:

from mem0 import Memory

config = {
    "vector_store": {
        "provider": "qdrant",
        "config": {
            "host": "localhost",
            "port": 6333,
        }
    },
}

m = Memory.from_config(config)

πŸ—ΊοΈ Roadmap

  • Integration with various LLM providers
  • Support for LLM frameworks
  • Integration with AI Agents frameworks
  • Customizable memory creation/update rules
  • Hosted platform support

πŸ™‹β€β™‚οΈ Support

Join our Slack or Discord community for support and discussions. If you have any questions, feel free to reach out to us using one of the following methods: