Ivector Db Client¶
Classes¶
- class arshai.core.interfaces.ivector_db_client.ICollectionConfig(**data)[source]¶
Bases:
IDTOBase configuration for vector database collections. This is a generalized configuration that can be extended for specific vector databases.
- 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:
ProtocolInterface 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
- 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:
- Returns:
Collection object
- get_collection_stats(config)[source]¶
Get statistics about a collection.
- Parameters:
config (
ICollectionConfig) – Collection configuration- Return type:
- Returns:
Dictionary containing collection statistics
- insert_entity(config, entity, documents_embedding)[source]¶
Insert a single entity with embeddings into collection.
- insert_entities(config, data, documents_embedding)[source]¶
Insert multiple entities with embeddings into collection.
- 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 configurationquery_vectors (
List[List[float]]) – Query vectors to search forsearch_field (
Optional[str]) – Optional field to search in (defaults to dense_field)output_fields (
Optional[List[str]]) – Optional list of fields to returnlimit (
int) – Maximum number of results to returnsearch_params (
Optional[Dict[str,Any]]) – Optional search parameters
- Return type:
- Returns:
List of search results with distances and metadata
- hybrid_search(config, dense_vectors=None, sparse_vectors=None, weights=None, expr=None, output_fields=None, limit=10, search_params=None)[source]¶
Perform hybrid search using both dense and sparse vectors.
- Parameters:
config (
ICollectionConfig) – Collection configurationdense_vectors (
Optional[List[List[float]]]) – Dense vectors for searchsparse_vectors (
Optional[List[Dict[str,Any]]]) – Sparse vectors for searchweights (
Optional[List[float]]) – List of weights for dense and sparse vectors [dense_weight, sparse_weight]output_fields (
Optional[List[str]]) – Optional list of fields to returnlimit (
int) – Maximum number of results to returnsearch_params (
Optional[Dict[str,Any]]) – Optional search parameters
- Return type:
- 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 configurationfilter_expr (
str) – Filter expression to identify entities to delete
- Return type:
- Returns:
Delete operation result
- class arshai.core.interfaces.ivector_db_client.IVectorDBConfig(**data)[source]¶
Bases:
IDTOBase configuration for vector database connections. This is a generalized configuration that can be extended for specific vector databases.
- 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].