o
    ưi                     @   sR   d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 G dd dZdS )    )AnyDictcastN)BaseVideoConfig) VideoCreateOptionalRequestParams)filter_out_litellm_paramsc                	   @   sL   e Zd ZdZededededefddZ	edeee
f defd	d
ZdS )VideoGenerationRequestUtilsz7Helper utils for constructing video generation requestsmodel video_generation_provider_config video_generation_optional_paramsreturnc                 C   sJ   |j || tjd}d|v r#|d }|rt|tr|| |dd |S )a  
        Get optional parameters for the video generation API.

        Args:
            model: The model name
            video_generation_provider_config: The provider configuration for video generation API
            video_generation_optional_params: The optional parameters for video generation

        Returns:
            A dictionary of supported parameters for the video generation API
        )Zvideo_create_optional_paramsr	   drop_params
extra_bodyN)Zmap_openai_paramslitellmr   
isinstancedictupdatepop)r	   r
   r   Zmapped_paramsr    r   K/home/app/Keep/.python/lib/python3.10/site-packages/litellm/videos/utils.py$get_optional_params_video_generation   s   
z@VideoGenerationRequestUtils.get_optional_params_video_generationparamsc                 C   s   t | pi } | di }t|t si }|dd}| d}dd |  D }t|d}tdd | D d}i ||}i }||fD ]}	t|	t r\|	 D ]\}
}|dur[|||
< qOqD|rot|d}|ro||d< || |dd tt|S )	a  
        Filter parameters to only include those defined in VideoCreateOptionalRequestParams.

        Args:
            params: Dictionary of parameters to filter

        Returns:
            VideoCreateOptionalRequestParams instance with only the valid parameters
        kwargsr   Nc                 S   s&   i | ]\}}|d vr|dur||qS )>   r   r   promptr	   Nr   ).0keyvaluer   r   r   
<dictcomp>E   s
    z]VideoGenerationRequestUtils.get_requested_video_generation_optional_param.<locals>.<dictcomp>)r   c                 S   s   i | ]\}}|d ur||qS )Nr   )r   kvr   r   r   r   M   s    timeout)	r   getr   r   itemsr   r   r   r   )r   Z
raw_kwargsZkwargs_extra_bodyZtop_level_extra_bodyZbase_params_rawZbase_paramsZcleaned_kwargsZoptional_paramsZmerged_extra_bodyZextra_body_candidater   r   r   r   r   -get_requested_video_generation_optional_param/   s@   






zIVideoGenerationRequestUtils.get_requested_video_generation_optional_paramN)__name__
__module____qualname____doc__staticmethodstrr   r   r   r   r   r#   r   r   r   r   r   	   s$    "
r   )typingr   r   r   r   Z+litellm.llms.base_llm.videos.transformationr   Zlitellm.types.videos.mainr   Zlitellm.utilsr   r   r   r   r   r   <module>   s    