Skip to main content

Memuri is a self‑hosted memory infrastructure for AI applications, offering a unified, pluggable SDK to persist and retrieve conversational context with sub‑second latency. It enables any AI agent or assistant to remember key information across sessions—so your apps never forget what matters, while retaining full flexibility to swap storage backends, embedding models, and retrieval strategies.

Project description

Memuri - High-Performance Memory SDK

Memuri is a pip-installable SDK for high-performance, pluggable conversational memory services. Designed for local, self-hosted deployment with sub-second latency and production-grade practices.

Key Features

  • Self-hosted: No external dependencies or licenses required
  • High Performance: Sub-100ms memory operations with Faiss and Redis caching
  • Pluggable Architecture: Swap vector databases, task queues, and LLMs without code changes
  • Production-grade: Integrated OpenTelemetry traces, health checks, and robust CI/CD
  • Memory Categories: Organize context by category (PERSONAL, TASK, QUESTION, etc.)
  • Feedback Loop: Adaptive classification based on user feedback
  • Reranking: Advanced cross-encoder reranking for more relevant results
  • Flexible Configuration: Easy configuration with environment variables, dictionary-based config, or direct settings
  • Multiple Embedding Providers: Support for OpenAI, Google Gemini, Azure, and Sentence Transformers

Getting Started

pip install memuri

Basic Usage

from memuri import Memuri

# Initialize memory with default settings
memory = Memuri()

# Add a memory item
memory.add_memory(content="John's favorite color is blue", category="PERSONAL")

# Search for relevant memories
results = memory.search_memory("What does John like?")
print(results)

Using Config Dictionary

import os
from memuri import Memuri

# Set API key in environment variable
os.environ["OPENAI_API_KEY"] = "your_api_key"

# Create config with specific provider settings
config = {
    "embedder": {
        "provider": "openai",
        "config": {
            "model": "text-embedding-3-small"
        }
    }
}

# Initialize with config
memory = Memuri.from_config(config)

Storing Chat Conversations

# Add a conversation as memory
messages = [
    {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
    {"role": "assistant", "content": "How about sci-fi? I recommend Interstellar."},
    {"role": "user", "content": "I love sci-fi movies!"}
]

# Store the conversation with user ID
await memory.add(messages, user_id="john")

Architecture

Memuri is designed around a layered memory system:

  1. Short-Term Memory: HNSW In-Memory Index + Redis LRU Cache
  2. Long-Term Memory: Pluggable Vector Stores (pgvector, Milvus, Qdrant, Redis Vector)
  3. Memory Triggers: Category classifiers and rule engine for contextual decisions
  4. Feedback Loop: Continuous adaptation based on user interactions

Next Steps

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memuri-0.1.4.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memuri-0.1.4-py3-none-any.whl (57.7 kB view details)

Uploaded Python 3

File details

Details for the file memuri-0.1.4.tar.gz.

File metadata

  • Download URL: memuri-0.1.4.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for memuri-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c7ef6f1c5b79c3de7bbdc8ffe25a23b28f9dc6a5dc44acdd1e336cd7e403767e
MD5 3c718d89470b9580a316fba85e218959
BLAKE2b-256 830d3d5d7929ec16cabad28d97fcafadcc5655438af8eb8b1ad220686ca16c4d

See more details on using hashes here.

File details

Details for the file memuri-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: memuri-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 57.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for memuri-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 debd9f6cc9050e04fd8d2ed608442c9776c22ab8d86204c338510d8e2362cb79
MD5 467b6e7ad2c68206c3fa44b214f8d5c5
BLAKE2b-256 8e2fb86cd4155d6147644a242ca2fa9c2fa76225dc1728abcc69ec3b76d09a51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page