[Mem0] Update dependencies and make the package lighter (#1708)
Co-authored-by: Dev-Khant <devkhant24@gmail.com>
This commit is contained in:
@@ -1,31 +1,34 @@
|
||||
from typing import Optional, Dict
|
||||
from pydantic import BaseModel, Field, model_validator
|
||||
|
||||
|
||||
class VectorStoreConfig(BaseModel):
|
||||
provider: str = Field(
|
||||
description="Provider of the vector store (e.g., 'qdrant', 'chroma')",
|
||||
default="qdrant",
|
||||
)
|
||||
config: Optional[Dict] = Field(
|
||||
description="Configuration for the specific vector store",
|
||||
default=None
|
||||
description="Configuration for the specific vector store", default=None
|
||||
)
|
||||
|
||||
_provider_configs: Dict[str, str] = {
|
||||
"qdrant": "QdrantConfig",
|
||||
"chroma": "ChromaDbConfig",
|
||||
"pgvector": "PGVectorConfig"
|
||||
"pgvector": "PGVectorConfig",
|
||||
}
|
||||
|
||||
@model_validator(mode="after")
|
||||
def validate_and_create_config(self) -> 'VectorStoreConfig':
|
||||
def validate_and_create_config(self) -> "VectorStoreConfig":
|
||||
provider = self.provider
|
||||
config = self.config
|
||||
|
||||
if provider not in self._provider_configs:
|
||||
raise ValueError(f"Unsupported vector store provider: {provider}")
|
||||
|
||||
module = __import__(f"mem0.configs.vector_stores.{provider}", fromlist=[self._provider_configs[provider]])
|
||||
module = __import__(
|
||||
f"mem0.configs.vector_stores.{provider}",
|
||||
fromlist=[self._provider_configs[provider]],
|
||||
)
|
||||
config_class = getattr(module, self._provider_configs[provider])
|
||||
|
||||
if config is None:
|
||||
@@ -40,4 +43,4 @@ class VectorStoreConfig(BaseModel):
|
||||
config["path"] = f"/tmp/{provider}"
|
||||
|
||||
self.config = config_class(**config)
|
||||
return self
|
||||
return self
|
||||
|
||||
Reference in New Issue
Block a user