diff --git a/libs/langchain-mongodb/langchain_mongodb/index.py b/libs/langchain-mongodb/langchain_mongodb/index.py index f2c99c94..e4582b07 100644 --- a/libs/langchain-mongodb/langchain_mongodb/index.py +++ b/libs/langchain-mongodb/langchain_mongodb/index.py @@ -20,15 +20,18 @@ def _vector_search_index_definition( path: str, similarity: str, filters: Optional[List[str]] = None, + vector_index_options: dict | None = None, **kwargs: Any, ) -> Dict[str, Any]: # https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-type/ + vector_index_options = vector_index_options or {} fields = [ { "numDimensions": dimensions, "path": path, "similarity": similarity, "type": "vector", + **vector_index_options, }, ] if filters: diff --git a/libs/langchain-mongodb/langchain_mongodb/vectorstores.py b/libs/langchain-mongodb/langchain_mongodb/vectorstores.py index 9437150e..911f56ab 100644 --- a/libs/langchain-mongodb/langchain_mongodb/vectorstores.py +++ b/libs/langchain-mongodb/langchain_mongodb/vectorstores.py @@ -213,6 +213,7 @@ def __init__( dimensions: int = -1, auto_create_index: bool | None = None, auto_index_timeout: int = 15, + vector_index_options: dict | None = None, **kwargs: Any, ): """ @@ -257,6 +258,7 @@ def __init__( path=embedding_key, similarity=relevance_score_fn, wait_until_complete=auto_index_timeout, + vector_index_options=vector_index_options, ) @property @@ -829,6 +831,7 @@ def create_vector_search_index( filters: Optional[List[str]] = None, update: bool = False, wait_until_complete: Optional[float] = None, + vector_index_options: dict | None = None, **kwargs: Any, ) -> None: """Creates a MongoDB Atlas vectorSearch index for the VectorStore @@ -867,6 +870,7 @@ def create_vector_search_index( path=self._embedding_key, similarity=self._relevance_score_fn, filters=filters or [], + vector_index_options=vector_index_options, wait_until_complete=wait_until_complete, **kwargs, ) # type: ignore [operator]