
    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dS )    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                 N    t                                          dd           d S Nnebiushttps://api.studio.nebius.ai)providerbase_urlsuper__init__self	__class__s    n/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/huggingface_hub/inference/_providers/nebius.pyr   z!NebiusTextGenerationTask.__init__   '    (5STTTTT    Nresponserequest_paramsreturnc                     t          |          d         d         }|d         |                    d          |                    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   sW    (##I.q1$Vn!'O!<!<

6** 
 
 	
r   N)
__name__
__module____qualname__r   bytesdictr   r   r(   __classcell__r   s   @r   r   r      sw        U U U U 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                 N    t                                          dd           d S r   r   r   s    r   r   z!NebiusConversationalTask.__init__   r   r   inputs
parametersprovider_mapping_infor   Nc                 F   t                                          |||          }|                    d          }t          |t                    rR|                    d          dk    r9|                    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26:G\]]$..):;;ot,, 	G1D1DV1L1LP]1]1]"1"5"5m"D"D-t44 GEX9X9X)<X)F&r   )	r*   r+   r,   r   r   r.   r   r=   r/   r0   s   @r   r2   r2      s        U U U U 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                 P    t                                          ddd           d S )Nztext-to-imager   r   taskr   r   r   r   s    r   r   zNebiusTextToImageTask.__init__.   s)    oKijjjjjr   mapped_modelapi_keyr   c                     dS )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|                    d           |                    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   su     -8 ,,
z))NN+,,,>>+,,4GGG,6J()&FJFFFFr   r   r   c                 l    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EEr   r)   r*   r+   r,   r   strrK   r   r.   r   r=   r-   r   r(   r/   r0   s   @r   rB   rB   -   s        k k k k k(3 ( ( ( ( ( (
G
G'+
GD\
G	
G 
G 
G 
GF FUT\ FCTW[C[ Fgj F F F F F F F 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                 P    t                                          ddd           d S )Nzfeature-extractionr   r   rD   r   r   s    r   r   z$NebiusFeatureExtractionTask.__init__F   s*    2XPnooooor   rF   rG   r   c                     dS )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LLLr   r   r   c                 D    t          |          d         }d |D             S )NrU   c                     g | ]
}|d          S )	embeddingrI   ).0rc   s     r   
<listcomp>z<NebiusFeatureExtractionTask.get_response.<locals>.<listcomp>S   s    CCC9	+&CCCr   )r   )r   r   r   
embeddingss       r   r(   z(NebiusFeatureExtractionTask.get_responseQ   s(    h''/
CC
CCCCr   r)   rY   r0   s   @r   r\   r\   E   s        p p p p p 3            MM'+MD\M	M M M M
D DUT\ DCTW[C[ Dgj D D D D D D D 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>rk      sN          ; ; ; ; ; ; I I I I I I I I           
 
 
 
 
5 
 
 
    5    F F F F F. F F F0D D D D D"4 D D D D Dr   