Ë
    Z²j¹  ã                   ó¤   — d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZ  G d„ de
«      Z G d„ d	e	«      Z G d
„ de«      Z G d„ de«      Zy)é    N)ÚAny)ÚInferenceProviderMapping)ÚRequestParametersÚ_as_dict)ÚBaseConversationalTaskÚBaseTextGenerationTaskÚTaskProviderHelperÚfilter_nonec                   ó@   ‡ — e Zd Zˆ fd„Zddeez  dedz  defd„Zˆ xZ	S )ÚNebiusTextGenerationTaskc                 ó(   •— t         ‰| �  dd¬«       y ©NÚnebiusúhttps://api.studio.nebius.ai)ÚproviderÚbase_url©ÚsuperÚ__init__©ÚselfÚ	__class__s    €új/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/huggingface_hub/inference/_providers/nebius.pyr   z!NebiusTextGenerationTask.__init__   ó   ø€ Ü‰Ñ (Ð5SÐÕTó    NÚresponseÚrequest_paramsÚreturnc                 óv   — t        |«      d   d   }|d   |j                  d«      |j                  d«      dœdœS )NÚchoicesr   ÚtextÚfinish_reasonÚseed)r"   r#   )Úgenerated_textÚdetails)r   Úget)r   r   r   Úoutputs       r   Úget_responsez%NebiusTextGenerationTask.get_response   sD   € Ü˜(Ó# IÑ.¨qÑ1ˆà$ V™nà!'§¡¨OÓ!<ØŸ
™
 6Ó*ññ
ð 	
r   ©N)
Ú__name__Ú
__module__Ú__qualname__r   ÚbytesÚdictr   r   r(   Ú__classcell__©r   s   @r   r   r      s/   ø„ ôUñ
 U¨T¡\ð 
ÐCTÐW[ÑC[ð 
Ðgj÷ 
r   r   c            	       ó@   ‡ — e Zd Zˆ fd„Zdededededz  fˆ fd„Zˆ xZS )ÚNebiusConversationalTaskc                 ó(   •— t         ‰| �  dd¬«       y r   r   r   s    €r   r   z!NebiusConversationalTask.__init__   r   r   ÚinputsÚ
parametersÚprovider_mapping_infor   Nc                 óî   •— t         ‰| �  |||«      }|j                  d«      }t        |t        «      rA|j                  d«      dk(  r-|j                  d«      }t        |t        «      rd|v r|d   |d<   |S )NÚresponse_formatÚtypeÚjson_schemaÚschemaÚguided_json)r   Ú_prepare_payload_as_dictr&   Ú
isinstancer.   )r   r4   r5   r6   Úpayloadr8   Újson_schema_detailsr   s          €r   r=   z1NebiusConversationalTask._prepare_payload_as_dict!   s}   ø€ ô ‘'Ñ2°6¸:ÐG\Ó]ˆØ$Ÿ.™.Ð):Ó;ˆÜ�o¤tÔ,°×1DÑ1DÀVÓ1LÐP]Ò1]Ø"1×"5Ñ"5°mÓ"DÐÜÐ-¬tÔ4¸ÐEXÑ9XØ)<¸XÑ)F�˜Ñ&Øˆr   )	r*   r+   r,   r   r   r.   r   r=   r/   r0   s   @r   r2   r2      s7   ø„ ôUð	Øð	Ø'+ð	ØD\ð	à	�‰÷	ñ 	r   r2   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 )ÚNebiusTextToImageTaskc                 ó*   •— t         ‰| �  ddd¬«       y )Nztext-to-imager   r   ©Útaskr   r   r   r   s    €r   r   zNebiusTextToImageTask.__init__.   s   ø€ Ü‰Ñ˜o¸ÐKiÐÕjr   Úmapped_modelÚapi_keyr   c                  ó   — y)Nz/v1/images/generations© ©r   rF   rG   s      r   Ú_prepare_routez$NebiusTextToImageTask._prepare_route1   s   € Ø'r   r4   r5   r6   Nc                 óž   — |j                   }t        |«      }d|v r|j                  d«       |j                  d«      dvrd|d<   d|i|¥d|i¥S )NÚguidance_scaler8   )Úb64_jsonÚurlrN   ÚpromptÚmodel)Úprovider_idr
   Úpopr&   )r   r4   r5   r6   rF   s        r   r=   z.NebiusTextToImageTask._prepare_payload_as_dict4   sc   € ð -×8Ñ8ˆÜ  Ó,ˆ
Ø˜zÑ)Ø�N‰NÐ+Ô,Ø�>‰>Ð+Ó,Ð4GÑGØ,6ˆJÐ(Ñ)à˜&ÐF JÐF°¸ÑFÐFr   r   r   c                 óT   — t        |«      }t        j                  |d   d   d   «      S )NÚdatar   rN   )r   Úbase64Ú	b64decode)r   r   r   Úresponse_dicts       r   r(   z"NebiusTextToImageTask.get_response@   s,   € Ü  Ó*ˆÜ×Ñ ¨fÑ 5°aÑ 8¸Ñ DÓEÐEr   r)   ©r*   r+   r,   r   ÚstrrK   r   r.   r   r=   r-   r   r(   r/   r0   s   @r   rB   rB   -   s{   ø„ ôkð(¨3ð (¸ð (Àó (ð
GØð
GØ'+ð
GØD\ð
Gà	�‰ó
GñF U¨T¡\ð FÐCTÐW[ÑC[ð FÐgj÷ Fr   rB   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 )ÚNebiusFeatureExtractionTaskc                 ó*   •— t         ‰| �  ddd¬«       y )Nzfeature-extractionr   r   rD   r   r   s    €r   r   z$NebiusFeatureExtractionTask.__init__F   s   ø€ Ü‰ÑÐ2¸XÐPnÐÕor   rF   rG   r   c                  ó   — y)Nz/v1/embeddingsrI   rJ   s      r   rK   z*NebiusFeatureExtractionTask._prepare_routeI   s   € Ør   r4   r5   r6   Nc                 ó    — ||j                   dœS )N)ÚinputrQ   )rR   )r   r4   r5   r6   s       r   r=   z4NebiusFeatureExtractionTask._prepare_payload_as_dictL   s   € ð  Ð*?×*KÑ*KÑLÐLr   r   r   c                 óN   — t        |«      d   }|D �cg c]  }|d   ‘Œ	 c}S c c}w )NrU   Ú	embedding)r   )r   r   r   Ú
embeddingsrb   s        r   r(   z(NebiusFeatureExtractionTask.get_responseQ   s*   € Ü˜hÓ'¨Ñ/ˆ
Ø8BÖC¨9�	˜+Ó&ÒCÐCùÒCs   “"r)   rY   r0   s   @r   r\   r\   E   s{   ø„ ôpð ¨3ð  ¸ð  Àó  ðMØðMØ'+ðMØD\ðMà	�‰óMñ
D U¨T¡\ð DÐCTÐW[ÑC[ð DÐgj÷ Dr   r\   )rV   Útypingr   Úhuggingface_hub.hf_apir   Ú!huggingface_hub.inference._commonr   r   Ú,huggingface_hub.inference._providers._commonr   r   r	   r
   r   r2   rB   r\   rI   r   r   ú<module>rh      sS   ðÛ Ý å ;ß I÷ó ô
Ð5ô 
ôÐ5ô ô FÐ.ô Fô0DÐ"4õ Dr   