
    h                     Z    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e      Zy)    )OptionalTupleUnionN)MIN_NON_ZERO_TEMPERATURE)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                    f/var/www/Befach/backend/env/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_config3   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_params7   s    
 	
r&   non_default_paramsoptional_paramsdrop_paramsc                 h   | j                  |      }|j                         D ]  \  }}|dk(  r|dk(  r|dk(  rt        }|dk(  rU|dk7  s&|dk7  s,t        j                  du s|du rd }Et        j
                  j                  d	j                  |      d
      |dk(  r||d<   ||v s||||<    |S )N)r+   r   r   z"mistralai/Mistral-7B-Instruct-v0.1r   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   )r0   r   r   litellmr3   utilsUnsupportedParamsErrorformat)r   r1   r2   r+   r3   supported_openai_paramsparamr#   s           r$   map_openai_paramsz!DeepInfraConfig.map_openai_paramsJ   s     #'"B"B"B"O.446LE5&QJAA0%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@   rA   dynamic_api_keys       r$   $_get_openai_compatible_provider_infoz4DeepInfraConfig._get_openai_compatible_provider_infon   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)   r0   boolr?   r   rF   __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   r9   litellm.constantsr   +litellm.llms.openai.chat.gpt_transformationr   litellm.secret_managers.mainr	   r   r/   r&   r$   <module>rW      s%    ) )  6 G 7o)o o)r&   