o
    0j                     @   s   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 de
ZG dd	 d	e	ZG d
d deZG dd deZdS )    N)Any)InferenceProviderMapping)RequestParameters_as_dict)BaseConversationalTaskBaseTextGenerationTaskTaskProviderHelperfilter_nonec                       s<   e Zd Z fddZd	deeB dedB defddZ  Z	S )
NebiusTextGenerationTaskc                       t  jddd d S Nnebiushttps://api.studio.nebius.ai)providerbase_urlsuper__init__self	__class__ l/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/huggingface_hub/inference/_providers/nebius.pyr         z!NebiusTextGenerationTask.__init__Nresponserequest_paramsreturnc                 C   s0   t |d d }|d |d|dddS )Nchoicesr   textfinish_reasonseed)r    r!   )Zgenerated_textdetails)r   get)r   r   r   outputr   r   r   get_response   s   z%NebiusTextGenerationTask.get_responseN)
__name__
__module____qualname__r   bytesdictr   r   r%   __classcell__r   r   r   r   r
      s    (r
   c                	       s>   e Zd Z fddZdededededB f fdd	Z  ZS )
NebiusConversationalTaskc                    r   r   r   r   r   r   r   r      r   z!NebiusConversationalTask.__init__inputs
parametersprovider_mapping_infor   Nc                    s^   t  |||}|d}t|tr-|ddkr-|d}t|tr-d|v r-|d |d< |S )Nresponse_formattypeZjson_schemaZschemaZguided_json)r   _prepare_payload_as_dictr#   
isinstancer+   )r   r.   r/   r0   payloadr1   Zjson_schema_detailsr   r   r   r3   !   s   

z1NebiusConversationalTask._prepare_payload_as_dict)	r'   r(   r)   r   r   r+   r   r3   r,   r   r   r   r   r-      s    r-   c                	       p   e Zd Z fddZdededefddZded	ed
ededB fddZ	dde
eB dedB defddZ  ZS )NebiusTextToImageTaskc                       t  jdddd d S )Nztext-to-imager   r   taskr   r   r   r   r   r   r   r   .      zNebiusTextToImageTask.__init__mapped_modelapi_keyr   c                 C      dS )Nz/v1/images/generationsr   r   r<   r=   r   r   r   _prepare_route1      z$NebiusTextToImageTask._prepare_router.   r/   r0   Nc                 C   sJ   |j }t|}d|v r|d |ddvrd|d< d|i|d|iS )NZguidance_scaler1   )b64_jsonurlrB   promptmodel)provider_idr	   popr#   )r   r.   r/   r0   r<   r   r   r   r3   4   s   
z.NebiusTextToImageTask._prepare_payload_as_dictr   r   c                 C   s   t |}t|d d d S )Ndatar   rB   )r   base64	b64decode)r   r   r   Zresponse_dictr   r   r   r%   @   s   z"NebiusTextToImageTask.get_responser&   r'   r(   r)   r   strr@   r   r+   r   r3   r*   r   r%   r,   r   r   r   r   r7   -   s    
(r7   c                	       r6   )NebiusFeatureExtractionTaskc                    r8   )Nzfeature-extractionr   r   r9   r   r   r   r   r   r   F   r;   z$NebiusFeatureExtractionTask.__init__r<   r=   r   c                 C   r>   )Nz/v1/embeddingsr   r?   r   r   r   r@   I   rA   z*NebiusFeatureExtractionTask._prepare_router.   r/   r0   Nc                 C   s   ||j dS )N)inputrE   )rF   )r   r.   r/   r0   r   r   r   r3   L   s   z4NebiusFeatureExtractionTask._prepare_payload_as_dictr   r   c                 C   s   t |d }dd |D S )NrH   c                 S   s   g | ]}|d  qS )	embeddingr   ).0rO   r   r   r   
<listcomp>S   s    z<NebiusFeatureExtractionTask.get_response.<locals>.<listcomp>)r   )r   r   r   Z
embeddingsr   r   r   r%   Q   s   z(NebiusFeatureExtractionTask.get_responser&   rK   r   r   r   r   rM   E   s    
(rM   )rI   typingr   Zhuggingface_hub.hf_apir   Z!huggingface_hub.inference._commonr   r   Z,huggingface_hub.inference._providers._commonr   r   r   r	   r
   r-   r7   rM   r   r   r   r   <module>   s    