Skip to main content

Storage Systems

Reeflect supports multiple storage backends for flexibility in different deployment scenarios.

Available Storage Options

Local Vector Storage

File-based storage for development and small-scale applications.

LocalVectorStorage

Pinecone Integration

Cloud-based vector database for production deployments.

PineconeVectorStorage

Weaviate Integration

Open-source vector search engine with schema capabilities.

WeaviateVectorStorage

PostgreSQL Integration

SQL-based storage using pgvector for enterprise deployments.

PostgresVectorStorage

Configuring Storage

# Local storage configuration
memory = Reeflect(
adapter=OpenAIAdapter(...),
storage_config={
"type": "local",
"path": "./memory_storage"
}
)

# Pinecone configuration
memory = Reeflect(
adapter=OpenAIAdapter(...),
storage_config={
"type": "pinecone",
"api_key": "your_pinecone_api_key",
"environment": "us-west1-gcp",
"index_name": "reeflect-memory"
}
)

# PostgreSQL configuration
memory = Reeflect(
adapter=OpenAIAdapter(...),
storage_config={
"type": "postgres",
"connection_string": "postgresql://user:password@localhost:5432/memory_db",
"table_name": "memories"
}
)

Custom Storage Implementation

You can implement custom storage backends by extending the base MemoryStorage class:

from reeflect.core.storage import VectorMemoryStorage

class CustomVectorStorage(VectorMemoryStorage):
"""Custom vector storage implementation."""

def __init__(self, connection_string, **kwargs):
self.connection_string = connection_string
self.client = initialize_your_client(connection_string)

def initialize(self) -> None:
# Set up your storage backend
pass

def store(self, memory: Memory) -> str:
# Implement memory storage
pass

def retrieve(self, memory_id: str) -> Optional[Memory]:
# Implement memory retrieval
pass

# Implement other required methods...

# Register your custom storage
from reeflect.core.storage import StorageFactory
StorageFactory.register("custom", CustomVectorStorage)

# Use your custom storage
memory = Reeflect(
adapter=OpenAIAdapter(...),
storage_config={
"type": "custom",
"connection_string": "your_connection_string"
}
)

Next Steps

Now that you understand how to store memories, learn about Retrieval Mechanisms to discover how Reeflect finds the most relevant memories for any context.