
    9i#                         S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	  \	" 5       r
S rS r    SS\S	\\\S
S4      S\\   S\\\\S4      SS4
S jjrS	\4S jrg)    N)OptionalUnion)snapshot_download)_patch_pretrained_class)
get_loggerc                     [        U [        5      (       aD  U R                  5       nUR                  S5      nUS   S:X  a  S/USS  -   nSR	                  U5      n U $ )N:r   gpucuda    )
isinstancestrlowersplitjoin)devicedevice_nameeless      i/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/utils/hf_util/pipeline_builder.py_get_hf_devicer      sZ    &#lln  %7e8d12h&DWWT]FM    c                 r    SSK JnJn  U (       d  U" U5      n U" U 5      u  pEnUS   n[        U/5      S   nU$ )Nr   )
check_taskget_taskimpl)transformers.pipelinesr   r   r   )taskmodelr   r   normalized_tasktargeted_tasktask_optionspipeline_classs           r   _get_hf_pipeline_classr$      sB    ;3=d3C0OL"6*N,n-=>qANr   r   r   PreTrainedModelTFPreTrainedModel	frameworkr   ztorch.devicereturnztransformers.Pipelinec           	      :   SSK Jn  [        U[        5      (       a/  [        R
                  R                  U5      (       d  [        U5      nUS:X  a  SOUn[        U5      n[        X5      nUR                  SS 5        UR                  SS 5        U" SU UUUUS.UD6$ )	Nr   )pipelinepytorchptexternal_engine_for_llmllm_framework)r   r   r'   r   r#    )transformersr*   r   r   ospathexistsr   r   r$   pop)r   r   r'   r   kwargsr*   r#   s          r   hf_pipeliner6      s     &%ww~~e$$%e,E!Y.IIF#F+D8N
JJ($/
JJ% %  r   c                   ^  SSK Jm  [        U [        5      (       a/  [
        R                  R                  U 5      (       d  [        U 5      n SSK	J
n   " U4S jSU5      nU" U 40 UD6$ ! [         a    [        S5      S ef = f)Nr   SentenceTransformerzCould not import sentence_transformers, please upgrade to the latest version of sentence_transformers with: 'pip install -U sentence_transformers')Pipelinec                   `   > \ rS rSrSrS\4U 4S jjr  S
S\\\   -  S-  S\S-  4S jjrS	r	g)Csentence_transformers_pipeline.<locals>.SentenceTransformerPipelineI   zwA wrapper for sentence_transformers.SentenceTransformer to make it compatible
with the modelscope pipeline conventions.
model_pathc                 "   > T" U40 UD6U l         g )Nr   )selfr>   r5   r9   s      r   __init__Lsentence_transformers_pipeline.<locals>.SentenceTransformerPipeline.__init__M   s    ,ZB6BDJr   N	sentencesprompt_namec                     UR                  SS 5      nUb&  US   nU R                  R                  " U40 UD6nSU0$ U R                  R                  " U4SU0UD6$ )Ninputsource_sentencetext_embeddingrE   )r4   r   encode)rA   rD   rE   r5   
input_dataress         r   __call__Lsentence_transformers_pipeline.<locals>.SentenceTransformerPipeline.__call__P   ss      GT2J%&'89	jj''	<V<(#..::$$>'2>6<> >r   r@   )NN)
__name__
__module____qualname____firstlineno____doc__r   rB   listrM   __static_attributes__r8   s   r   SentenceTransformerPipeliner<   I   sI    	5	Cs 	C :>/3
	> #d3i$ 6
	>"%*
	> 
	>r   rV   )sentence_transformersr9   ImportErrorr   r   r1   r2   r3   r   modelscope.pipelinesr:   )r   r5   r:   rV   r9   s       @r   sentence_transformers_pipelinerZ   <   s    F=
 %ww~~e$$%e,E->h >& 'u777;  F;<AE	FFs   A* *B)NNNN)r1   typingr   r   modelscope.hubr    modelscope.utils.hf_util.patcherr   modelscope.utils.loggerr   loggerr   r$   r   intr6   rZ   r/   r   r   <module>ra      s    	 " , D .	 JN#8<	
E#02EEFG } U3^345	 : 8#  8r   