§
    šŠtj  ã                   ó    — d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ dgZ G d„ dee¦  «        Z G d	„ d
¦  «        ZdS )é    )ÚAnyÚDictÚListÚOptional)Ú
Embeddings©Úget_from_dict_or_env)Úparse)Ú	BaseModelÚ
ConfigDictÚmodel_validator)ÚSelfÚGradientEmbeddingsc                   óÀ  — e Zd ZU dZeed<   	 dZee         ed<   	 dZee         ed<   	 dZ	eed<   	 dZ
ee         ed<   	 dZeed	<   	  ed
¬¦  «        Z ed¬¦  «        ededefd„¦   «         ¦   «         Z ed¬¦  «        defd„¦   «         Zdee         deee                  fd„Zdee         deee                  fd„Zdedee         fd„Zdedee         fd„ZdS )r   aŸ  Gradient.ai Embedding models.

    GradientLLM is a class to interact with Embedding Models on gradient.ai

    To use, set the environment variable ``GRADIENT_ACCESS_TOKEN`` with your
    API token and ``GRADIENT_WORKSPACE_ID`` for your gradient workspace,
    or alternatively provide them as keywords to the constructor of this class.

    Example:
        .. code-block:: python

            from langchain_community.embeddings import GradientEmbeddings
            GradientEmbeddings(
                model="bge-large",
                gradient_workspace_id="12345614fc0_workspace",
                gradient_access_token="gradientai-access_token",
            )
    ÚmodelNÚgradient_workspace_idÚgradient_access_tokenúhttps://api.gradient.ai/apiÚgradient_api_urlÚquery_prompt_for_retrievalÚclientÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó‚   — t          |dd¦  «        |d<   t          |dd¦  «        |d<   t          |ddd¬¦  «        |d<   |S )	z?Validate that api key and python package exists in environment.r   ÚGRADIENT_ACCESS_TOKENr   ÚGRADIENT_WORKSPACE_IDr   ÚGRADIENT_API_URLr   )Údefaultr   )Úclsr   s     úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/gradient_ai.pyÚvalidate_environmentz'GradientEmbeddings.validate_environment:   sq   € õ
 +?ØÐ+Ð-Dñ+
ô +
ˆÐ&Ñ'õ +?ØÐ+Ð-Dñ+
ô +
ˆÐ&Ñ'õ &:ØØØØ1ð	&
ñ &
ô &
ˆÐ!Ñ"ð ˆó    Úafterc                 óB  — 	 dd l }n# t          $ r t          d¦  «        ‚w xY wt          |j        ¦  «        t          d¦  «        k     rt          d¦  «        ‚|                     | j        | j        | j        ¬¦  «        }|                     | j	        ¬¦  «        | _
        | S )Nr   zAGradientEmbeddings requires `pip install -U "gradientai>=1.4.0"`.z1.4.0)Úaccess_tokenÚworkspace_idÚhost)Úslug)Ú
gradientaiÚImportErrorr
   Ú__version__ÚGradientr   r   r   Úget_embeddings_modelr   r   )Úselfr-   Úgradients      r$   Ú	post_initzGradientEmbeddings.post_initN   sÈ   € ð	ØÐÐÐÐøÝð 	ð 	ð 	ÝØSñô ð ð	øøøõ
 �Ô'Ñ(Ô(­5°©>¬>Ò9Ð9ÝØSñô ð ð ×&Ò&ØÔ3ØÔ3ØÔ&ð 'ñ 
ô 
ˆð
 ×3Ò3¸¼Ð3ÑDÔDˆŒØˆs   ‚ ‡!Útextsc                 ór   — d„ |D ¦   «         }| j                              |¬¦  «        j        }d„ |D ¦   «         S )z¶Call out to Gradient's embedding endpoint.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        c                 ó   — g | ]}d |i‘ŒS ©Úinput© ©Ú.0Útexts     r$   ú
<listcomp>z6GradientEmbeddings.embed_documents.<locals>.<listcomp>m   ó   € Ð4Ð4Ð4 d�7˜D�/Ð4Ð4Ð4r&   ©Úinputsc                 ó   — g | ]	}|j         ‘Œ
S r:   ©Ú	embedding©r<   Úes     r$   r>   z6GradientEmbeddings.embed_documents.<locals>.<listcomp>q   ó   € Ð,Ð,Ð, �”Ð,Ð,Ð,r&   )r   ÚembedÚ
embeddings©r2   r5   rA   Úresults       r$   Úembed_documentsz"GradientEmbeddings.embed_documentsd   sF   € ð 5Ð4¨eÐ4Ñ4Ô4ˆà”×"Ò"¨&Ð"Ñ1Ô1Ô<ˆà,Ð, VÐ,Ñ,Ô,Ð,r&   c              ƒ   ó‚   K  — d„ |D ¦   «         }| j                              |¬¦  «        ƒ d{V —†j        }d„ |D ¦   «         S )z¼Async call out to Gradient's embedding endpoint.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        c                 ó   — g | ]}d |i‘ŒS r8   r:   r;   s     r$   r>   z7GradientEmbeddings.aembed_documents.<locals>.<listcomp>|   r?   r&   r@   Nc                 ó   — g | ]	}|j         ‘Œ
S r:   rC   rE   s     r$   r>   z7GradientEmbeddings.aembed_documents.<locals>.<listcomp>€   rG   r&   )r   ÚaembedrI   rJ   s       r$   Úaembed_documentsz#GradientEmbeddings.aembed_documentss   s\   è è € ð 5Ð4¨eÐ4Ñ4Ô4ˆàœ×*Ò*°&Ð*Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9ÔEˆà,Ð, VÐ,Ñ,Ô,Ð,r&   r=   c                 ód   — | j         r| j         › d|› �n|}|                      |g¦  «        d         S )zžCall out to Gradient's embedding endpoint.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        ú r   )r   rL   )r2   r=   Úquerys      r$   Úembed_queryzGradientEmbeddings.embed_query‚   sJ   € ð Ô.ðˆtÔ.Ð7Ð7°Ð7Ð7Ð7àð 	ð
 ×#Ò# U GÑ,Ô,¨QÔ/Ð/r&   c              ƒ   óx   K  — | j         r| j         › d|› �n|}|                      |g¦  «        ƒ d{V —†}|d         S )z¤Async call out to Gradient's embedding endpoint.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        rS   Nr   )r   rQ   )r2   r=   rT   rI   s       r$   Úaembed_queryzGradientEmbeddings.aembed_query’   sd   è è € ð Ô.ðˆtÔ.Ð7Ð7°Ð7Ð7Ð7àð 	ð
  ×0Ò0°%°Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9ˆ
Ø˜!Œ}Ðr&   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚ__annotations__r   r   r   r   r   r   r   r   Úmodel_configr   Úclassmethodr   r%   r   r4   r   ÚfloatrL   rQ   rU   rW   r:   r&   r$   r   r      sá  € € € € € € ðð ð& €J€J�JØ&à+/Ð˜8 Cœ=Ð/Ð/Ñ/Ø*à+/Ð˜8 Cœ=Ð/Ð/Ñ/ðð
 :Ð�cÐ9Ð9Ñ9Øà04Ð ¨¤Ð4Ð4Ñ4Øà€FˆCÐÐÑØð �:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð$ €_˜'Ð"Ñ"Ô"ð˜4ð ð ð ñ #Ô"ðð*- T¨#¤Yð -°4¸¸U¼Ô3Dð -ð -ð -ð -ð-¨D°¬Ið -¸$¸tÀE¼{Ô:Kð -ð -ð -ð -ð0 ð 0¨¨U¬ð 0ð 0ð 0ð 0ð  sð ¨t°E¬{ð ð ð ð ð ð r&   c                   ó&   — e Zd ZdZdededdfd„ZdS )Ú TinyAsyncGradientEmbeddingClientzÒDeprecated, TinyAsyncGradientEmbeddingClient was removed.

    This class is just for backwards compatibility with older versions
    of langchain_community.
    It might be entirely removed in the future.
    ÚargsÚkwargsr   Nc                 ó    — t          d¦  «        ‚)Nz8Deprecated,TinyAsyncGradientEmbeddingClient was removed.)Ú
ValueError)r2   rc   rd   s      r$   Ú__init__z)TinyAsyncGradientEmbeddingClient.__init__¬   s   € ÝÐSÑTÔTÐTr&   )rX   rY   rZ   r[   r   rg   r:   r&   r$   rb   rb   ¤   sP   € € € € € ðð ðU˜cð U¨Sð U°Tð Uð Uð Uð Uð Uð Ur&   rb   N)Útypingr   r   r   r   Úlangchain_core.embeddingsr   Úlangchain_core.utilsr	   Úpackaging.versionr
   Úpydanticr   r   r   Útyping_extensionsr   Ú__all__r   rb   r:   r&   r$   ú<module>ro      s  ðØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø #Ð #Ð #Ð #Ð #Ð #Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø "Ð "Ð "Ð "Ð "Ð "àÐ
 €ðUð Uð Uð Uð U˜ Jñ Uô Uð Uðp	Uð 	Uð 	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Ur&   