a
    h
                     @   st   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 G dd deZG d	d
 d
eZdS )    N)AnyDictOptionalUnion)InferenceProviderMapping)RequestParameters_as_dict   )BaseConversationalTaskTaskProviderHelperfilter_nonec                       s   e Zd Z fddZ  ZS )NscaleConversationalTaskc                    s   t  jddd d S )Nnscale https://inference.api.nscale.com)providerbase_urlsuper__init__self	__class__ g/var/www/html/assistant/venv/lib/python3.9/site-packages/huggingface_hub/inference/_providers/nscale.pyr      s    z!NscaleConversationalTask.__init__)__name__
__module____qualname__r   __classcell__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 )NscaleTextToImageTaskc                    s   t  jdddd d S )Nr   r   ztext-to-image)r   r   taskr   r   r   r   r   r      s    zNscaleTextToImageTask.__init__)mapped_modelapi_keyreturnc                 C   s   dS )Nz/v1/images/generationsr   )r   r!   r"   r   r   r   _prepare_route   s    z$NscaleTextToImageTask._prepare_route)inputs
parametersprovider_mapping_infor#   c                 C   st   |j }t|}d|v r<d|v r<|d d|d |d< d|v rN|d d|v r`|d d||d|}|S )	NwidthheightxsizeZnum_inference_stepsZ	cfg_scaleb64_json)Zresponse_formatpromptmodel)Zprovider_idr   pop)r   r%   r&   r'   r!   payloadr   r   r   _prepare_payload_as_dict   s    

z.NscaleTextToImageTask._prepare_payload_as_dictN)responserequest_paramsr#   c                 C   s   t |}t|d d d S )Ndatar   r,   )r   base64	b64decode)r   r2   r3   Zresponse_dictr   r   r   get_response*   s    z"NscaleTextToImageTask.get_response)N)r   r   r   r   strr$   r   r   r   r   r1   r   bytesr   r7   r   r   r   r   r   r      s   r   )r5   typingr   r   r   r   Zhuggingface_hub.hf_apir   Z!huggingface_hub.inference._commonr   r   _commonr
   r   r   r   r   r   r   r   r   <module>   s   