o
    vZh	                     @   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                       sV   e Zd Z fddZdededefddZdd	eeef d
e	e
 defddZ  ZS )NovitaTextGenerationTaskc                       t  jttd d S N)providerbase_urlsuper__init__	_PROVIDER	_BASE_URLself	__class__ Z/var/www/auris/lib/python3.10/site-packages/huggingface_hub/inference/_providers/novita.pyr         z!NovitaTextGenerationTask.__init__mapped_modelapi_keyreturnc                 C      dS )Nz/v3/openai/completionsr   r   r   r    r   r   r   _prepare_route      z'NovitaTextGenerationTask._prepare_routeNresponserequest_paramsc                 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                       s2   e Zd Z fddZdededefddZ  ZS )NovitaConversationalTaskc                    r   r   r   r   r   r   r   r   &   r   z!NovitaConversationalTask.__init__r   r    r!   c                 C   r"   )Nz/v3/openai/chat/completionsr   r#   r   r   r   r$   )   r%   z'NovitaConversationalTask._prepare_route)r1   r2   r3   r   r4   r$   r6   r   r   r   r   r7   %   s    r7   c                	       st   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	e fddZ
ddeeef de	e def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   r    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_infoc                 C   s   d|it |S )Nprompt)r   )r   r:   r;   r<   r   r   r   _prepare_payload_as_dict5   s   z.NovitaTextToVideoTask._prepare_payload_as_dictNr&   r'   c                 C   sV   t |}t|trd|v rt|d trd|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_responser0   )r1   r2   r3   r   r4   r$   r   r   r   r   r>   r   r5   r   r/   r6   r   r   r   r   r8   .   s    
,r8   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   r7   r8   r   r   r   r   <module>   s    	