
    dh                     X    S SK JrJrJrJr  S SKJrJrJr  S SK	J
r
  Sr " S S\\
5      rg)    )AnyDictListTuple)	BaseModel
ConfigDictField)BaseCrossEncoderzBAAI/bge-reranker-basec                      ^  \ rS rSr% SrSr\\S'   \r	\
\S'    \" \S9r\\
\4   \S'    S\4U 4S	 jjr\" S
SS9rS\\\
\
4      S\\   4S jrSrU =r$ )HuggingFaceCrossEncoder
   ah  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U ]  " S0 UD6   SSKnUR                  " U R
                  40 U R                  D6U l        g! [         a  n[        S5      UeSnAff = f)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       f/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/cross_encoders/huggingface.pyr    HuggingFaceCrossEncoder.__init__    sn    "6"	( ,88OO
#00
  	N 	s   A 
AAAforbidr   )extraprotected_namespaces
text_pairsreturnc                     U R                   R                  U5      n[        UR                  5      S:  a  [	        S U5      nU$ )zCompute 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                     U S   $ )Nr%   r   )xs    r   <lambda>/HuggingFaceCrossEncoder.score.<locals>.<lambda>?   s    1Q4    )r   predictlenshapemap)r   r"   scoress      r   scoreHuggingFaceCrossEncoder.score2   s<     $$Z0 v||q 0Fr*   )r   )__name__
__module____qualname____firstlineno____doc__r   r   __annotations__DEFAULT_MODEL_NAMEr   strr	   dictr   r   r   r   model_configr   r   floatr0   __static_attributes____classcell__)r   s   @r   r   r   
   s~     FC(J(#(#>L$sCx.>1
 
  H2FLU38_ 5 $u+  r*   r   N)typingr   r   r   r   pydanticr   r   r	   'langchain_community.cross_encoders.baser
   r8   r   r   r*   r   <module>rB      s)    ) ) 1 1 D- 6i)9 6r*   