MongoDB Vector Store misaligned strings and classes (#3064)

This commit is contained in:
Kade Shockey
2025-06-30 23:42:28 -06:00
committed by GitHub
parent 5a1083b709
commit b79bfb7c1e
4 changed files with 14 additions and 37 deletions

View File

@@ -1,6 +1,6 @@
from typing import Any, Dict, Optional, Callable, List
from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, root_validator
from pydantic import BaseModel, Field, model_validator
class MongoDBConfig(BaseModel):
@@ -9,29 +9,12 @@ class MongoDBConfig(BaseModel):
db_name: str = Field("mem0_db", description="Name of the MongoDB database")
collection_name: str = Field("mem0", description="Name of the MongoDB collection")
embedding_model_dims: Optional[int] = Field(1536, description="Dimensions of the embedding vectors")
user: Optional[str] = Field(None, description="MongoDB user for authentication")
password: Optional[str] = Field(None, description="Password for the MongoDB user")
host: Optional[str] = Field("localhost", description="MongoDB host. Default is 'localhost'")
port: Optional[int] = Field(27017, description="MongoDB port. Default is 27017")
mongo_uri: str = Field("mongodb://localhost:27017", description="MongoDB URI. Default is mongodb://localhost:27017")
@root_validator(pre=True)
def check_auth_and_connection(cls, values):
user = values.get("user")
password = values.get("password")
if (user is None) != (password is None):
raise ValueError("Both 'user' and 'password' must be provided together or omitted together.")
host = values.get("host")
port = values.get("port")
if host is None:
raise ValueError("The 'host' must be provided.")
if port is None:
raise ValueError("The 'port' must be provided.")
return values
@root_validator(pre=True)
@model_validator(mode='before')
@classmethod
def validate_extra_fields(cls, values: Dict[str, Any]) -> Dict[str, Any]:
allowed_fields = set(cls.__fields__)
allowed_fields = set(cls.model_fields.keys())
input_fields = set(values.keys())
extra_fields = input_fields - allowed_fields
if extra_fields:

View File

@@ -22,7 +22,7 @@ class OutputData(BaseModel):
payload: Optional[dict]
class MongoVector(VectorStoreBase):
class MongoDB(VectorStoreBase):
VECTOR_TYPE = "knnVector"
SIMILARITY_METRIC = "cosine"