
    5pj                        S SK r S SKrS SKrS SKJr  S SKJr  S SKJrJ	r	J
r
Jr  SSKJrJrJrJr  SrSrS	\S
\4S jrS\S\\\4   S
\\\4   4S jr " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N)Any)InferenceProviderMapping)	MimeBytesRequestParameters_as_dict_open_as_mime_bytes   )BaseConversationalTaskBaseTextGenerationTaskTaskProviderHelperfilter_none	deepinfrazhttps://api.deepinfra.comvaluereturnc                     [        U [        5      (       a  U $ [        U [        5      (       a  U (       a  S$ S$ [        U [        [        45      (       a  [        U 5      $ [
        R                  " U 5      $ )Ntruefalse)
isinstancestrboolintfloatjsondumps)r   s    j/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/huggingface_hub/inference/_providers/deepinfra.py_form_field_valuer      sX    %%v+G+%#u&&5z::e    audiofieldsc                 n   [         R                  " 5       R                  nS[        R                  " U R
                  =(       d    S5      =(       d    S-   nSU 3R                  5       SU S3R                  5       SU R
                  =(       d    S 3R                  5       S	[        U 5      /nUR                  5        HH  u  pVUSU 3R                  5       S
U S3R                  5       S	[        U5      R                  5       /-  nMJ     USU S3R                  5       S	/-  nSR                  U5      SU 34$ )Nr    z.wavz--z7Content-Disposition: form-data; name="file"; filename=""zContent-Type: zapplication/octet-streamr   z&Content-Disposition: form-data; name="s   
zmultipart/form-data; boundary=)uuiduuid4hex	mimetypesguess_extension	mime_typeencodebytesitemsr   join)r   r   boundaryfilenamelineskeyr   s          r   _encode_multipartr1      s)   zz|H)33EOO4IrJTfUH
XJ 
A(1MTTV
F,FGHOOQeE lln

O""$4SE;BBDe$++-	
 	
 % 
8*B&&(#..E<<"@
 KKKr   c            	          ^  \ rS rSrU 4S jrS\S\S\4S jrS\S\S	\	S\S
-  4S jr
SS\\-  S\S
-  S\4S jjrSrU =r$ )DeepInfraTextGenerationTask0   c                 2   > [         TU ]  [        [        S9  g N)providerbase_urlsuper__init__	_PROVIDER	_BASE_URLself	__class__s    r   r;   $DeepInfraTextGenerationTask.__init__1       )i@r   mapped_modelapi_keyr   c                     g)Nz/v1/openai/completions r?   rC   rD   s      r   _prepare_route*DeepInfraTextGenerationTask._prepare_route4   s    'r   inputs
parametersprovider_mapping_infoNc                     [        UR                  5       5      nUR                  SS 5      US'   SU0UESUR                  0E$ )Nmax_new_tokens
max_tokenspromptmodel)r   copypopprovider_id)r?   rJ   rK   rL   paramss        r   _prepare_payload_as_dict4DeepInfraTextGenerationTask._prepare_payload_as_dict7   sI     Z__./%zz*:DA|&WFWG5J5V5VWWr   responserequest_paramsc                 v    [        U5      S   S   nUS   UR                  S5      UR                  S5      S.S.$ )Nchoicesr   textfinish_reasonseed)r]   r^   )generated_textdetails)r   get)r?   rX   rY   outputs       r   get_response(DeepInfraTextGenerationTask.get_response?   sD    (#I.q1$Vn!'O!<

6*
 	
r   rF   N__name__
__module____qualname____firstlineno__r;   r   rH   r   dictr   rV   r*   r   rc   __static_attributes____classcell__r@   s   @r   r3   r3   0   s|    A(3 ( ( (XX'+XD\X	X
UT\ 
CTW[C[ 
gj 
 
r   r3   c                   >   ^  \ rS rSrU 4S jrS\S\S\4S jrSrU =r$ )DeepInfraConversationalTaskJ   c                 2   > [         TU ]  [        [        S9  g r6   r9   r>   s    r   r;   $DeepInfraConversationalTask.__init__K   rB   r   rC   rD   r   c                     g)Nz/v1/openai/chat/completionsrF   rG   s      r   rH   *DeepInfraConversationalTask._prepare_routeN   s    ,r   rF   )	rg   rh   ri   rj   r;   r   rH   rl   rm   rn   s   @r   rp   rp   J   s(    A-3 - - - -r   rp   c                      ^  \ rS rSrU 4S jrS\S\S\4S jrS\S\S	\	S
\S-  S\
S-  4
S jrSS\\-  S\S-  S\4S jjrSrU =r$ )'DeepInfraAutomaticSpeechRecognitionTaskR   c                 4   > [         TU ]  [        [        SS9  g )Nzautomatic-speech-recognitionr7   r8   taskr9   r>   s    r   r;   0DeepInfraAutomaticSpeechRecognitionTask.__init__S   s    )iFder   rC   rD   r   c                     g)Nz/v1/openai/audio/transcriptionsrF   rG   s      r   rH   6DeepInfraAutomaticSpeechRecognitionTask._prepare_routeV   s    0r   rJ   rK   rL   extra_payloadNc                     [        U5      n0 [        U5      E[        U=(       d    0 5      ESUR                  0En[        XV5      u  px[	        XxS9$ )NrQ   )r(   )r   r   rT   r1   r   )	r?   rJ   rK   rL   r   r   r   bodycontent_types	            r   _prepare_payload_as_bytesADeepInfraAutomaticSpeechRecognitionTask._prepare_payload_as_bytesY   sa     $F+"
*%"
--2."
 *66"

 /u=66r   rX   rY   c                    [        U5      nUS   n[        U[        5      (       d  [        S[	        U5       S35      eSU0nUR                  S5      n[        U[        5      (       a_  U Vs/ s HN  n[        U[        5      (       d  M  UR                  S5      UR                  S5      UR                  S5      /S.PMP     snUS'   U$ s  snf )	Nr\   zBUnexpected output format from DeepInfra API. Expected string, got .segmentsstartend)r\   	timestampchunks)r   r   r   
ValueErrortypera   listrk   )r?   rX   rY   rb   r\   resultr   segments           r   rc   4DeepInfraAutomaticSpeechRecognitionTask.get_responsek   s    (#f~$$$abfgkblammnopp"($::j)h%%  ( 'Ggt, gV,GKK<PRYR]R]^cRd;ef' F8
  s   ,C		8C	rF   re   )rg   rh   ri   rj   r;   r   rH   r   rk   r   r   r   r*   r   rc   rl   rm   rn   s   @r   rw   rw   R   s    f13 1 1 177 7  8	7
 d{7 
T	7$UT\ CTW[C[ gj  r   rw   c            	          ^  \ rS rSrU 4S jrS\S\S\4S jrS\S\S	\	S\S
-  4S jr
SS\\-  S\S
-  S\4S jjrSrU =r$ )DeepInfraTextToSpeechTask{   c                 4   > [         TU ]  [        [        SS9  g )Nztext-to-speechrz   r9   r>   s    r   r;   "DeepInfraTextToSpeechTask.__init__|   s    )iFVWr   rC   rD   r   c                     g)Nz/v1/openai/audio/speechrF   rG   s      r   rH   (DeepInfraTextToSpeechTask._prepare_route   s    (r   rJ   rK   rL   Nc                 <    SU0[        U5      ESUR                  0E$ NinputrQ   r   rT   r?   rJ   rK   rL   s       r   rV   2DeepInfraTextToSpeechTask._prepare_payload_as_dict   s3     V
*%
 *66
 	
r   rX   rY   c                 t    [        U[        5      (       a  U$ [        S[        U5      R                   S35      e)Nz1Expected raw audio bytes for text-to-speech, got r   )r   r*   r   r   rg   )r?   rX   rY   s      r   rc   &DeepInfraTextToSpeechTask.get_response   s6    h&&OLTRZ^MdMdLeefghhr   rF   re   rf   rn   s   @r   r   r   {   s|    X)3 ) ) )



'+

D\

	

iUT\ iCTW[C[ igj i ir   r   c            	          ^  \ rS rSrU 4S jrS\S\S\4S jrS\S\S	\	S\S
-  4S jr
SS\\-  S\S
-  S\4S jjrSrU =r$ )DeepInfraFeatureExtractionTask   c                 4   > [         TU ]  [        [        SS9  g )Nzfeature-extractionrz   r9   r>   s    r   r;   'DeepInfraFeatureExtractionTask.__init__   s    )iFZ[r   rC   rD   r   c                     g)Nz/v1/openai/embeddingsrF   rG   s      r   rH   -DeepInfraFeatureExtractionTask._prepare_route   s    &r   rJ   rK   rL   Nc                 <    SU0[        U5      ESUR                  0E$ r   r   r   s       r   rV   7DeepInfraFeatureExtractionTask._prepare_payload_as_dict   s3    
 V
*%
 *66
 	
r   rX   rY   c                 N    [        U5      S    Vs/ s H  o3S   PM	     sn$ s  snf )Ndata	embedding)r   )r?   rX   rY   items       r   rc   +DeepInfraFeatureExtractionTask.get_response   s)    .6x.@.HI.Hd[!.HIIIs   "rF   re   rf   rn   s   @r   r   r      s|    \'3 ' ' '

'+
D\
	
JUT\ JCTW[C[ Jgj J Jr   r   )r   r&   r#   typingr   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r   r   r   _commonr
   r   r   r   r<   r=   r   r   rk   tupler*   r1   r3   rp   rw   r   r   rF   r   r   <module>r      s        ; i i d d 	'	S S LY LS#X L5PSCT L,
"8 
4-"8 -&.@ &Ri 2 i2J%7 Jr   