§
    šŠtju  ã                   ó`   — 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dS )é    )Ú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          ¦   «         j        di |¤Ž 	 ddl}n"# t          $ r}t          d¦  «        |‚d}~ww xY w |j        | j        fi | j        ¤Ž| _        dS )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       €úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/cross_encoders/huggingface.pyr   z HuggingFaceCrossEncoder.__init__    s¢   ø€ à�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ð	Ø(Ð(Ð(Ð(Ð(øåð 	ð 	ð 	ÝðNñô ð ðøøøøð	øøøð 9Ð+Ô8ØŒOð
ð 
Ø#Ô0ð
ð 
ˆŒˆˆs   œ! ¡
A «;»A Úforbidr   )ÚextraÚprotected_namespacesÚ
text_pairsÚreturnc                 óŒ   — | j                              |¦  «        }t          |j        ¦  «        dk    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   sF   € ð ”×$Ò$ ZÑ0Ô0ˆõ ˆvŒ|ÑÔ˜qÒ Ð Ý˜˜¨Ñ0Ô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   
   sæ   ø€ € € € € € ðð ð €FˆCÐÐÑØ(€J�Ð(Ð(Ñ(ØØ#( 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>Ø1ð
 ð 
ð 
ð 
ð 
ð 
ð 
ð  �: HÀ2ÐFÑFÔ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Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à DÐ DÐ DÐ DÐ DÐ Dà-Ð ð6ð 6ð 6ð 6ð 6˜iÐ)9ñ 6ô 6ð 6ð 6ð 6r'   