Ë
    µŒjˆ  ã                   óX   — d dl mZmZmZmZ d dlmZmZmZ d dl	m
Z
 dZ G d„ dee
«      Zy)é    )ÚAnyÚDictÚListÚTuple)Ú	BaseModelÚ
ConfigDictÚField)ÚBaseCrossEncoderzBAAI/bge-reranker-basec                   óª   ‡ — e Zd ZU dZdZeed<   eZe	ed<   	  e
e¬«      Zee	ef   ed<   	 defˆ fd„Z ed	d
¬«      Zdeee	e	f      dee   fd„Zˆ xZS )ÚHuggingFaceCrossEncodera�  HuggingFace cross encoder models.

    Example:
        .. code-block:: python

            from langchain_community.cross_encoders import HuggingFaceCrossEncoder

            model_name = "BAAI/bge-reranker-base"
            model_kwargs = {'device': 'cpu'}
            hf = HuggingFaceCrossEncoder(
                model_name=model_name,
                model_kwargs=model_kwargs
            )
    NÚclientÚ
model_name)Údefault_factoryÚmodel_kwargsÚkwargsc                 óÀ   •— t        ‰| �  di |¤Ž 	 ddl} |j                  | j
                  fi | j                  ¤Ž| _        y# t        $ r}t        d«      |‚d}~ww xY w)z$Initialize the sentence_transformer.r   NzrCould not import sentence_transformers python package. Please install it with `pip install sentence-transformers`.© )ÚsuperÚ__init__Úsentence_transformersÚImportErrorÚCrossEncoderr   r   r   )Úselfr   r   ÚexcÚ	__class__s       €úx/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/cross_encoders/huggingface.pyr   z HuggingFaceCrossEncoder.__init__    sq   ø€ ä‰ÑÑ"˜6Ò"ð	Û(ð 9Ð+×8Ñ8Ø�O‰Oñ
Ø#×0Ñ0ñ
ˆ�øô ò 	ÜðNóð ðûð	ús   ’A Á	AÁAÁAÚforbidr   )ÚextraÚprotected_namespacesÚ
text_pairsÚreturnc                 ó†   — | j                   j                  |«      }t        |j                  «      dkD  rt	        d„ |«      }|S )zæCompute similarity scores using a HuggingFace transformer model.

        Args:
            text_pairs: The list of text text_pairs to score the similarity.

        Returns:
            List of scores, one for each pair.
        é   c                 ó   — | d   S )Nr#   r   )Úxs    r   Ú<lambda>z/HuggingFaceCrossEncoder.score.<locals>.<lambda>?   s   €  1 Q¢4ó    )r   ÚpredictÚlenÚshapeÚmap)r   r    Úscoress      r   ÚscorezHuggingFaceCrossEncoder.score2   s<   € ð —‘×$Ñ$ ZÓ0ˆô ˆv�|‰|Ó˜qÒ Ü™¨Ó0ˆFØˆr'   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__ÚDEFAULT_MODEL_NAMEr   Ústrr	   Údictr   r   r   r   Úmodel_configr   r   Úfloatr-   Ú__classcell__)r   s   @r   r   r   
   sy   ø… ñð €FˆCÓØ(€J�Ó(ØÙ#(¸Ô#>€L�$�s˜C�x‘.Ó>Ø1ð
 õ 
ñ   HÀ2ÔF€Lð  U¨3°¨8¡_Ñ 5ð ¸$¸u¹+÷ r'   r   N)Útypingr   r   r   r   Úpydanticr   r   r	   Ú'langchain_community.cross_encoders.baser
   r3   r   r   r'   r   Ú<module>r<      s)   ðß )Ó )ç 1Ñ 1å Dà-Ð ô6˜iÐ)9õ 6r'   