
    dh	                     T    S SK JrJrJrJr  S SKJr  S SKJrJ	r	J
r
   " S S\\5      rg)    )AnyDictListOptional)
Embeddings)	BaseModel
ConfigDictmodel_validatorc                       \ rS rSr% SrSr\\   \S'   Sr	\\
   \S'   Sr\\   \S'   0 r\\   \S'   \\S	'   \" S
S9r\" SS9\S\S\4S j5       5       rS\\   S\\\      4S jrS\S\\   4S jrS
rg)GPT4AllEmbeddings   a  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
        )
N
model_name	n_threadscpudevicegpt4all_kwargsclient )protected_namespacesbefore)modevaluesreturnc                      SSK Jn  U" S
UR                  S5      UR                  S5      UR                  S5      S.UR                  S5      =(       d    0 D6US'   U$ ! [         a    [        S	5      ef = f)z+Validate that GPT4All library is installed.r   )	Embed4Allr   r   r   )r   r   r   r   r   zuCould not import gpt4all library. Please install the gpt4all library to use this embedding model: pip install gpt4allr   )gpt4allr   getImportError)clsr   r   s      ^/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/gpt4all.pyvalidate_environment&GPT4AllEmbeddings.validate_environment!   s    	)(  !::l3 **[1zz(+  ::./52	 F8   	@ 	s   AA A4textsc           	          U Vs/ sH  o R                   R                  U5      PM     nnU Vs/ sH  n[        [        [        U5      5      PM     sn$ s  snf s  snf )zEmbed a list of documents using GPT4All.

Args:
    texts: The list of texts to embed.

Returns:
    List of embeddings, one for each text.
)r   embedlistmapfloat)selfr#   text
embeddingses        r    embed_documents!GPT4AllEmbeddings.embed_documents6   sO     ;@@%$kk''-%
@-78ZS]#Z88 A8s
   #A"Ar*   c                 ,    U R                  U/5      S   $ )zhEmbed a query using GPT4All.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.
r   )r-   )r)   r*   s     r    embed_queryGPT4AllEmbeddings.embed_queryC   s     ##TF+A..    )__name__
__module____qualname____firstlineno____doc__r   r   str__annotations__r   intr   r   dictr   r	   model_configr
   classmethodr   r!   r   r(   r-   r0   __static_attributes__r   r2   r    r   r      s    " !%J$#Ix}#!FHSM!%'NHTN'K26L(#$ 3   $&9T#Y 94U3D 9	/ 	/U 	/r2   r   N)typingr   r   r   r   langchain_core.embeddingsr   pydanticr   r	   r
   r   r   r2   r    <module>rB      s$    , , 0 ; ;E/	: E/r2   