
    l0j(                    F    d Z ddlmZ ddlmZ ddlmZ erddlmZ dd
Z	dS )zThis module should not be used directly as its API is subject to change. Instead,
please use the `gr.Interface.from_pipeline()` function.    )annotations)TYPE_CHECKING)
components	pipelinespipelinepipelines.base.Pipelinereturndictc                f    	 ddl }ddl m n"# t          $ r}t          d          |d}~ww xY wt           j        j                  st          d          t          |d          rOt           j        j	                  r5t          j        ddd	d
          t          j        dd
          d d dnt          |d          rOt           j        j                  r5t          j        ddd	d
          t          j        dd
          d d dn^t          |d          rMt           j        j                  r3t          j        d	d
          t          j        dd
          d d dnt          |d          rMt           j        j                  r3t          j        d	d
          t          j        dd
          d d dnt          |d          rNt           j        j                  r4t          j        ddd
          t          j        dd
          d d  dnFt          |d!          rzt           j        j                  r`t          j        d"d#d
$          t          j        d%d
          gt          j        d&d
          t          j        d'd
          gd( d) dnt          |d*          rNt           j        j                  r4t          j        d"d	d
$          t          j        d+d
          d, d- dn^t          |d.          rMt           j        j                  r3t          j        d	d
          t          j        dd
          d/ d0 dnt          |d1          rMt           j        j                  r3t          j        d	d
          t          j        dd
          d2 d3 dnt          |d4          rMt           j        j                   r3t          j        d	d
          t          j        d5d
          d6 d7 dnGt          |d8          rMt           j        j!                  r3t          j        d	d
          t          j        d9d
          d: d; dnt          |d<          rxt           j"        j#                  r^t          j        d	d
          t          j        d=d
          t          j$        d>d
          gt          j        dd
          d? d@ dnbt          |dA          rct           j%        j&                  rIt          j        ddBd
          t          j        d%d
          gt          j        dCd
          dD dE dnt          |dF          rct           j'        j(                  rIt          j        ddd
          t          j        d%d
          gt          j        d'd
          dG dH dn|t          |dI          rMt           j)        j*                  r3t          j        ddd
          t          j        dJd
          dK dL dnt          dMtW                                 fdN},                                }||dO<   |dP= |dQ=  j-        j.        j/        |dR<   |S )Sa#  
    Gets the appropriate Interface kwargs for a given Hugging Face transformers.Pipeline.
    pipeline (transformers.Pipeline): the transformers.Pipeline from which to create an interface
    Returns:
    (dict): a dictionary of kwargs that can be used to construct an Interface object
    r   Nr   zAtransformers not installed. Please try `pip install transformers`z(pipeline must be a transformers.PipelineAudioClassificationPipeline
microphonefilepathInputF)sourcetypelabelrenderClass)r   r   c                
    d| iS Ninputs is    S/home/wildlama/miniconda3/envs/lam/lib/python3.11/site-packages/gradio/pipelines.py<lambda>z$load_from_pipeline.<locals>.<lambda>,   
    XqM     c                    d | D             S )Nc                ^    i | ]*}|d                               d          d         |d         +S r   z, r   scoresplit.0r   s     r   
<dictcomp>z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>-   6    %W%W%WPQaj&6&6t&<&<Q&?7%W%W%Wr   r   rs    r   r   z$load_from_pipeline.<locals>.<lambda>-       %W%WUV%W%W%W r   )r   outputs
preprocesspostprocess"AutomaticSpeechRecognitionPipelineOutputc                
    d| iS r   r   r   s    r   r   z$load_from_pipeline.<locals>.<lambda>8   r   r   c                    | d         S )Ntextr   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>9   s
    QvY r   FeatureExtractionPipelinec                
    d| iS r   r   xs    r   r   z$load_from_pipeline.<locals>.<lambda>A   r   r   c                    | d         S )Nr   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>B   s
    QqT r   FillMaskPipelineClassificationc                
    d| iS r   r   r7   s    r   r   z$load_from_pipeline.<locals>.<lambda>J   r   r   c                    d | D             S )Nc                ,    i | ]}|d          |d         S )	token_strr#   r   r&   s     r   r(   z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>K   s"    %L%L%LQanaj%L%L%Lr   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>K   s    %L%L!%L%L%L r   ImageClassificationPipelinezInput Image)r   r   r   c                
    d| iS Nimagesr   r   s    r   r   z$load_from_pipeline.<locals>.<lambda>U   r   r   c                    d | D             S )Nc                ^    i | ]*}|d                               d          d         |d         +S r"   r$   r&   s     r   r(   z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>V   r)   r   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>V   r,   r   QuestionAnsweringPipeline   Context)linesr   r   QuestionAnswerScorec                    | |dS )N)contextquestionr   )cqs     r   r   z$load_from_pipeline.<locals>.<lambda>d   s    1!'D'D r   c                "    | d         | d         fS )Nanswerr#   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>e   s    ak1W:%> r   SummarizationPipelineSummaryc                
    d| iS r   r   r7   s    r   r   z$load_from_pipeline.<locals>.<lambda>m   r   r   c                    | d         d         S )Nr   summary_textr   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>n   s    QqT.%9 r   TextClassificationPipelinec                    | gS Nr   r7   s    r   r   z$load_from_pipeline.<locals>.<lambda>v       QC r   c                    d | D             S )Nc                ^    i | ]*}|d                               d          d         |d         +S r"   r$   r&   s     r   r(   z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>w   r)   r   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>w   r,   r   TextGenerationPipelinec                
    d| iS )Ntext_inputsr   r7   s    r   r   z$load_from_pipeline.<locals>.<lambda>   s    ]A$6 r   c                    | d         d         S Nr   generated_textr   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>       QqT*:%; r   TranslationPipelineTranslationc                    | gS r[   r   r7   s    r   r   z$load_from_pipeline.<locals>.<lambda>   r\   r   c                    | d         d         S )Nr   translation_textr   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>   s    QqT*<%= r   Text2TextGenerationPipelinezGenerated Textc                    | gS r[   r   r7   s    r   r   z$load_from_pipeline.<locals>.<lambda>   r\   r   c                    | d         d         S rc   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>   re   r   ZeroShotClassificationPipelinez&Possible class names (comma-separated)zAllow multiple true classesc                    | ||dS )N)	sequencescandidate_labelsmulti_labelr   )r   rP   ms      r   r   z$load_from_pipeline.<locals>.<lambda>   s    $% + + r   c                `      fdt          t           d                             D             S )Nc                F    i | ]}d          |         d         |         S )labelsscoresr   )r'   r   r+   s     r   r(   z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>   s8     & & &34(A(A& & &r   rv   )rangelenr*   s   `r   r   z$load_from_pipeline.<locals>.<lambda>   s?     & & & &8=c!H+>N>N8O8O& & & r   !DocumentQuestionAnsweringPipelinezInput DocumentLabelc                    | |dS N)imagerO   r   imgrQ   s     r   r   z$load_from_pipeline.<locals>.<lambda>       3A)F)F r   c                    d | D             S )Nc                ,    i | ]}|d          |d         S rS   r#   r   r&   s     r   r(   z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>   "    %I%I%I!ak1W:%I%I%Ir   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>       %I%Iq%I%I%I r   VisualQuestionAnsweringPipelinec                    | |dS r}   r   r   s     r   r   z$load_from_pipeline.<locals>.<lambda>   r   r   c                    d | D             S )Nc                ,    i | ]}|d          |d         S r   r   r&   s     r   r(   z8load_from_pipeline.<locals>.<lambda>.<locals>.<dictcomp>   r   r   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>   r   r   ImageToTextPipelineTextc                
    d| iS rB   r   r   s    r   r   z$load_from_pipeline.<locals>.<lambda>   r   r   c                    | d         d         S rc   r   r*   s    r   r   z$load_from_pipeline.<locals>.<lambda>   re   r   zUnsupported pipeline type: c                      d         |  }t          j        j        j        j        j        j        f          r | }n di |} d         |          }|S )Nr.   r/   r   )
isinstancetext_classificationrY   text2text_generationrk   rf   )paramsdataoutputr   pipeline_infor   s      r   fnzload_from_pipeline.<locals>.fn   s    *}\*F3-H.J.B
 
 
	$ 8T?DD8##d##D-}-d33r   r   r.   r/   title)0transformersr   ImportErrorr   basePipeline
ValueErrorhasattraudio_classificationr   r   Audior{   automatic_speech_recognitionr0   Textboxfeature_extractionr5   	Dataframe	fill_maskr:   image_classificationr@   Imagequestion_answeringrF   r   rT   r   rY   text_generationr_   rf   rk   zero_shot_classificationrn   Checkboxdocument_question_answeringrz   visual_question_answeringr   image_to_textr   r   copymodel	__class____name__)r   r   ier   interface_infor   r   s   `    @@r   load_from_pipeliner      s	   *******   O
 
	 h	 788 ECDDD |:;; mI
)0LA A mI !&#	   "'geDDD11WW

 

 
C	D	D _I.QJ J _I
 !&#*GE   ")GGG11..
 
 
:	;	; SI
).HA A SI !(wuEEE!+(5III11)>	
 
 
1	2	2 JIz)%68 8 JI !(wuEEE!'.>uMMM11LL	
 
 
<	=	= AI*)0LC C AI !&}U   "'.>uMMM11WW
 
 
:	;	; vI
).HA A vI
 ")EJJJ"EBBB
 "%@@@ wu=== ED>>
 
 
6	7	7 gIJ)0F= = gI !(qNNN!)	%HHH1199	
 
 
;	<	< ^I)/JB B ^I !(wuEEE!'.>uMMM'-WW	
 
 
7	8	8 UIZ)+B> > UI !(wuEEE!)GGG66;;	
 
 
4	5	5 LI*)0D; ; LI !(wuEEE!)eLLL'-==	
 
 
<	=	= CI*)0LC C CI !(wuEEE!)0@OOO'-;;	
 
 
?	@	@ :IZ)4SF F :I
 "???"Ee   #*GPUVVV "'.>uMMM 
 
 
$ 
B	C	C %I
-OI I %I  j8HQVWWW"EBBB "'geDDDFFII
 
 
@	A	A Ij)5UG G I
  jeTTT"EBBB "'geDDDFFII
 
 
4	5	5 I*))=; ; I !&}U   ")uEEE11;;
 
 GtH~~GGHHH      " #''))NN4|$}% 'n6?N7s   
 
/*/N)r   r	   r
   r   )
__doc__
__future__r   typingr   gradior   r   r   r   r   r   r   <module>r      s   ; ; # " " " " "                   '&&&&&&\ \ \ \ \ \r   