
    i                         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    |/var/www/vps2.regionflexible.com/Desarrollo/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$Vn!'O!<

6*
 	
r   N)
__name__
__module____qualname__r   bytesdictr   r   r(   __classcell__r   s   @r   r   r      s/    U
UT\ 
CTW[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}     '26:G\]$..):;ot,1D1DV1LP]1]"1"5"5m"D-t4EX9X)<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)NN+,>>+,4GG,6J()&FJ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 5a 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UT\ FCTW[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    2XPn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C9	+&CCCs   "r)   rY   r0   s   @r   r\   r\   E   s{    p 3      MM'+MD\M	M
DUT\ DCTW[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   