
    KKi-                        S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SK	J
r
JrJrJr  S SKJr  SrS	r " S
 S\
\5      rg)    )annotationsN)Any)
Embeddings)from_env)	BaseModel
ConfigDictFieldmodel_validator)Selfz'sentence-transformers/all-mpnet-base-v2)feature-extractionc                      \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'    Sr	S\S	'    Sr
S\S
'    SrS\S'    SrS\S'    \" \" SSS9S9rS\S'   \" SSS9r\" SS9SS j5       rSS jrSS jrS S jrS S jrSrg)!HuggingFaceEndpointEmbeddings   a  HuggingFaceHub embedding models.

To use, you should have the `huggingface_hub` python package installed, and the
environment variable `HUGGINGFACEHUB_API_TOKEN` set with your API token, or pass
it as a named parameter to the constructor.

Example:
    ```python
    from langchain_huggingface import HuggingFaceEndpointEmbeddings

    model = "sentence-transformers/all-mpnet-base-v2"
    hf = HuggingFaceEndpointEmbeddings(
        model=model,
        task="feature-extraction",
        huggingfacehub_api_token="my-api-key",
    )
    ```
Nr   clientasync_clientz
str | Nonemodelproviderrepo_idr   taskzdict | Nonemodel_kwargsHUGGINGFACEHUB_API_TOKEN)default)default_factoryhuggingfacehub_api_tokenforbid )extraprotected_namespacesafter)modec                V   U R                   =(       d    [        R                  " S5      n SSKJnJn  U R                  (       a  U R                  U l        O9U R                  (       a  U R                  U l        O[        U l        [        U l        U" U R                  UU R                  S9nU" U R                  UU R                  S9nU R                  [        ;  a"  SU R                   S[         S3n[        U5      eX@l        XPl        U $ ! [         a  nSn[        U5      UeS	nAff = f)
z?Validate that api key and python package exists in environment.HF_TOKENr   )AsyncInferenceClientInferenceClient)r   tokenr   zGot invalid task z, currently only z are supportedzfCould not import huggingface_hub python package. Please install it with `pip install huggingface_hub`.N)r   osgetenvhuggingface_hubr#   r$   r   r   DEFAULT_MODELr   r   VALID_TASKS
ValueErrorr   r   ImportError)selfr   r#   r$   r   r   msges           w/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/langchain_huggingface/embeddings/huggingface_endpoint.pyvalidate_environment2HuggingFaceEndpointEmbeddings.validate_environmentA   s    $(#@#@ $
BIIE
 (	*
 zz#zz!\\
*
,$jj.F 0jj.L yy+'		{ 3&&1].B  !o% K ,   	*H  c")	*s   CD 
D(D##D(c                    U Vs/ s H  o"R                  SS5      PM     nnU R                  =(       d    0 nU R                  R                  " SSU0UD6nUR	                  5       $ s  snf )zCall out to HuggingFaceHub's embedding endpoint for embedding search docs.

Args:
    texts: The list of texts to embed.

Returns:
    List of embeddings, one for each text.


 textr   )replacer   r   feature_extractiontolistr-   textsr6   _model_kwargs	responsess        r0   embed_documents-HuggingFaceEndpointEmbeddings.embed_documentss   sa     6;;UTdC(U;))/RKK22OOO	!!	 <s   A%c                   #    U Vs/ s H  o"R                  SS5      PM     nnU R                  =(       d    0 nU R                  R                  " SSU0UD6I Sh  vN nUR	                  5       $ s  snf  N7f)zAsync Call to HuggingFaceHub's embedding endpoint for embedding search docs.

Args:
    texts: The list of texts to embed.

Returns:
    List of embeddings, one for each text.

r4   r5   r6   Nr   )r7   r   r   r8   r9   r:   s        r0   aembed_documents.HuggingFaceEndpointEmbeddings.aembed_documents   sz      6;;UTdC(U;))/R++>> 

'
 
	 !! <
s   A6A/8A6A4A6c                ,    U R                  U/5      S   $ )zCall out to HuggingFaceHub's embedding endpoint for embedding query text.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.

r   )r>   r-   r6   s     r0   embed_query)HuggingFaceEndpointEmbeddings.embed_query   s     ##TF+A..    c                H   #    U R                  U/5      I Sh  vN S   $  N7f)zAsync Call to HuggingFaceHub's embedding endpoint for embedding query text.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.

Nr   )rA   rD   s     r0   aembed_query*HuggingFaceEndpointEmbeddings.aembed_query   s%      ++TF33Q773s   " ")r   r   r   r   )returnr   )r;   z	list[str]rK   zlist[list[float]])r6   strrK   zlist[float])__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   r   r   r   r   r	   r   r   r   model_configr
   r1   r>   rA   rE   rI   __static_attributes__r   rG   r0   r   r      s    & FCL#E:Hjp GZC+D*+& $L+$1+0 !;TJ,j  L
 '"/ #/b"""$
/
8rG   r   )
__future__r   r&   typingr   langchain_core.embeddingsr   langchain_core.utilsr   pydanticr   r   r	   r
   typing_extensionsr   r)   r*   r   r   rG   r0   <module>r[      s7    " 	  0 ) B B "9%]8Iz ]8rG   