# -*- coding: utf-8 -*-"""The embedding store base class."""fromabcimportabstractmethodfromtypingimportAnyfrom..importDocumentfrom...typesimportEmbedding
[docs]classVDBStoreBase:"""The vector database store base class, serving as a middle layer between the knowledge base and the actual vector database implementation."""
[docs]@abstractmethodasyncdefadd(self,documents:list[Document],**kwargs:Any)->None:"""Record the documents into the vector database."""
[docs]@abstractmethodasyncdefdelete(self,*args:Any,**kwargs:Any)->None:"""Delete texts from the embedding store."""
[docs]@abstractmethodasyncdefsearch(self,query_embedding:Embedding,limit:int,score_threshold:float|None=None,**kwargs:Any,)->list[Document]:"""Retrieve relevant texts for the given queries. Args: query_embedding (`Embedding`): The embedding of the query text. limit (`int`): The number of relevant documents to retrieve. score_threshold (`float | None`, optional): The threshold of the score to filter the results. **kwargs (`Any`): Other keyword arguments for the vector database search API. """
[docs]defget_client(self)->Any:"""Get the underlying vector database client, so that developers can access the full functionality of the vector database."""raiseNotImplementedError("``get_client`` is not implemented for "f"{self.__class__.__name__}.",)