U
    ”Ê¹jÒ	  ã                   @   s”   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 d dlmZ dZdZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZdS )é    )ÚAnyÚDictÚOptionalÚUnion)ÚInferenceProviderMapping)ÚRequestParametersÚ_as_dict)ÚBaseConversationalTaskÚBaseTextGenerationTaskÚTaskProviderHelperÚfilter_none)Úget_sessionZnovitazhttps://api.novita.aic                       sN   e Zd Z‡ fdd„Zeeedœdd„Zd
eeef e	e
 edœdd	„Z‡  ZS )ÚNovitaTextGenerationTaskc                    s   t ƒ jttd� d S ©N)ÚproviderÚbase_url©ÚsuperÚ__init__Ú	_PROVIDERÚ	_BASE_URL©Úself©Ú	__class__© új/var/www/html/bwave/python/venv/lib/python3.8/site-packages/huggingface_hub/inference/_providers/novita.pyr      s    z!NovitaTextGenerationTask.__init__©Úmapped_modelÚapi_keyÚreturnc                 C   s   dS )Nz/v3/openai/completionsr   ©r   r   r   r   r   r   Ú_prepare_route   s    z'NovitaTextGenerationTask._prepare_routeN©ÚresponseÚrequest_paramsr    c                 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%NovitaTextGenerationTask.get_response)N)Ú__name__Ú
__module__Ú__qualname__r   Ústrr"   r   Úbytesr   r   r   r   r-   Ú__classcell__r   r   r   r   r      s   r   c                       s.   e Zd Z‡ fdd„Zeeedœdd„Z‡  ZS )ÚNovitaConversationalTaskc                    s   t ƒ jttd� d S r   r   r   r   r   r   r   &   s    z!NovitaConversationalTask.__init__r   c                 C   s   dS )Nz/v3/openai/chat/completionsr   r!   r   r   r   r"   )   s    z'NovitaConversationalTask._prepare_route)r.   r/   r0   r   r1   r"   r3   r   r   r   r   r4   %   s   r4   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 )ÚNovitaTextToVideoTaskc                    s   t ƒ jttdd� d S )Nztext-to-video)r   r   Útaskr   r   r   r   r   r   /   s    zNovitaTextToVideoTask.__init__r   c                 C   s
   d|› �S )Nz/v3/hf/r   r!   r   r   r   r"   2   s    z$NovitaTextToVideoTask._prepare_route)ÚinputsÚ
parametersÚprovider_mapping_infor    c                 C   s   d|it |ƒ–S )NÚprompt)r   )r   r7   r8   r9   r   r   r   Ú_prepare_payload_as_dict5   s    z.NovitaTextToVideoTask._prepare_payload_as_dictNr#   c                 C   sV   t |ƒ}t|tƒr4d|kr4t|d tƒr4d|d ks<tdƒ‚|d d }tƒ  |¡jS )NZvideoÚ	video_urlz>Expected response format: { 'video': { 'video_url': string } })r   Ú
isinstanceÚdictÚ
ValueErrorr   r+   Úcontent)r   r$   r%   Zresponse_dictr<   r   r   r   r-   :   s    ÿþý
üz"NovitaTextToVideoTask.get_response)N)r.   r/   r0   r   r1   r"   r   r   r   r   r;   r   r2   r   r-   r3   r   r   r   r   r5   .   s     þr5   N)Útypingr   r   r   r   Zhuggingface_hub.hf_apir   Z!huggingface_hub.inference._commonr   r   Z,huggingface_hub.inference._providers._commonr	   r
   r   r   Zhuggingface_hub.utilsr   r   r   r   r4   r5   r   r   r   r   Ú<module>   s   	