§
    }Štj_  ã                   ó  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZ ddlmZmZmZmZ dZdZd	ed
efd„Zdedeeef         d
eeef         fd„Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    N)ÚAny)ÚInferenceProviderMapping)Ú	MimeBytesÚRequestParametersÚ_as_dictÚ_open_as_mime_bytesé   )ÚBaseConversationalTaskÚBaseTextGenerationTaskÚTaskProviderHelperÚfilter_noneÚ	deepinfrazhttps://api.deepinfra.comÚvalueÚreturnc                 óä   — t          | t          ¦  «        r| S t          | t          ¦  «        r| rdndS t          | t          t          f¦  «        rt          | ¦  «        S t          j        | ¦  «        S )NÚtrueÚfalse)Ú
isinstanceÚstrÚboolÚintÚfloatÚjsonÚdumps)r   s    úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/huggingface_hub/inference/_providers/deepinfra.pyÚ_form_field_valuer      sl   € Ý�%�ÑÔð ØˆÝ�%�ÑÔð ,ØÐ+ˆvˆv GÐ+Ý�%�#�u˜Ñ&Ô&ð Ý�5‰zŒzÐÝŒ:�eÑÔÐó    ÚaudioÚfieldsc                 óp  — t          j        ¦   «         j        }dt          j        | j        pd¦  «        pdz   }d|› �                     ¦   «         d|› d�                     ¦   «         d| j        pd› �                     ¦   «         d	t          | ¦  «        g}|                     ¦   «         D ]X\  }}|d|› �                     ¦   «         d
|› d�                     ¦   «         d	t          |¦  «                             ¦   «         gz  }ŒY|d|› d�                     ¦   «         d	gz  }d 
                    |¦  «        d|› �fS )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      sR  € ÝŒz‰|Œ|Ô€Hà�)Ô3°E´OÐ4IÀrÑJÔJÐTÈfÑU€HàˆXˆˆ×ÒÑ Ô ØMÀ(ÐMÐMÐM×TÒTÑVÔVØH˜œÐFÐ,FÐHÐH×OÒOÑQÔQØÝˆe‰Œð€Eð —l’l‘n”nð 
ð 
‰
ˆˆUØØ�ˆOˆO×"Ò"Ñ$Ô$Ø;°SÐ;Ð;Ð;×BÒBÑDÔDØÝ˜eÑ$Ô$×+Ò+Ñ-Ô-ð	
ñ 	
ˆˆð 
Ð�8ÐÐÐ×&Ò&Ñ(Ô(¨#Ð.Ñ.€EØ�<Š<˜ÑÔÐ KÀÐ KÐ KÐKÐKr   c            	       ór   ‡ — e Zd Zˆ fd„Zdededefd„Zdedededed	z  fd
„Z	dde
ez  ded	z  defd„Zˆ xZS )ÚDeepInfraTextGenerationTaskc                 ób   •— t          ¦   «                              t          t          ¬¦  «         d S ©N)ÚproviderÚbase_url©ÚsuperÚ__init__Ú	_PROVIDERÚ	_BASE_URL©ÚselfÚ	__class__s    €r   r:   z$DeepInfraTextGenerationTask.__init__1   ó&   ø€ Ý‰Œ×Ò¥)µiÐÑ@Ô@Ð@Ð@Ð@r   Úmapped_modelÚapi_keyr   c                 ó   — dS )Nz/v1/openai/completions© ©r>   rA   rB   s      r   Ú_prepare_routez*DeepInfraTextGenerationTask._prepare_route4   s   € Ø'Ð'r   ÚinputsÚ
parametersÚprovider_mapping_infoNc                 ó”   — t          |                     ¦   «         ¦  «        }|                     dd ¦  «        |d<   d|i|¥d|j        i¥S )NÚmax_new_tokensÚ
max_tokensÚpromptÚmodel)r   ÚcopyÚpopÚprovider_id)r>   rG   rH   rI   Úparamss        r   Ú_prepare_payload_as_dictz4DeepInfraTextGenerationTask._prepare_payload_as_dict7   sR   € õ ˜ZŸ_š_Ñ.Ô.Ñ/Ô/ˆØ%ŸzšzÐ*:¸DÑAÔAˆˆ|Ñà˜&ÐW FÐW¨GÐ5JÔ5VÐWÐWÐWr   ÚresponseÚrequest_paramsc                 ó    — t          |¦  «        d         d         }|d         |                     d¦  «        |                     d¦  «        dœdœS )NÚchoicesr   ÚtextÚfinish_reasonÚseed)rY   rZ   )Úgenerated_textÚdetails)r   Úget)r>   rT   rU   Úoutputs       r   Úget_responsez(DeepInfraTextGenerationTask.get_response?   sW   € Ý˜(Ñ#Ô# IÔ.¨qÔ1ˆà$ Vœnà!'§¢¨OÑ!<Ô!<ØŸ
š
 6Ñ*Ô*ðð ð
ð 
ð 	
r   ©N)Ú__name__Ú
__module__Ú__qualname__r:   r   rF   r   Údictr   rS   r*   r   r_   Ú__classcell__©r?   s   @r   r3   r3   0   sà   ø€ € € € € ðAð Að Að Að Að(¨3ð (¸ð (Àð (ð (ð (ð (ðXØðXØ'+ðXØD\ðXà	�‰ðXð Xð Xð Xð
ð 
 U¨T¡\ð 
ÐCTÐW[ÑC[ð 
Ðgjð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r3   c                   ó2   ‡ — e Zd Zˆ fd„Zdededefd„Zˆ xZS )ÚDeepInfraConversationalTaskc                 ób   •— t          ¦   «                              t          t          ¬¦  «         d S r5   r8   r=   s    €r   r:   z$DeepInfraConversationalTask.__init__K   r@   r   rA   rB   r   c                 ó   — dS )Nz/v1/openai/chat/completionsrD   rE   s      r   rF   z*DeepInfraConversationalTask._prepare_routeN   s   € Ø,Ð,r   )ra   rb   rc   r:   r   rF   re   rf   s   @r   rh   rh   J   sf   ø€ € € € € ðAð Að Að Að Að-¨3ð -¸ð -Àð -ð -ð -ð -ð -ð -ð -ð -r   rh   c                   ó|   ‡ — e Zd Zˆ fd„Zdededefd„Zdededed	ed
z  de	d
z  f
d„Z
ddeez  ded
z  defd„Zˆ xZS )Ú'DeepInfraAutomaticSpeechRecognitionTaskc                 ód   •— t          ¦   «                              t          t          d¬¦  «         d S )Nzautomatic-speech-recognition)r6   r7   Útaskr8   r=   s    €r   r:   z0DeepInfraAutomaticSpeechRecognitionTask.__init__S   s)   ø€ Ý‰Œ×Ò¥)µiÐFdÐÑeÔeÐeÐeÐer   rA   rB   r   c                 ó   — dS )Nz/v1/openai/audio/transcriptionsrD   rE   s      r   rF   z6DeepInfraAutomaticSpeechRecognitionTask._prepare_routeV   s   € Ø0Ð0r   rG   rH   rI   Úextra_payloadNc                 ó¾   — t          |¦  «        }i t          |¦  «        ¥t          |pi ¦  «        ¥d|j        i¥}t          ||¦  «        \  }}t	          ||¬¦  «        S )NrN   )r(   )r   r   rQ   r1   r   )	r>   rG   rH   rI   rp   r   r   ÚbodyÚcontent_types	            r   Ú_prepare_payload_as_byteszADeepInfraAutomaticSpeechRecognitionTask._prepare_payload_as_bytesY   s{   € õ $ FÑ+Ô+ˆð"
Ý˜*Ñ%Ô%ð"
å˜-Ð-¨2Ñ.Ô.ð"
ð Ð*Ô6ð"
ð "
ˆõ
 /¨u°fÑ=Ô=ÑˆˆlÝ˜¨Ð6Ñ6Ô6Ð6r   rT   rU   c                 ó  — t          |¦  «        }|d         }t          |t          ¦  «        s t          dt	          |¦  «        › d�¦  «        ‚d|i}|                     d¦  «        }t          |t          ¦  «        rd„ |D ¦   «         |d<   |S )NrX   zBUnexpected output format from DeepInfra API. Expected string, got ú.Úsegmentsc                 ó¸   — g | ]W}t          |t          ¦  «        ¯|                     d ¦  «        |                     d¦  «        |                     d¦  «        gdœ‘ŒXS )rX   ÚstartÚend)rX   Ú	timestamp)r   rd   r]   )Ú.0Úsegments     r   ú
<listcomp>zHDeepInfraAutomaticSpeechRecognitionTask.get_response.<locals>.<listcomp>s   sm   € ð  ð  ð  àÝ˜g¥tÑ,Ô,ð Ø Ÿš VÑ,Ô,¸G¿KºKÈÑ<PÔ<PÐRY×R]ÒR]Ð^cÑRdÔRdÐ;eÐfÐfð ð  ð  r   Úchunks)r   r   r   Ú
ValueErrorÚtyper]   Úlist)r>   rT   rU   r^   rX   Úresultrw   s          r   r_   z4DeepInfraAutomaticSpeechRecognitionTask.get_responsek   s¥   € Ý˜(Ñ#Ô#ˆØ�fŒ~ˆÝ˜$¥Ñ$Ô$ð 	qÝÐoÕbfÐgkÑblÔblÐoÐoÐoÑpÔpÐpØ"(¨$ ˆØ—:’:˜jÑ)Ô)ˆÝ�h¥Ñ%Ô%ð 	ð ð  à'ð ñ  ô  ˆF�8Ñð
 ˆr   r`   )ra   rb   rc   r:   r   rF   r   rd   r   r   rt   r*   r   r_   re   rf   s   @r   rl   rl   R   sí   ø€ € € € € ðfð fð fð fð fð1¨3ð 1¸ð 1Àð 1ð 1ð 1ð 1ð7àð7ð ð7ð  8ð	7ð
 ˜d‘{ð7ð 
�TÑ	ð7ð 7ð 7ð 7ð$ð  U¨T¡\ð ÐCTÐW[ÑC[ð Ðgjð ð ð ð ð ð ð ð r   rl   )r   r&   r#   Útypingr   Úhuggingface_hub.hf_apir   Ú!huggingface_hub.inference._commonr   r   r   r   Ú_commonr
   r   r   r   r;   r<   r   r   rd   Útupler*   r1   r3   rh   rl   rD   r   r   ú<module>r‰      sŠ  ðØ €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ ià dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dð €	Ø'€	ð˜Sð  Sð ð ð ð ðL˜Yð L°°S¸#°X´ð LÀ5ÈÐPSÈÔCTð Lð Lð Lð Lð,
ð 
ð 
ð 
ð 
Ð"8ñ 
ô 
ð 
ð4-ð -ð -ð -ð -Ð"8ñ -ô -ð -ð&ð &ð &ð &ð &Ð.@ñ &ô &ð &ð &ð &r   