✨ feat(vectorstores.py): add support for index_name parameter in MongoDBAtlasVectorSearch template
The hardcoded values for db_name, collection_name, and index_name have been removed from the initialize_mongodb function and are now required parameters. This makes the function more flexible and allows it to be used with different databases and collections. The support for the index_name parameter has been added to the MongoDBAtlasVectorSearch template in vectorstores.py, which allows the user to specify the name of the index to be used in the search.
🐛 fix(vector_store.py): remove hardcoded values for db_name, collection_name, and index_name and make them required parameters
This commit is contained in:
parent
81fb84b081
commit
ea0231025f
2 changed files with 26 additions and 9 deletions
|
|
@ -23,16 +23,23 @@ def docs_in_params(params: dict) -> bool:
|
||||||
def initialize_mongodb(class_object: Type[MongoDBAtlasVectorSearch], params: dict):
|
def initialize_mongodb(class_object: Type[MongoDBAtlasVectorSearch], params: dict):
|
||||||
"""Initialize mongodb and return the class object"""
|
"""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:
|
if not MONGODB_ATLAS_CLUSTER_URI:
|
||||||
raise ValueError("Mongodb atlas cluster uri must be provided in the params")
|
raise ValueError("Mongodb atlas cluster uri must be provided in the params")
|
||||||
from pymongo import MongoClient
|
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]
|
collection = client[db_name][collection_name]
|
||||||
index_name = "langchain_demo"
|
|
||||||
if not docs_in_params(params):
|
if not docs_in_params(params):
|
||||||
# __init__ requires collection, embedding and index_name
|
# __init__ requires collection, embedding and index_name
|
||||||
init_args = {
|
init_args = {
|
||||||
|
|
|
||||||
|
|
@ -147,9 +147,8 @@ class VectorStoreFrontendNode(FrontendNode):
|
||||||
extra_fields.extend((extra_field, extra_field2, extra_field3, extra_field4))
|
extra_fields.extend((extra_field, extra_field2, extra_field3, extra_field4))
|
||||||
|
|
||||||
elif self.template.type_name == "MongoDBAtlasVectorSearch":
|
elif self.template.type_name == "MongoDBAtlasVectorSearch":
|
||||||
# add "mongodb_atlas_cluster_uri",
|
self.display_name = "MongoDB Atlas"
|
||||||
# "collection_name",
|
|
||||||
# "db_name",
|
|
||||||
extra_field = TemplateField(
|
extra_field = TemplateField(
|
||||||
name="mongodb_atlas_cluster_uri",
|
name="mongodb_atlas_cluster_uri",
|
||||||
field_type="str",
|
field_type="str",
|
||||||
|
|
@ -183,7 +182,18 @@ class VectorStoreFrontendNode(FrontendNode):
|
||||||
display_name="Database Name",
|
display_name="Database Name",
|
||||||
value="",
|
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:
|
if extra_fields:
|
||||||
for field in extra_fields:
|
for field in extra_fields:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue