
    wi                         d dl Z d dlmZ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Dict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    /var/www/development/aibuddy-work/election-extract/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   bytesr   r   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)   
isinstancedict)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   r   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   rI   rJ   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urlrQ   promptmodel)provider_idr   popr)   )r   r6   r7   r8   rI   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   rQ   )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   strrN   r   r   r   r   r?   r   r0   r   r+   r1   r2   s   @r   rE   rE   -   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   rE   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   rG   r   r   s    r   r   z$NebiusFeatureExtractionTask.__init__F   s*    2XPnooooor   rI   rJ   r!   c                     dS )Nz/v1/embeddingsrL   rM   s      r   rN   z*NebiusFeatureExtractionTask._prepare_routeI   s    r   r6   r7   r8   c                     ||j         dS )N)inputrT   )rU   )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 )NrX   c                     g | ]
}|d          S )	embeddingrL   ).0rf   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_   )rY   typingr   r   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r	   ,huggingface_hub.inference._providers._commonr
   r   r   r   r   r4   rE   r_   rL   r   r   <module>rn      s`    - - - - - - - - - - - - ; ; ; ; ; ; 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   