[docs]defto_dict(self)->dict:"""Serialize Embeddings. :return: serializes this Embeddings so that it can be reconstructed by ``from_dict`` class method. :rtype: dict """return{"__class__":self.__class__.__name__,"__module__":self.__module__}
[docs]@classmethoddeffrom_dict(cls,data:dict,**kwargs:Any)->BaseEmbeddings|None:"""Deserialize ``BaseEmbeddings`` into a concrete one using arguments. :return: concrete Embeddings or None if data is incorrect :rtype: BaseEmbeddings | None """supported_kwargs=["api_client"]ifunsupported_kwargs:=set(kwargs.keys())-set(supported_kwargs):forkwordinunsupported_kwargs:raiseUnexpectedKeyWordArgument(kword,reason=f"{kword} is not supported as a keyword argument. Supported kwargs: {supported_kwargs}",)api_client=kwargs.get("api_client")data=copy.deepcopy(data)ifisinstance(data,dict):class_type=data.pop("__class__",None)module_name=data.pop("__module__",None)ifmodule_name:module=importlib.import_module(module_name)ifclass_type:try:cls=getattr(module,class_type)exceptAttributeError:raiseAttributeError(f"Module: {module} has no attribute {class_type}")ifcls:if(module_name=="ibm_watsonx_ai.foundation_models.embeddings.embeddings"andapi_clientisnotNone):data.pop("credentials",None)data["api_client"]=api_clientwithwarnings.catch_warnings(record=True):warnings.simplefilter("ignore",category=DeprecationWarning)returncls(**data)returnNone