o
    ưi                     @   s:   d Z ddlZddlmZmZmZ ddlZG dd dZdS )zY
Translate from OpenAI's `/v1/audio/transcriptions` to Groq's `/v1/audio/transcriptions`
    N)ListOptionalUnionc                   @   s  e Zd ZU dZee ed< dZeee	e
f  ed< dZee ed< dZee
 ed< dZee ed< dZee ed< dZee ed< dZeee	ef  ed	< dZee ed
< dZee ed< dZee
 ed< dZee ed< dZeee	e
f  ed< 													ddee deee	e
f  dee dee
 dee dee dee d	eee	ef  d
ee dee dee
 dee deee	e
f  ddfddZedd Zdd Zdee	 fddZde
de
de	dede
f
ddZdS )GroqSTTConfigNfrequency_penaltyfunction_call	functions
logit_bias
max_tokensnpresence_penaltystoptemperaturetop_presponse_formattoolstool_choicereturnc                 C   s>   t   }| D ]\}}|dkr|d urt| j|| q	d S )Nself)localscopyitemssetattr	__class__)r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Zlocals_keyvalue r   [/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/groq/stt/transformation.py__init__   s   
zGroqSTTConfig.__init__c                 C   s   dd | j  D S )Nc                 S   s>   i | ]\}}| d st|tjtjttfs|dur||qS )__N)
startswith
isinstancetypesFunctionTypeBuiltinFunctionTypeclassmethodstaticmethod).0kvr   r   r   
<dictcomp>1   s     z,GroqSTTConfig.get_config.<locals>.<dictcomp>)__dict__r   )clsr   r   r   
get_config/   s   zGroqSTTConfig.get_configc                 C      g dS )N)promptr   r   languager   r   r   r   r   get_supported_openai_params_sttA      z-GroqSTTConfig.get_supported_openai_params_sttc                 C   r.   )N)jsonZverbose_jsontextr   r1   r   r   r   )get_supported_openai_response_formats_sttI   r3   z7GroqSTTConfig.get_supported_openai_response_formats_sttnon_default_paramsoptional_paramsmodeldrop_paramsc                 C   sj   |   }| D ]*\}}|dkr.||v r|||< qtjdu s"|du r#qtjjd|dd|||< q|S )Nr   TzzGroq doesn't support response_format={}. To drop unsupported openai params from the call, set `litellm.drop_params = True`i  )messagestatus_code)r6   r   litellmr:   utilsZUnsupportedParamsErrorformat)r   r7   r8   r9   r:   Zresponse_formatsparamr   r   r   r   map_openai_params_sttL   s   

z#GroqSTTConfig.map_openai_params_stt)NNNNNNNNNNNNN)__name__
__module____qualname__r   r   int__annotations__r   r   strdictr   listr	   r
   r   r   r   r   r   r   r   r   r   r%   r-   r2   r   r6   boolrA   r   r   r   r   r      s   
 	


r   )__doc__r"   typingr   r   r   r=   r   r   r   r   r   <module>   s
    