
    g                     @    d Z ddlZddlmZmZmZ ddlZ G d d      Zy)zY
Translate from OpenAI's `/v1/audio/transcriptions` to Groq's `/v1/audio/transcriptions`
    N)ListOptionalUnionc                   <   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Zed        Zd Zdee	   fdZde
de
de	dede
f
dZy)GroqSTTConfigNfrequency_penaltyfunction_call	functions
logit_bias
max_tokensnpresence_penaltystoptemperaturetop_presponse_formattoolstool_choicereturnc                     t               j                         }|j                         D ]%  \  }}|dk7  s|t        | j                  ||       ' y )Nself)localscopyitemssetattr	__class__)r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   locals_keyvalues                    Y/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/groq/stt/transformation.py__init__zGroqSTTConfig.__init__   sA      (--/!--/JCf}!2U3 *    c                     | j                   j                         D ci c]O  \  }}|j                  d      s9t        |t        j
                  t        j                  t        t        f      s|||Q c}}S c c}}w )N__)	__dict__r   
startswith
isinstancetypesFunctionTypeBuiltinFunctionTypeclassmethodstaticmethod)clskvs      r    
get_configzGroqSTTConfig.get_config0   sy     **,
,1<<%&&-- 	  qD,
 	
 
s   AA6c                 
    g dS )N)promptr   r   language r   s    r    get_supported_openai_params_sttz-GroqSTTConfig.get_supported_openai_params_sttB   s    
 	
r"   c                 
    g dS )N)jsonverbose_jsontextr4   r5   s    r    )get_supported_openai_response_formats_sttz7GroqSTTConfig.get_supported_openai_response_formats_sttJ   s    //r"   non_default_paramsoptional_paramsmodeldrop_paramsc                    | j                         }|j                         D ]`  \  }}|dk(  rQ||v r|||<   t        j                  du s|du r,t        j                  j                  dj                  |      d      |||<   b |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)r;   r   litellmr?   utilsUnsupportedParamsErrorformat)r   r<   r=   r>   r?   response_formatsparamr   s           r    map_openai_params_sttz#GroqSTTConfig.map_openai_params_sttM   s      IIK.446LE5)),,-2OE***d2kT6I%mmBB %a  %h  %h %% ),	 C   */& 7  r"   )NNNNNNNNNNNNN)__name__
__module____qualname__r   r   int__annotations__r	   r   strdictr
   listr   r   r   r   r   r   r   r   r   r   r!   r+   r0   r6   r   r;   boolrI   r4   r"   r    r   r      s@   '+x}+04M8E#t),-4 $Ix~$!%J% $J$Ax}&*hsm*'+D(5d#
$+!%K#%E8C=&*OXd^* E8D> .2K%T	*+2 ,048$(%)$(*.+/%)#*. $264#C=4  c4i 014 D>	4
 TN4 SM4 C=4 #3-4 uS$Y'(4 c]4 }4 "$4 ~4 eCI./4 
4* 
 
"
049 0   	
  
r"   r   )__doc__r(   typingr   r   r   rC   r   r4   r"   r    <module>rU      s$     ( ( Z Zr"   