
    -i                         d dl mZmZmZ d dlmZ d dlmZmZm	Z	 d dl
mZmZ d dlmZ dZdZ G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          ZdS )    )AnyOptionalUnion)InferenceProviderMapping)RequestParameters_as_dict_as_url)TaskProviderHelperfilter_none)get_session	replicatezhttps://api.replicate.comc            	            e Zd Zdef fdZdededeeef         f fdZdededefdZd	ed
ede	de
e         fdZddeeef         de
e         defdZ xZS )ReplicateTasktaskc                 d    t                                          t          t          |           d S )N)providerbase_urlr   )super__init__	_PROVIDER	_BASE_URL)selfr   	__class__s     l/var/www/html/speakWrite/venv/lib/python3.11/site-packages/huggingface_hub/inference/_providers/replicate.pyr   zReplicateTask.__init__   s(    )idKKKKK    headersapi_keyreturnc                 V    t                                          ||          }d|d<   |S )NwaitPrefer)r   _prepare_headers)r   r   r   r   s      r   r"   zReplicateTask._prepare_headers   s+    ''**7G<<"r   mapped_modelc                     d|v rdS d| dS )N:z/v1/predictionsz/v1/models/z/predictions )r   r#   r   s      r   _prepare_routezReplicateTask._prepare_route   s$    ,$$7\7777r   inputs
parametersprovider_mapping_infoc                     |j         }dd|it          |          i}d|v r!|                    dd          d         }||d<   |S )Ninputpromptr%      version)provider_idr   split)r   r(   r)   r*   r#   payloadr/   s          r   _prepare_payload_as_dictz&ReplicateTask._prepare_payload_as_dict   s\     -8#*Xv,YZAXAX,Y"Z,"((a003G!(GIr   Nresponserequest_paramsc                 D   t          |          }|                    d          &t          d|                    d           d          t          |d         t                    r|d         n|d         d         }t                                          |          j        S )NoutputzLInference request timed out after 60 seconds. No output generated for model modelzHThe model might be in cold state or starting up. Please try again later.r   )r   getTimeoutError
isinstancestrr   content)r   r4   r5   response_dict
output_urls        r   get_responsezReplicateTask.get_response%   s     **X&&.[_l_p_pqx_y_y [ [ [  
 (2-2I3'O'OoM(##UbckUlmnUo 	 }}  ,,44r   N)__name__
__module____qualname__r<   r   dictr   r"   r'   r   r   r3   r   bytesr   r@   __classcell__r   s   @r   r   r      s%       LS L L L L L L s tCH~      
83 8 8 8 8 8 8
'+D\	$   
5 
5U5$;%7 
5RcId 
5ps 
5 
5 
5 
5 
5 
5 
5 
5r   r   c            	       F     e Zd Z fdZdedededee         f fdZ xZ	S )ReplicateTextToImageTaskc                 J    t                                          d           d S )Nztext-to-imager   r   r   r   s    r   r   z!ReplicateTextToImageTask.__init__3   s!    )))))r   r(   r)   r*   r   c                     t                                          |||          }|j        d|j         |d         d<   |S )Nzhttps://huggingface.co/r,   lora_weights)r   r3   adapter_weights_pathhf_model_idr   r(   r)   r*   r2   r   s        r   r3   z1ReplicateTextToImageTask._prepare_payload_as_dict6   sJ     88Mbcc 5A/lI^Ij/l/lGG^,r   
rB   rC   rD   r   r   rE   r   r   r3   rG   rH   s   @r   rJ   rJ   2   sz        * * * * *'+D\	$         r   rJ   c            	       F     e Zd Z fdZdedededee         f fdZ xZ	S )ReplicateTextToSpeechTaskc                 J    t                                          d           d S )Nztext-to-speechrL   rM   s    r   r   z"ReplicateTextToSpeechTask.__init__@   "    )*****r   r(   r)   r*   r   c                     t                                          |||          }|d                             d          |d         d<   |S )Nr,   r-   text)r   r3   poprR   s        r   r3   z2ReplicateTextToSpeechTask._prepare_payload_as_dictC   sH     88Mbcc#*7#3#7#7#A#A r   rS   rH   s   @r   rU   rU   ?   sz        + + + + +'+D\	$         r   rU   c            	       v     e Zd Zd fdZdedededee         fdZdde	e
ef         d	ee         defd
Z xZS )'ReplicateAutomaticSpeechRecognitionTaskr   Nc                 J    t                                          d           d S )Nzautomatic-speech-recognitionrL   rM   s    r   r   z0ReplicateAutomaticSpeechRecognitionTask.__init__L   s"    788888r   r(   r)   r*   c                     |j         }t          |d          }di d|it          |          i}d|v r|                    dd          d         |d<   |S )Nz	audio/wavdefault_mime_typer,   audior%   r.   r/   )r0   r	   r   r1   )r   r(   r)   r*   r#   	audio_urlr2   s          r   r3   z@ReplicateAutomaticSpeechRecognitionTask._prepare_payload_as_dictO   s}     -8FkBBB	  I&j))#
 ,!-!3!3C!;!;A!>GIr   r4   r5   c                    t          |          }|                    d          }t          |t                    rd|iS t          |t                    r:|r8|d         }t          |t                    rd|iS t          |t
                    r|}d }t          |t
                    r|                    d          }t          |t                    r|}|                    d          }t          |t                    r|}|                    d          }	t          |	t                    r<t                                          |	          }
|
                                 |
j        }|d|iS t          d          )Nr7   rY   r   transcriptiontranslationtxt_filezKReceived malformed response from Replicate automatic-speech-recognition API)
r   r9   r;   r<   listrE   r   raise_for_statusrY   
ValueError)r   r4   r5   r>   r7   
first_itemrY   rd   re   rf   text_responses              r   r@   z4ReplicateAutomaticSpeechRecognitionTask.get_responsed   so    **""8,,fc"" 	$F##fd## 	$ 	$J*c** ,
++*d++ $#"fd## 	*"JJ77M--- %$ **]33K+s++ #"zz*--H(C(( * + 1 1( ; ;..000$)D>!fgggr   )r   NrA   )rB   rC   rD   r   r   rE   r   r   r3   r   rF   r   r@   rG   rH   s   @r   r\   r\   K   s        9 9 9 9 9 9   8	
 
$   *!h !hU5$;%7 !hRcId !hps !h !h !h !h !h !h !h !hr   r\   c            	       B     e Zd Z fdZdedededee         fdZ xZ	S )ReplicateImageToImageTaskc                 J    t                                          d           d S )Nzimage-to-imagerL   rM   s    r   r   z"ReplicateImageToImageTask.__init__   rW   r   r(   r)   r*   r   c                     t          |d          }dd|it          |          i}|j        }d|v r!|                    dd          d         }||d<   |S )Nz
image/jpegr_   r,   input_imager%   r.   r/   )r	   r   r0   r1   )r   r(   r)   r*   	image_urlr2   r#   r/   s           r   r3   z2ReplicateImageToImageTask._prepare_payload_as_dict   so     FlCCC	#*]I,aU_I`I`,a"b,8,"((a003G!(GIr   rS   rH   s   @r   rm   rm      sp        + + + + +'+D\	$       r   rm   N)typingr   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r   r	   ,huggingface_hub.inference._providers._commonr
   r   huggingface_hub.utilsr   r   r   r   rJ   rU   r\   rm   r&   r   r   <module>rw      sp   ' ' ' ' ' ' ' ' ' ' ; ; ; ; ; ; R R R R R R R R R R X X X X X X X X - - - - - - 	'	"5 "5 "5 "5 "5& "5 "5 "5J
 
 
 
 
} 
 
 
	 	 	 	 	 	 	 	:h :h :h :h :hm :h :h :hz         r   