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.