
    -i                         d dl Z d dlmZmZ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OptionalUnion)InferenceProviderMapping)RequestParameters_as_dict)BaseConversationalTaskBaseTextGenerationTaskTaskProviderHelperfilter_nonec                   P     e Zd Z fdZddeeef         dee         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    i/var/www/html/speakWrite/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   r   bytesdictr   r   r   r*   __classcell__r   s   @r   r   r      s{        U U U U U
 
U5$;%7 
RcId 
ps 
 
 
 
 
 
 
 
r   r   c            	       F     e Zd Z fdZdedededee         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    c                 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(   
isinstancer0   )r   r6   r7   r8   payloadr:   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   r0   r   r   r?   r1   r2   s   @r   r4   r4      s        U U U U U		'+	D\		$	 	 	 	 	 	 	 	 	 	r   r4   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	e         fd	Z
ddeeef         de	e         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   rH   rI   s      r   _prepare_routez$NebiusTextToImageTask._prepare_route1   s    ''r   r6   r7   r8   c                     |j         }t          |          }d|v r|                    d           |                    d          dvrd|d<   d|i|d|iS )Nguidance_scaler:   )b64_jsonurlrP   promptmodel)provider_idr   popr(   )r   r6   r7   r8   rH   s        r   r?   z.NebiusTextToImageTask._prepare_payload_as_dict4   su     -8 ,,
z))NN+,,,>>+,,4GGG,6J()&FJFFFFr   Nr   r   c                 l    t          |          }t          j        |d         d         d                   S )Ndatar   rP   )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   strrM   r   r0   r   r   r?   r   r/   r   r*   r1   r2   s   @r   rD   rD   -   s        k k k k k(3 ( ( ( ( ( (
G
G'+
GD\
G	$
G 
G 
G 
GF FU5$;%7 FRcId Fps F F F F F F F Fr   rD   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	e         fd	Z
ddeeef         de	e         defdZ xZS )NebiusFeatureExtractionTaskc                 P    t                                          ddd           d S )Nzfeature-extractionr   r   rF   r   r   s    r   r   z$NebiusFeatureExtractionTask.__init__F   s*    2XPnooooor   rH   rI   r    c                     dS )Nz/v1/embeddingsrK   rL   s      r   rM   z*NebiusFeatureExtractionTask._prepare_routeI   s    r   r6   r7   r8   c                     ||j         dS )N)inputrS   )rT   )r   r6   r7   r8   s       r   r?   z4NebiusFeatureExtractionTask._prepare_payload_as_dictL   s      *?*KLLLr   Nr   r   c                 D    t          |          d         }d |D             S )NrW   c                     g | ]
}|d          S )	embeddingrK   ).0re   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+   r[   r2   s   @r   r^   r^   E   s        p p p p p 3            MM'+MD\M	$M M M M
D DU5$;%7 DRcId Dps D D D D D D D Dr   r^   )rX   typingr   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r   ,huggingface_hub.inference._providers._commonr	   r
   r   r   r   r4   rD   r^   rK   r   r   <module>rm      sZ    ' ' ' ' ' ' ' ' ' ' ; ; ; ; ; ; 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   