U
    ”Ê¹jü  ã                   @   s˜   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„ 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ÚDictÚOptionalÚUnion)ÚInferenceProviderMapping)ÚRequestParametersÚ_as_dict)ÚBaseConversationalTaskÚBaseTextGenerationTaskÚTaskProviderHelperÚfilter_nonec                       s<   e Zd Z‡ fdd„Zdeeef ee e	dœdd„Z
‡  ZS )ÚNebiusTextGenerationTaskc                    s   t ƒ jddd� d S ©NÚnebiusúhttps://api.studio.nebius.ai)ÚproviderÚbase_url©ÚsuperÚ__init__©Úself©Ú	__class__© új/var/www/html/bwave/python/venv/lib/python3.8/site-packages/huggingface_hub/inference/_providers/nebius.pyr      s    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   r   Úbytesr   r   r   r   r'   Ú__classcell__r   r   r   r   r      s   r   c                       s8   e Zd Z‡ fdd„Zeeeee dœ‡ fdd„Z‡  Z	S )ÚNebiusConversationalTaskc                    s   t ƒ jddd� d S r   r   r   r   r   r   r      s    z!NebiusConversationalTask.__init__©ÚinputsÚ
parametersÚprovider_mapping_infor   c                    s^   t ƒ  |||¡}| d¡}t|tƒrZ| d¡dkrZ| d¡}t|tƒrZd|krZ|d |d< |S )NÚresponse_formatÚtypeZjson_schemaZschemaZguided_json)r   Ú_prepare_payload_as_dictr%   Ú
isinstanceÚdict)r   r/   r0   r1   Úpayloadr2   Zjson_schema_detailsr   r   r   r4   !   s    

z1NebiusConversationalTask._prepare_payload_as_dict)
r(   r)   r*   r   r   r   r   r   r4   r,   r   r   r   r   r-      s     þr-   c                       sf   e Zd Z‡ fdd„Zeeedœdd„Zeeee	e dœdd„Z
deeef e	e ed
œdd„Z‡  ZS )ÚNebiusTextToImageTaskc                    s   t ƒ jdddd� d S )Nztext-to-imager   r   ©Útaskr   r   r   r   r   r   r   r   .   s    zNebiusTextToImageTask.__init__©Úmapped_modelÚapi_keyr   c                 C   s   dS )Nz/v1/images/generationsr   ©r   r<   r=   r   r   r   Ú_prepare_route1   s    z$NebiusTextToImageTask._prepare_router.   c                 C   sH   |j }t|ƒ}d|kr | d¡ | d¡dkr6d|d< d|i|d|i–S )NZguidance_scaler2   )Úb64_jsonÚurlr@   ÚpromptÚmodel)Úprovider_idr   Úpopr%   )r   r/   r0   r1   r<   r   r   r   r4   4   s    
z.NebiusTextToImageTask._prepare_payload_as_dictNr   c                 C   s   t |ƒ}t |d d d ¡S )NÚdatar   r@   )r   Úbase64Ú	b64decode)r   r   r   Zresponse_dictr   r   r   r'   @   s    z"NebiusTextToImageTask.get_response)N©r(   r)   r*   r   Ústrr?   r   r   r   r   r4   r   r+   r   r'   r,   r   r   r   r   r8   -   s     þr8   c                       sf   e Zd Z‡ fdd„Zeeedœdd„Zeeee	e dœdd„Z
deeef e	e ed
œdd„Z‡  ZS )ÚNebiusFeatureExtractionTaskc                    s   t ƒ jdddd� d S )Nzfeature-extractionr   r   r9   r   r   r   r   r   r   F   s    z$NebiusFeatureExtractionTask.__init__r;   c                 C   s   dS )Nz/v1/embeddingsr   r>   r   r   r   r?   I   s    z*NebiusFeatureExtractionTask._prepare_router.   c                 C   s   ||j dœS )N)ÚinputrC   )rD   )r   r/   r0   r1   r   r   r   r4   L   s    z4NebiusFeatureExtractionTask._prepare_payload_as_dictNr   c                 C   s   t |ƒd }dd„ |D ƒS )NrF   c                 S   s   g | ]}|d  ‘qS )Ú	embeddingr   )Ú.0rM   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_response)NrI   r   r   r   r   rK   E   s     þrK   )rG   Útypingr   r   r   r   Zhuggingface_hub.hf_apir   Z!huggingface_hub.inference._commonr   r   Z,huggingface_hub.inference._providers._commonr	   r
   r   r   r   r-   r8   rK   r   r   r   r   Ú<module>   s   