
    u-j#                         d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	  e	            Z
d Zd Z	 	 	 	 dded	eeed
df                  dee         deeeedf                  ddf
dZd	efdZdS )    N)OptionalUnion)snapshot_download)_patch_pretrained_class)
get_loggerc                     t          | t                    rX|                                 }|                    d          }|d         dk    r#dg|dd          z   }d                    |          } | S )N:r   gpucuda    )
isinstancestrlowersplitjoin)devicedevice_nameeless      i/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/modelscope/utils/hf_util/pipeline_builder.py_get_hf_devicer      sk    &# #llnn  %%7e8d122h&DWWT]]FM    c                     ddl m}m} | s ||          }  ||           \  }}}|d         }t          |g          d         }|S )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$      sj    ;;;;;;;; x3=:d3C3C0O]L"6*N,n-=>>qANr   r   r   PreTrainedModelTFPreTrainedModel	frameworkr   ztorch.devicereturnztransformers.Pipelinec           	      Z   ddl m} t          |t                    r.t          j                            |          st          |          }|dk    rdn|}t          |          }t          | |          }|
                    dd            |
                    dd             |d| ||||d|S )	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     &%%%%%% -w~~e$$ 	-%e,,E!Y..IIF##F+D%88N
JJ($///
JJ%%%8 %    r   c                    	 ddl m n# t          $ r t          d          d w xY wt          | t                    r.t
          j                            |           st          |           } ddl	m
}  G fdd|          } || fi |S )Nr   SentenceTransformerzCould not import sentence_transformers, please upgrade to the latest version of sentence_transformers with: 'pip install -U sentence_transformers')Pipelinec                   X    e Zd ZdZdef fdZ	 	 ddeee         z  dz  dedz  fdZdS )	Csentence_transformers_pipeline.<locals>.SentenceTransformerPipelinezA wrapper for sentence_transformers.SentenceTransformer to make it compatible
        with the modelscope pipeline conventions.
model_pathc                 $     |fi || _         d S )N)r   )selfr=   r5   r9   s      r   __init__zLsentence_transformers_pipeline.<locals>.SentenceTransformerPipeline.__init__M   s!    ,,ZBB6BBDJJJr   N	sentencesprompt_namec                     |                     dd           }||d         } | j        j        |fi |}d|iS  | j        j        |fd|i|S )Ninputsource_sentencetext_embeddingrB   )r4   r   encode)r?   rA   rB   r5   
input_dataress         r   __call__zLsentence_transformers_pipeline.<locals>.SentenceTransformerPipeline.__call__P   s      GT22J%&'89	'dj'	<<V<<(#..$4:$> >'2>6<> > >r   )NN)__name__
__module____qualname____doc__r   r@   listrJ   r8   s   r   SentenceTransformerPipeliner<   I   s        	5 	5	Cs 	C 	C 	C 	C 	C 	C :>/3
	> 
	> #d3i$ 6
	>"%*
	> 
	> 
	> 
	> 
	> 
	>r   rP   )sentence_transformersr9   ImportErrorr   r   r1   r2   r3   r   modelscope.pipelinesr:   )r   r5   r:   rP   r9   s       @r   sentence_transformers_pipelinerT   <   s    F======= F F F;< <AE	FF % -w~~e$$ 	-%e,,E------> > > > > > >h > > >& '&u77777s   
 %)NNNN)r1   typingr   r   modelscope.hubr    modelscope.utils.hf_util.patcherr   modelscope.utils.loggerr   loggerr   r$   r   intr6   rT   r/   r   r   <module>r[      s'   				 " " " " " " " " , , , , , , D D D D D D . . . . . .	     JN#8<	 
E#02EEFG } U3^345	    : 8#  8  8  8  8  8  8r   