[docs]classGPT4AllEmbeddings(BaseModel,Embeddings):"""GPT4All embedding models. To use, you should have the gpt4all python package installed Example: .. code-block:: python from langchain_community.embeddings import GPT4AllEmbeddings model_name = "all-MiniLM-L6-v2.gguf2.f16.gguf" gpt4all_kwargs = {'allow_download': 'True'} embeddings = GPT4AllEmbeddings( model_name=model_name, gpt4all_kwargs=gpt4all_kwargs ) """model_name:Optional[str]=Nonen_threads:Optional[int]=Nonedevice:Optional[str]="cpu"gpt4all_kwargs:Optional[dict]={}client:Any#: :meta private:model_config=ConfigDict(protected_namespaces=())@model_validator(mode="before")@classmethoddefvalidate_environment(cls,values:Dict)->Any:"""Validate that GPT4All library is installed."""try:fromgpt4allimportEmbed4Allvalues["client"]=Embed4All(model_name=values.get("model_name"),n_threads=values.get("n_threads"),device=values.get("device"),**(values.get("gpt4all_kwargs")or{}),)exceptImportError:raiseImportError("Could not import gpt4all library. ""Please install the gpt4all library to ""use this embedding model: pip install gpt4all")returnvalues
[docs]defembed_documents(self,texts:List[str])->List[List[float]]:"""Embed a list of documents using GPT4All. Args: texts: The list of texts to embed. Returns: List of embeddings, one for each text. """embeddings=[self.client.embed(text)fortextintexts]return[list(map(float,e))foreinembeddings]
[docs]defembed_query(self,text:str)->List[float]:"""Embed a query using GPT4All. Args: text: The text to embed. Returns: Embeddings for the text. """returnself.embed_documents([text])[0]