Ivector Db Client

Classes

class arshai.core.interfaces.ivector_db_client.ICollectionConfig(**data)[source]

Bases: IDTO

Base configuration for vector database collections. This is a generalized configuration that can be extended for specific vector databases.

collection_name: str
dense_dim: int
text_field: str
pk_field: str
dense_field: str
sparse_field: Optional[str]
metadata_field: str
schema_model: Optional[Type[IDTO]]
is_hybrid: bool
model_config: ClassVar[ConfigDict] = {'allow_mutation': False, 'arbitrary_types_allowed': True, 'smart_union': True, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class arshai.core.interfaces.ivector_db_client.IVectorDBClient(config)[source]

Bases: Protocol

Interface for vector database clients. Combines general database operations with vector-specific operations.

__init__(config)[source]

Initialize the vector database client with configuration.

Parameters:

config (Any) – Configuration for database connection

connect()[source]

Establish connection to the vector database.

Return type:

None

disconnect()[source]

Close the vector database connection.

Return type:

None

query(query_params)[source]

Execute a query against the database.

Parameters:

query_params (Dict[str, Any]) – Query parameters

Return type:

List[Dict[str, Any]]

Returns:

List of result records

insert(data)[source]

Insert data into the database.

Parameters:

data (Dict[str, Any]) – Data to insert

Return type:

bool

Returns:

Success status

update(query_params, data)[source]

Update records in the database.

Parameters:
  • query_params (Dict[str, Any]) – Query parameters to identify records

  • data (Dict[str, Any]) – Data to update

Return type:

bool

Returns:

Success status

delete(query_params)[source]

Delete records from the database.

Parameters:

query_params (Dict[str, Any]) – Query parameters to identify records

Return type:

bool

Returns:

Success status

get_or_create_collection(config)[source]

Get an existing collection or create a new one if it doesn’t exist.

Parameters:

config (ICollectionConfig) – Collection configuration

Return type:

Any

Returns:

Collection object

get_collection_stats(config)[source]

Get statistics about a collection.

Parameters:

config (ICollectionConfig) – Collection configuration

Return type:

Dict[str, Any]

Returns:

Dictionary containing collection statistics

insert_entity(config, entity, documents_embedding)[source]

Insert a single entity with embeddings into collection.

Parameters:
  • config (ICollectionConfig) – Collection configuration

  • entity (Dict[str, Any]) – Dictionary containing document content and metadata

  • documents_embedding (Dict[str, Any]) – Dictionary containing dense and/or sparse embeddings

Return type:

None

insert_entities(config, data, documents_embedding)[source]

Insert multiple entities with embeddings into collection.

Parameters:
  • config (ICollectionConfig) – Collection configuration

  • data (List[Dict[str, Any]]) – List of dictionaries containing document content and metadata

  • documents_embedding (Dict[str, Any]) – Dictionary containing dense and/or sparse embeddings

Return type:

None

search_by_vector(config, query_vectors, search_field=None, expr=None, output_fields=None, limit=10, search_params=None)[source]

Search for similar vectors in the collection.

Parameters:
  • config (ICollectionConfig) – Collection configuration

  • query_vectors (List[List[float]]) – Query vectors to search for

  • search_field (Optional[str]) – Optional field to search in (defaults to dense_field)

  • expr (Optional[str]) – Optional filter expression

  • output_fields (Optional[List[str]]) – Optional list of fields to return

  • limit (int) – Maximum number of results to return

  • search_params (Optional[Dict[str, Any]]) – Optional search parameters

Return type:

List[Dict[str, Any]]

Returns:

List of search results with distances and metadata

Perform hybrid search using both dense and sparse vectors.

Parameters:
Return type:

List[Dict[str, Any]]

Returns:

List of search results with distances and metadata

delete_entity(config, filter_expr)[source]

Delete entities from collection based on filter expression.

Parameters:
  • config (ICollectionConfig) – Collection configuration

  • filter_expr (str) – Filter expression to identify entities to delete

Return type:

Any

Returns:

Delete operation result

class arshai.core.interfaces.ivector_db_client.IVectorDBConfig(**data)[source]

Bases: IDTO

Base configuration for vector database connections. This is a generalized configuration that can be extended for specific vector databases.

host: str
port: str
db_name: str
batch_size: int
additional_params: Optional[Dict[str, Any]]
model_config: ClassVar[ConfigDict] = {'allow_mutation': False, 'arbitrary_types_allowed': True, 'smart_union': True, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].