
    g                     N    d dl mZmZmZ d dlZd dlmZ d dlmZ  G d de      Z	y)    )OptionalTupleUnionN)OpenAIGPTConfigget_secret_strc                   v    e Zd ZU dZ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 fd       Zde
fdZdedede
dedef
dZdee
   dee
   deee
   ee
   f   fdZ xZ S )DeepInfraConfigz
    Reference: https://deepinfra.com/docs/advanced/openai_api

    The class `DeepInfra` provides configuration for the DeepInfra's Chat Completions API interface. Below are the parameters:
    N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                    _/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/deepinfra/chat/transformation.py__init__zDeepInfraConfig.__init__   sA      (--/!--/JCf}!2U3 *    c                      t         |          S )N)super
get_config)clsr   s    r#   r(   zDeepInfraConfig.get_config2   s    w!##r%   modelc                 
    g dS )N)streamr   r   r   r   r   max_completion_tokensr   r   r   r   r   r   r   r    )r   r*   s     r#   get_supported_openai_paramsz+DeepInfraConfig.get_supported_openai_params6   s    
 	
r%   non_default_paramsoptional_paramsdrop_paramsc                 `   | j                  |      }|j                         D ]  \  }}|dk(  r|dk(  r|dk(  rd}|dk(  rU|dk7  s"|dk7  s(t        j                  d	u s|d	u rd }At        j                  j                  d
j                  |      d      |dk(  r||d<   |||v s||||<    |S )N)r*   r   r   z"mistralai/Mistral-7B-Instruct-v0.1g-C6?r   autononeTz{Deepinfra doesn't support tool_choice={}. To drop unsupported openai params from the call, set `litellm.drop_params = True`i  )messagestatus_coder-   r   )r/   r   litellmr2   utilsUnsupportedParamsErrorformat)r   r0   r1   r*   r2   supported_openai_paramsparamr"   s           r#   map_openai_paramsz!DeepInfraConfig.map_openai_paramsI   s     #'"B"B"B"O.446LE5&QJAA%VO **d2kT6I $%mmBB %b  %i  %i %% ),	 C   1105-11$-2OE*3 74 r%   api_baseapi_keyc                 N    |xs t        d      xs d}|xs t        d      }||fS )NDEEPINFRA_API_BASEz#https://api.deepinfra.com/v1/openaiDEEPINFRA_API_KEYr   )r   r?   r@   dynamic_api_keys       r#   $_get_openai_compatible_provider_infoz4DeepInfraConfig._get_openai_compatible_provider_infom   s?    
  52354 	
 "H^4G%H((r%   )NNNNNNNNNNNNN)!__name__
__module____qualname____doc__r   r   int__annotations__r   r   strdictr   listr   r   r   r   r   r   r   r   r   r   r$   classmethodr(   r/   boolr>   r   rE   __classcell__)r   s   @r#   r
   r
      sw    (,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* $ $
 
&" " " 	"
 " 
"H
) 
)08
)	x}hsm+	,
)r%   r
   )
typingr   r   r   r8   +litellm.llms.openai.chat.gpt_transformationr   litellm.secret_managers.mainr   r
   r.   r%   r#   <module>rU      s"    ) )  G 7o)o o)r%   