Metadata-Version: 2.4
Name: isage-neuromem
Version: 0.1.0
Summary: NeuroMem - Brain-inspired memory system for AI agents with multi-modal storage
Author-email: IntelliStream Team <shuhao_zhang@hust.edu.cn>
License: Apache-2.0
Project-URL: Homepage, https://github.com/intellistream/NeuroMem
Project-URL: Documentation, https://intellistream.github.io/SAGE/
Project-URL: Repository, https://github.com/intellistream/NeuroMem
Project-URL: Bug Tracker, https://github.com/intellistream/NeuroMem/issues
Keywords: memory,ai,agents,vector-database,knowledge-graph,rag,llm
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Database
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: isage-common>=0.2.0
Requires-Dist: isagedb>=0.1.6
Requires-Dist: numpy<2.3.0,>=1.26.0
Requires-Dist: pyyaml<7.0,>=6.0
Requires-Dist: networkx<4.0,>=3.0
Requires-Dist: python-dateutil>=2.8.0
Requires-Dist: redis<6.0.0,>=5.0.0
Requires-Dist: neo4j<6.0.0,>=5.0.0
Provides-Extra: full
Requires-Dist: redis<6.0.0,>=5.0.0; extra == "full"
Requires-Dist: neo4j<6.0.0,>=5.0.0; extra == "full"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
Dynamic: license-file

# neuromem

**neuromem** is a standalone memory management engine designed for RAG (Retrieval-Augmented Generation) applications. It provides flexible memory collection abstractions with support for vector databases, key-value stores, and graph structures.

## Features

- **Multiple Backend Support**: VDB (Vector Database), KV (Key-Value), Graph
- **Flexible Storage Engine**: Pluggable storage backends for vectors, text, and metadata
- **Powerful Search Engine**: Multiple index types (FAISS, BM25s, etc.)
- **Collection Management**: Create, load, store, and manage memory collections
- **Memory Manager**: Centralized management of multiple collections

## Architecture

```
neuromem/
├── memory_manager.py          # Central manager for collections
├── memory_collection/         # Collection abstractions
│   ├── base_collection.py
│   ├── vdb_collection.py
│   ├── kv_collection.py
│   └── graph_collection.py
├── search_engine/             # Index implementations
│   ├── vdb_index/
│   ├── kv_index/
│   └── graph_index/
├── storage_engine/            # Storage backends
│   ├── vector_storage.py
│   ├── text_storage.py
│   └── metadata_storage.py
└── utils/                     # Utility functions
```

## Quick Start

```python
from neuromem.memory_manager import MemoryManager

# Create manager
manager = MemoryManager()

# Create a VDB collection
config = {
    "name": "my_collection",
    "backend_type": "VDB",
    "description": "My vector database collection"
}
collection = manager.create_collection(config)

# Insert data
collection.batch_insert_data(
    texts=["Hello world", "Goodbye world"],
    metadatas=[{"source": "doc1"}, {"source": "doc2"}]
)

# Create index
index_config = {
    "name": "my_index",
    "embedding_model": "mockembedder",
    "dim": 128,
    "backend_type": "FAISS"
}
collection.create_index(index_config)

# Retrieve
results = collection.retrieve(
    "Hello",
    index_name="my_index",
    topk=5
)
```

## Future Plans

This sub-project will eventually be separated into its own repository and may be rewritten in C++/Rust for better performance.

## License

See LICENSE file in the SAGE project root.
