a
    h	                     @   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__ g/var/www/html/assistant/venv/lib/python3.9/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|v r4t|d tr4d|d v 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   	