[docs]classAwaEmbeddings(BaseModel,Embeddings):"""Embedding documents and queries with Awa DB. Attributes: client: The AwaEmbedding client. model: The name of the model used for embedding. Default is "all-mpnet-base-v2". """client:Any#: :meta private:model:str="all-mpnet-base-v2"@model_validator(mode="before")@classmethoddefvalidate_environment(cls,values:Dict)->Any:"""Validate that awadb library is installed."""try:fromawadbimportAwaEmbeddingexceptImportErrorasexc:raiseImportError("Could not import awadb library. ""Please install it with `pip install awadb`")fromexcvalues["client"]=AwaEmbedding()returnvalues
[docs]defset_model(self,model_name:str)->None:"""Set the model used for embedding. The default model used is all-mpnet-base-v2 Args: model_name: A string which represents the name of model. """self.model=model_nameself.client.model_name=model_name
[docs]defembed_documents(self,texts:List[str])->List[List[float]]:"""Embed a list of documents using AwaEmbedding. Args: texts: The list of texts need to be embedded Returns: List of embeddings, one for each text. """returnself.client.EmbeddingBatch(texts)
[docs]defembed_query(self,text:str)->List[float]:"""Compute query embeddings using AwaEmbedding. Args: text: The text to embed. Returns: Embeddings for the text. """returnself.client.Embedding(text)