Ë
    Têñi#  ã                  ó€   — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ  ej                  e«      Zdd„Zdd„Zy)	é    )ÚannotationsN)ÚPath)ÚPretrainedConfig)Ú_save_pretrained_wrapperÚbackend_should_exportÚbackend_warn_to_savec                ó6  — 	 ddl }ddlm}m}m}m}m}	 |||	|dœ}
||
vr0dj                  |
j                  «       «      }t        d|› d|› �«      ‚|
|   }|j                  d	|j                  «       d   «      |d	<   t        | «      }|j                  «       }d
}d}t!        ||||||«      \  }}|r|j                  dd«        |j"                  | f||dœ|¤Ž}t%        |j&                  d¬«      |_        |rt)        | ||«       |S # t        $ r t        d«      ‚w xY w)a  
    Load and perhaps export an ONNX model using the Optimum library.

    Args:
        model_name_or_path (str): The model name on Hugging Face (e.g. 'naver/splade-cocondenser-ensembledistil')
            or the path to a local model directory.
        config (PretrainedConfig): The model configuration.
        task_name (str): The task name for the model (e.g. 'feature-extraction', 'fill-mask', 'sequence-classification').
        model_kwargs (dict): Additional keyword arguments for the model loading.
    r   N)ÚONNX_WEIGHTS_NAMEÚORTModelForCausalLMÚORTModelForFeatureExtractionÚORTModelForMaskedLMÚ!ORTModelForSequenceClassification©zfeature-extractionz	fill-maskzsequence-classificationztext-generationú, úUnsupported task: ú. Supported tasks: z¾Using the ONNX backend requires installing Optimum and ONNX Runtime. You can install them with pip: `pip install sentence-transformers[onnx]` or `pip install sentence-transformers[onnx-gpu]`ÚproviderÚONNXz*.onnxÚ	file_name©ÚconfigÚexportÚonnx©Ú	subfolder)ÚonnxruntimeÚoptimum.onnxruntimer
   r   r   r   r   ÚjoinÚkeysÚ
ValueErrorÚModuleNotFoundErrorÚ	ExceptionÚpopÚget_available_providersr   Úexistsr   Úfrom_pretrainedr   Ú_save_pretrainedr   )Úmodel_name_or_pathr   Ú	task_nameÚmodel_kwargsÚortr
   r   r   r   r   Útask_to_model_mappingÚsupported_tasksÚ	model_clsÚ	load_pathÚis_localÚbackend_nameÚtarget_file_globr   Úmodels                      úd/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/sentence_transformers/backend/load.pyÚload_onnx_modelr5      st  € ð
Û!÷	
õ 	
ð #?Ø,Ø'HØ2ñ	!
Ðð Ð1Ñ1Ø"Ÿi™iÐ(=×(BÑ(BÓ(DÓEˆOÜÐ1°)°Ð<OÐP_ÐO`ÐaÓbÐbà)¨)Ñ4ˆ	ð  ,×/Ñ/°
¸C×<WÑ<WÓ<YÐZ[Ñ<\Ó]€L�ÑäÐ'Ó(€IØ×ÑÓ!€HØ€LØÐô 1Ø�8˜\Ð+<Ð>NÐP\óÑ€FˆLñ
 Ø×Ñ˜ dÔ+ð &ˆI×%Ñ%ØðàØñð ñ	€Eô 6°e×6LÑ6LÐX^Ô_€EÔñ ÜÐ/°¸<ÔHà€LøôQ ò 
Üð?ó
ð 	
ð
ús   ‚AD ÄDc                óÜ  — 	 ddl m}m}m}m}m} ||||dœ}	||	vr0dj                  |	j                  «       «      }
t        d|› d|
› �«      ‚|	|   }t        | «      }|j                  «       }d}d	}t        ||||||«      \  }}|r|j                  d
d«       d|v rh|d   }t        |t         «      sXt        |«      j                  «       st        d«      ‚t#        |d¬«      5 }t%        j&                  |«      |d<   ddd«       ni |d<    |j(                  | f||dœ|¤Ž}t+        |j,                  d¬«      |_        |rt/        | ||«       |S # t        $ r t        d«      ‚w xY w# 1 sw Y   ŒdxY w)a  
    Load and perhaps export an OpenVINO model using the Optimum library.

    Args:
        model_name_or_path (str): The model name on Hugging Face (e.g. 'naver/splade-cocondenser-ensembledistil')
            or the path to a local model directory.
        config (PretrainedConfig): The model configuration.
        task_name (str): The task name for the model (e.g. 'feature-extraction', 'fill-mask', 'sequence-classification').
        model_kwargs (dict): Additional keyword arguments for the model loading.
    r   )ÚOV_XML_FILE_NAMEÚOVModelForCausalLMÚOVModelForFeatureExtractionÚOVModelForMaskedLMÚ OVModelForSequenceClassificationr   r   r   r   z‘Using the OpenVINO backend requires installing Optimum and OpenVINO. You can install them with pip: `pip install sentence-transformers[openvino]`ÚOpenVINOzopenvino*.xmlr   NÚ	ov_configzXov_config should be a dictionary or a path to a .json file containing an OpenVINO configzutf-8)Úencodingr   Úopenvinor   )Úoptimum.intel.openvinor7   r8   r9   r:   r;   r   r   r    r!   r"   r   r%   r   r#   Ú
isinstanceÚdictÚopenÚjsonÚloadr&   r   r'   r   )r(   r   r)   r*   r7   r8   r9   r:   r;   r,   r-   r.   r/   r0   r1   r2   r   r=   Úfr3   s                       r4   Úload_openvino_modelrG   \   sÏ  € ð
÷	
õ 	
ð #>Ø+Ø'GØ1ñ	!
Ðð Ð1Ñ1Ø"Ÿi™iÐ(=×(BÑ(BÓ(DÓEˆOÜÐ1°)°Ð<OÐP_ÐO`ÐaÓbÐbà)¨)Ñ4ˆ	ô Ð'Ó(€IØ×ÑÓ!€HØ€LØ&Ðô 1Ø�8˜\Ð+;Ð=MÈ|óÑ€FˆLñ
 Ø×Ñ˜ dÔ+ð �lÑ"Ø  Ñ-ˆ	Ü˜)¤TÔ*Ü˜	“?×)Ñ)Ô+Ü Ønóð ô �i¨'Ô2ð 9°aÜ,0¯I©I°a«L�˜[Ñ)÷9ð 9ð %'ˆ�[Ñ!ð &ˆI×%Ñ%ØðàØñð ñ	€Eô 6°e×6LÑ6LÐXbÔc€EÔñ ÜÐ/°¸<ÔHà€Løôc ò 
Üð[ó
ð 	
ð
ú÷:9ð 9ús   ‚AE
 Ã E"Å
EÅ"E+)r(   Ústrr   r   r)   rH   )Ú
__future__r   rD   ÚloggingÚpathlibr   Ú transformers.configuration_utilsr   Ú#sentence_transformers.backend.utilsr   r   r   Ú	getLoggerÚ__name__Úloggerr5   rG   © ó    r4   ú<module>rS      s9   ðÝ "ã Û Ý å =ç uÑ uà	ˆ×	Ñ	˜8Ó	$€óKô\SrR   