diff --git a/src/backend/langflow/interface/initialize/vector_store.py b/src/backend/langflow/interface/initialize/vector_store.py index cc887dfd7..2f7e9dfb1 100644 --- a/src/backend/langflow/interface/initialize/vector_store.py +++ b/src/backend/langflow/interface/initialize/vector_store.py @@ -23,16 +23,23 @@ def docs_in_params(params: dict) -> bool: def initialize_mongodb(class_object: Type[MongoDBAtlasVectorSearch], params: dict): """Initialize mongodb and return the class object""" - MONGODB_ATLAS_CLUSTER_URI = params.get("mongodb_atlas_cluster_uri") + MONGODB_ATLAS_CLUSTER_URI = params.pop("mongodb_atlas_cluster_uri") if not MONGODB_ATLAS_CLUSTER_URI: raise ValueError("Mongodb atlas cluster uri must be provided in the params") from pymongo import MongoClient + import certifi + + client = MongoClient(MONGODB_ATLAS_CLUSTER_URI, tlsCAFile=certifi.where()) + db_name = params.pop("db_name", None) + collection_name = params.pop("collection_name", None) + if not db_name or not collection_name: + raise ValueError("db_name and collection_name must be provided in the params") + + index_name = params.pop("index_name", None) + if not index_name: + raise ValueError("index_name must be provided in the params") - client = MongoClient(MONGODB_ATLAS_CLUSTER_URI) - db_name = "lanchain_db" - collection_name = "langchain_col" collection = client[db_name][collection_name] - index_name = "langchain_demo" if not docs_in_params(params): # __init__ requires collection, embedding and index_name init_args = { diff --git a/src/backend/langflow/template/frontend_node/vectorstores.py b/src/backend/langflow/template/frontend_node/vectorstores.py index 2b9aaecc8..01b6bfe53 100644 --- a/src/backend/langflow/template/frontend_node/vectorstores.py +++ b/src/backend/langflow/template/frontend_node/vectorstores.py @@ -147,9 +147,8 @@ class VectorStoreFrontendNode(FrontendNode): extra_fields.extend((extra_field, extra_field2, extra_field3, extra_field4)) elif self.template.type_name == "MongoDBAtlasVectorSearch": - # add "mongodb_atlas_cluster_uri", - # "collection_name", - # "db_name", + self.display_name = "MongoDB Atlas" + extra_field = TemplateField( name="mongodb_atlas_cluster_uri", field_type="str", @@ -183,7 +182,18 @@ class VectorStoreFrontendNode(FrontendNode): display_name="Database Name", value="", ) - extra_fields.extend((extra_field, extra_field2, extra_field3)) + extra_field4 = TemplateField( + name="index_name", + field_type="str", + required=False, + placeholder="", + show=True, + advanced=True, + multiline=False, + display_name="Index Name", + value="", + ) + extra_fields.extend((extra_field, extra_field2, extra_field3, extra_field4)) if extra_fields: for field in extra_fields: