morpheus_llm.service.vdb.milvus_vector_db_service.MilvusVectorDBService#

class MilvusVectorDBService(
uri,
user='',
password='',
db_name='',
token='',
truncate_long_strings=False,
**kwargs,
)[source]#

Bases: VectorDBService

Service class for Milvus Vector Database implementation. This class provides functions for interacting with a Milvus vector database.

Parameters:
hoststr

The hostname or IP address of the Milvus server.

portstr

The port number for connecting to the Milvus server.

aliasstr, optional

Alias for the Milvus connection, by default “default”.

truncate_long_stringsbool, optional

When true, truncate strings values that are longer than the max length of the field

**kwargsdict

Additional keyword arguments specific to the Milvus connection configuration.

Methods

close()

Close the connection to the Milvus vector database.

count(name, **kwargs)

Returns number of rows/entities in the given collection.

create(name[, overwrite])

Create a collection in the Milvus vector database with the specified name and configuration.

create_from_dataframe(name, df[, overwrite])

Create collections in the vector database.

delete(name, expr, **kwargs)

Delete vectors from the collection using expressions.

delete_by_keys(name, keys, **kwargs)

Delete vectors by keys from the collection.

describe(name, **kwargs)

Describe the collection in the vector database.

drop(name, **kwargs)

Drop a collection, index, or partition in the Milvus vector database.

get_collection_lock(name)

Get a lock for a given collection name.

has_store_object(name)

Check if a collection exists in the Milvus vector database.

insert(name, data, **kwargs)

Insert a collection specific data in the Milvus vector database.

insert_dataframe(name, df, **kwargs)

Converts dataframe to rows and insert to a collection in the Milvus vector database.

list_store_objects(**kwargs)

List the names of all collections in the Milvus vector database.

query(name[, query])

Query data in a collection in the Milvus vector database.

release_resource(name)

Release a loaded collection from the memory.

retrieve_by_keys(name, keys, **kwargs)

Retrieve the inserted vectors using their primary keys from the Collection.

similarity_search(name, **kwargs)

Perform a similarity search within the collection.

transform(data, **kwargs)

Transform data according to the specific vector database implementation.

update(name, data, **kwargs)

Update data in the vector database.

load_resource

close()[source]#

Close the connection to the Milvus vector database.

This method disconnects from the Milvus vector database by removing the connection.

count(name, **kwargs)[source]#

Returns number of rows/entities in the given collection.

Parameters:
namestr

Name of the collection.

**kwargsdict[str, typing.Any]

Additional keyword arguments for the count operation.

Returns:
int

Returns number of entities in the collection.

create(name, overwrite=False, **kwargs)[source]#

Create a collection in the Milvus vector database with the specified name and configuration. This method creates a new collection in the Milvus vector database with the provided name and configuration options. If the collection already exists, it can be overwritten if the overwrite parameter is set to True.

Parameters:
namestr

Name of the collection to be created.

overwritebool, optional

If True, the collection will be overwritten if it already exists, by default False.

**kwargsdict

Additional keyword arguments containing collection configuration.

Raises:
ValueError

If the provided schema fields configuration is empty.

create_from_dataframe(
name,
df,
overwrite=False,
**kwargs,
)[source]#

Create collections in the vector database.

Parameters:
namestr

Name of the collection.

dfDataFrameType

The dataframe to create the collection from.

overwritebool, optional

Whether to overwrite the collection if it already exists. Default is False.

**kwargsdict[str, typing.Any]

Extra keyword arguments specific to the vector database implementation.

delete(name, expr, **kwargs)[source]#

Delete vectors from the collection using expressions.

Parameters:
namestr

Name of the collection.

exprstr

Delete expression.

**kwargsdict[str, typing.Any]

Extra keyword arguments specific to the vector database implementation.

Returns:
dict[str, typing.Any]

Returns result of the given keys that are delete from the collection.

delete_by_keys(name, keys, **kwargs)[source]#

Delete vectors by keys from the collection.

Parameters:
namestr

Name of the collection.

keysint | str | list

Primary keys to delete vectors.

**kwargsdict[str, typing.Any]

Extra keyword arguments specific to the vector database implementation.

Returns:
typing.Any

Returns result of the given keys that are delete from the collection.

describe(name, **kwargs)[source]#

Describe the collection in the vector database.

Parameters:
namestr

Name of the collection.

**kwargsdict[str, typing.Any]

Additional keyword arguments specific to the Milvus vector database.

Returns:
dict

Returns collection information.

drop(name, **kwargs)[source]#

Drop a collection, index, or partition in the Milvus vector database.

This method allows you to drop a collection, an index within a collection, or a specific partition within a collection in the Milvus vector database.

Parameters:
namestr

Name of the collection, index, or partition to be dropped.

**kwargsdict

Additional keyword arguments for specifying the type and partition name (if applicable).

Other Parameters:
collection: str

Type of collection to drop. Possible values: ‘collection’ (default), ‘index’, ‘partition’.

partition_name: str

The partition name to be dropped. Required when dropping a specific partition within a collection.

field_name: str

The field name for which the index is created. Required when dropping an index within a collection.

index_name: str

The name of the index to be dropped. Required when dropping an index within a collection.

Raises:
ValueError

If mandatory arguments are missing or if the provided ‘collection’ value is invalid.

classmethod get_collection_lock(name)[source]#

Get a lock for a given collection name.

Parameters:
namestr

Name of the collection for which to acquire the lock.

Returns:
threading.Lock

A thread lock specific to the given collection name.

has_store_object(name)[source]#

Check if a collection exists in the Milvus vector database.

Parameters:
namestr

Name of the collection to check.

Returns:
bool

True if the collection exists, False otherwise.

insert(name, data, **kwargs)[source]#

Insert a collection specific data in the Milvus vector database.

Parameters:
namestr

Name of the collection to be inserted.

datalist[list] | list[dict]

Data to be inserted in the collection.

**kwargsdict[str, typing.Any]

Additional keyword arguments containing collection configuration.

Returns:
dict

Returns response content as a dictionary.

Raises:
RuntimeError

If the collection not exists exists.

insert_dataframe(name, df, **kwargs)[source]#

Converts dataframe to rows and insert to a collection in the Milvus vector database.

Parameters:
namestr

Name of the collection to be inserted.

dfDataFrameType

Dataframe to be inserted in the collection.

**kwargsdict[str, typing.Any]

Additional keyword arguments containing collection configuration.

Returns:
dict

Returns response content as a dictionary.

Raises:
RuntimeError

If the collection not exists exists.

list_store_objects(**kwargs)[source]#

List the names of all collections in the Milvus vector database.

Returns:
list[str]

A list of collection names.

query(name, query=None, **kwargs)[source]#

Query data in a collection in the Milvus vector database.

This method performs a search operation in the specified collection/partition in the Milvus vector database.

Parameters:
namestr

Name of the collection to search within.

querystr

The search query, which can be a filter expression.

**kwargsdict

Additional keyword arguments for the search operation.

Returns:
typing.Any

The search result, which can vary depending on the query and options.

release_resource(name)[source]#

Release a loaded collection from the memory.

Parameters:
namestr

Name of the collection to release.

retrieve_by_keys(name, keys, **kwargs)[source]#

Retrieve the inserted vectors using their primary keys from the Collection.

Parameters:
namestr

Name of the collection.

keysint | str | list

Primary keys to get vectors for. Depending on pk_field type it can be int or str or a list of either.

**kwargsdict[str, typing.Any]

Additional keyword arguments for the retrieval operation.

Returns:
list[typing.Any]

Returns result rows of the given keys from the collection.

Perform a similarity search within the collection.

Parameters:
namestr

Name of the collection.

**kwargsdict[str, typing.Any]

Extra keyword arguments specific to the vector database implementation.

Returns:
list[dict]

Returns a list of dictionaries representing the results of the similarity search.

transform(data, **kwargs)[source]#

Transform data according to the specific vector database implementation.

Parameters:
datatyping.Any

Data to be updated in the resource.

**kwargsdict[str, typing.Any]

Extra keyword arguments specific to the vector database implementation.

Returns:
typing.Any

Returns transformed data as per the implementation.

update(name, data, **kwargs)[source]#

Update data in the vector database.

Parameters:
namestr

Name of the collection.

datalist[typing.Any]

Data to be updated in the collection.

**kwargsdict[str, typing.Any]

Extra keyword arguments specific to upsert operation.

Returns:
dict[str, typing.Any]

Returns result of the updated operation stats.