Skip to content

Vector capability

Base class for vector capability implementations.

This module defines BaseVectorCapability that centralizes encryption and batching for vector operations. Subclasses implement internal methods for datastore-specific logic.

BaseVectorCapability(em_invoker, encryption=None, default_batch_size=None)

Bases: DataStoreCapability

Base class for vector capability implementations.

Provides default batching/encryption flows for create, create_from_vector, retrieve, retrieve_by_vector, update, delete, and clear.

Initialize the base vector capability.

Parameters:

Name Type Description Default
em_invoker BaseEMInvoker

Embedding model invoker (required).

required
encryption EncryptionCapability | None

Encryption capability. Defaults to None.

None
default_batch_size int | None

Default batch size. Defaults to None.

None

em_invoker property

Return the embedding model invoker.

Returns:

Name Type Description
BaseEMInvoker BaseEMInvoker

The EM invoker instance.

create(data, batch_size=None, **kwargs) async

Create records with automatic encryption and batching.

Parameters:

Name Type Description Default
data Chunk | list[Chunk]

Single chunk or list of chunks.

required
batch_size int | None

Override batch size. Defaults to None.

None
**kwargs Any

Passed to subclass.

{}

create_from_vector(chunk_vectors, batch_size=None, **kwargs) async

Create from pre-computed vectors with encryption and batching.

Parameters:

Name Type Description Default
chunk_vectors list[tuple[Chunk, Vector]]

Chunks and their vectors.

required
batch_size int | None

Override batch size. Defaults to None.

None
**kwargs Any

Passed to subclass.

{}

ensure_index(**kwargs) abstractmethod async

Ensure vector index exists.

Parameters:

Name Type Description Default
**kwargs Any

Datastore-specific parameters.

{}

Raises:

Type Description
NotImplementedError

This method is not implemented in the subclass.

retrieve_by_vector(vector, filters=None, options=None, **kwargs) async

Retrieve by vector with automatic decryption.

Parameters:

Name Type Description Default
vector Vector

Query vector.

required
filters FilterClause | QueryFilter | None

Filters. Defaults to None.

None
options QueryOptions | None

Query options. Defaults to None.

None
**kwargs Any

Passed to _retrieve_by_vector.

{}

Returns:

Type Description
list[Chunk]

list[Chunk]: Decrypted chunks.

update(update_values, filters=None, batch_size=None, **kwargs) async

Update records with centralized encryption and content embedding refresh.

Parameters:

Name Type Description Default
update_values dict[str, Any]

Fields to update.

required
filters FilterClause | QueryFilter | None

Filters. Defaults to None.

None
batch_size int | None

Optional batch size override. Defaults to DefaultBatchSize.UPDATE when not configured at request/capability level.

None
**kwargs Any

Passed to backend-specific _update implementation.

{}