
    AHj                     X    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      Zy)    )AnyDictcastN)BaseVideoConfig) VideoCreateOptionalRequestParams)filter_out_litellm_paramsc            	       V    e Zd ZdZededededefd       Z	edeee
f   defd       Zy	)
VideoGenerationRequestUtilsz7Helper utils for constructing video generation requestsmodel video_generation_provider_config video_generation_optional_paramsreturnc                     |j                  || t        j                        }d|v r:|d   }|r!t        |t              r|j                  |       |j                  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
        )video_create_optional_paramsr   drop_params
extra_bodyN)map_openai_paramslitellmr   
isinstancedictupdatepop)r   r   r   mapped_paramsr   s        L/root/tools/cai/cai_env/lib/python3.12/site-packages/litellm/videos/utils.py$get_optional_params_video_generationz@VideoGenerationRequestUtils.get_optional_params_video_generation   sn    $ 9JJ)I++ K 
 ;;9,GJjT:$$Z0lD1    paramsc                    t        | xs i       } | j                  di       }t        |t               si }|j                  dd      }| j                  d      }| j	                         D ci c]  \  }}|dvr||| }}}t        |      }t        |j	                         D 	ci c]  \  }}	|		||	 c}	}      }
i ||
}i }||fD ]3  }t        |t               s|j	                         D ]  \  }}|	|||<    5 |r$t        |      }|r||d<   |j                  |       |j                  dd       t        t        |      S c c}}w c c}	}w )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   N>   r   r   promptr   )r   timeout)	r   getr   r   itemsr   r   r   r   )r   
raw_kwargskwargs_extra_bodytop_level_extra_bodykeyvaluebase_params_rawbase_paramskvcleaned_kwargsoptional_paramsmerged_extra_bodyextra_body_candidates                 r   -get_requested_video_generation_optional_paramzIVideoGenerationRequestUtils.get_requested_video_generation_optional_param/   s    fl#ZZ"-
*d+J&NN<>%zz,7 %lln
UEE! J
 
 0G2%/%5%5%7ITQ1=AqDI
+
+
+

 -/%9;L$M 	7 .5"6"<"<"> 7JC(16)#.7	7  9AR S 0A-&&'89It,4oFFA
 Js   *E$
E
/E
N)__name__
__module____qualname____doc__staticmethodstrr   r   r   r   r   r1    r   r   r
   r
   	   sm    A  *9  +K  
	   D 5GS#X5G	)5G 5Gr   r
   )typingr   r   r   r   +litellm.llms.base_llm.videos.transformationr   litellm.types.videos.mainr   litellm.utilsr   r
   r8   r   r   <module>r=      s%    " "  G F 3\G \Gr   