class AzureCosmosDBMongoDBVectorStoreAzure Cosmos DB for MongoDB vCore vector store. To use this, you should have both:
mongodb NPM package installedYou do not need to create a database or collection, it will be created automatically.
You also need an index on the collection, which is by default be created
automatically using the createIndex method.
Embeddings interface for generating vector embeddings from text queries, enabling vector-based similarity searches.
Defines the filter type used in search and delete operations. Can be an object for structured conditions or a string for simpler filtering.
Initializes the AzureCosmosDBMongoDBVectorStore. Connect the client to the database and create the container, creating them if needed.
Returns a string representing the type of vector store, which subclasses must implement to identify their specific vector storage type.
Method for adding documents to the AzureCosmosDBMongoDBVectorStore. It first converts the documents to texts and then adds them as vectors.
Method for adding vectors to the AzureCosmosDBMongoDBVectorStore.
Creates a VectorStoreRetriever instance with flexible configuration options.
Checks if the specified index name during instance construction exists on the collection.
Closes any newly instanciated Azure Cosmos DB client. If the client was passed in the constructor, it will not be closed.
Creates an index on the collection with the specified index name during instance construction.
Setting the numLists parameter correctly is important for achieving good accuracy and performance. Since the vector store uses IVF as the indexing strategy, you should create the index only after you have loaded a large enough sample documents to ensure that the centroids for the respective buckets are faily distributed.
We recommend that numLists is set to documentCount/1000 for up to 1 million documents and to sqrt(documentCount) for more than 1 million documents. As the number of items in your database grows, you should tune numLists to be larger in order to achieve good latency performance for vector search.
If you're experimenting with a new scenario or creating a small demo, you can start with numLists set to 1 to perform a brute-force search across all vectors. This should provide you with the most accurate results from the vector search, however be aware that the search speed and latency will be slow. After your initial setup, you should go ahead and tune the numLists parameter using the above guidance.
Removes specified documents from the AzureCosmosDBMongoDBVectorStore. If no IDs or filter are specified, all documents will be removed.
Deletes the index specified during instance construction if it exists.
Return documents selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to the query AND diversity among selected documents.
Searches for documents similar to a text query by embedding the query and performing a similarity search on the resulting vector.
Method that performs a similarity search on the vectors stored in the collection. It returns a list of documents and their corresponding similarity scores.
Searches for documents similar to a text query by embedding the query, and returns results with similarity scores.
Static method to create an instance of AzureCosmosDBMongoDBVectorStore from a list of documents. It first converts the documents to vectors and then adds them to the collection.
Static method to create an instance of AzureCosmosDBMongoDBVectorStore from a list of texts. It first converts the texts to vectors and then adds them to the collection.
The name of the serializable. Override to provide an alias or to preserve the serialized module name in minified environments.
Implemented as a static method to support loading logic.