o
    S"åg~  ã                	   @   sÆ   d dl mZ d dlZdZdZdZdZdZdZd	Z	d
Z
dee defdd„Z	ddedee dee defdd„Zdee defdd„Z	ddedee dee defdd„Zdee defdd„ZdS )é    )ÚOptionalNúBAAI/bge-small-enúhkunlp/instructor-basez&Represent the document for retrieval: z<Represent the question for retrieving supporting documents: z9Represent this question for searching relevant passages: u9   ä¸ºè¿™ä¸ªå¥å­ç”Ÿæˆè¡¨ç¤ºä»¥ç”¨äºŽæ£€ç´¢ç›¸å…³æ–‡ç« ï¼š)r   zBAAI/bge-small-en-v1.5zBAAI/bge-base-enzBAAI/bge-base-en-v1.5zBAAI/bge-large-enzBAAI/bge-large-en-v1.5zBAAI/bge-small-zhzBAAI/bge-small-zh-v1.5zBAAI/bge-base-zhzBAAI/bge-base-zh-v1.5zBAAI/bge-large-zhzBAAI/bge-large-zh-v1.5)zhku-nlp/instructor-basezhku-nlp/instructor-largezhku-nlp/instructor-xlr   zhkunlp/instructor-largezhkunlp/instructor-xlÚ
model_nameÚreturnc                 C   s(   | t v rtS | tv rd| v rtS tS dS )z2Get query text instruction for a given model name.ÚzhÚ )ÚINSTRUCTOR_MODELSÚDEFAULT_QUERY_INSTRUCTIONÚ
BGE_MODELSÚ DEFAULT_QUERY_BGE_INSTRUCTION_ZHÚ DEFAULT_QUERY_BGE_INSTRUCTION_EN©r   © r   új/mnt/skqttb/ctump_chatbot/chatbot/lib/python3.10/site-packages/llama_index/embeddings/huggingface/utils.pyÚ!get_query_instruct_for_model_name+   s   r   ÚqueryÚinstructionc                 C   ó"   |d u rt |ƒ}|› d| ›  ¡ S ©Nú )r   Ústrip)r   r   r   r   r   r   Úformat_query6   ó   r   c                 C   s   | t v rtS dS )z,Get text instruction for a given model name.r   )r	   ÚDEFAULT_EMBED_INSTRUCTIONr   r   r   r   Ú get_text_instruct_for_model_name@   s   r   Útextc                 C   r   r   )r   r   )r   r   r   r   r   r   Úformat_textE   r   r   c                 C   sr   d| › d}z"t  |¡}| ¡ }| dd¡}| dd¡}|r!W dS |r&W dS W dS  t jjy8   tdƒ Y dS w )	Nzhttps://huggingface.co/z/raw/main/1_Pooling/config.jsonÚpooling_mode_cls_tokenFÚpooling_mode_mean_tokensÚmeanÚclszKWarning: Pooling config file not found; pooling mode is defaulted to 'cls'.)ÚrequestsÚgetÚjsonÚ
exceptionsÚRequestExceptionÚprint)r   Úpooling_config_urlÚresponseÚconfig_dataÚ	cls_tokenÚmean_tokensr   r   r   Úget_pooling_modeO   s&   
ÿ
ÿüÿür-   )N)Útypingr   r"   Ú#DEFAULT_HUGGINGFACE_EMBEDDING_MODELÚDEFAULT_INSTRUCT_MODELr   r
   r   r   r   r	   Ústrr   r   r   r   r-   r   r   r   r   Ú<module>   sF    ÿÿ
ÿÿÿÿ
þ
ÿÿÿÿ
þ
