o
    ưi
                     @   s|   d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 ddlmZ ddlmZmZmZ dd	lmZ G d
d deZdS )    )AnyListOptionalTuple)AuthenticationError)OpenAIConfig)AllMessageValues   )Authenticator)GetAccessTokenErrorensure_chatgpt_session_idget_chatgpt_default_headers   ChatGPTToolCallNormalizerc                       s   e Zd Z			ddee dee deddf fddZd	edee dee dedeee ee ef f
d
dZ		dded	ede	e
 dededee dee def fddZdedefddZdeded	ededef
 fddZ  ZS )ChatGPTConfigNopenaiapi_keyapi_basecustom_llm_providerreturnc                    s   t    t | _d S N)super__init__r
   authenticator)selfr   r   r   	__class__ _/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/chatgpt/chat/transformation.pyr      s   
zChatGPTConfig.__init__modelc              
   C   sN   | j  }z| j  }W n ty! } z	t||t|dd }~ww |||fS )N)r    Zllm_providermessage)r   Zget_api_baseZget_access_tokenr   r   str)r   r    r   r   r   Zdynamic_api_baseZdynamic_api_keyer   r   r   $_get_openai_compatible_provider_info   s   

z2ChatGPTConfig._get_openai_compatible_provider_infoheadersmessagesoptional_paramslitellm_paramsc              	      sF   t  |||||||}| j }	t|}
t|pd|	|
}i ||S )N )r   validate_environmentr   Zget_account_idr   r   )r   r%   r    r&   r'   r(   r   r   Zvalidated_headersZ
account_idZ
session_iddefault_headersr   r   r   r*   ,   s   


z"ChatGPTConfig.validate_environmentstreamc                 C   s   t |S r   r   )r   r,   r   r   r   post_stream_processingA   s   z$ChatGPTConfig.post_stream_processingnon_default_paramsdrop_paramsc                    s"   t  ||||}|dd |S )Nr,   F)r   map_openai_params
setdefault)r   r.   r'   r    r/   r   r   r   r0   D   s
   zChatGPTConfig.map_openai_params)NNr   )NN)__name__
__module____qualname__r   r"   r   r   r$   dictr   r   r*   r   r-   boolr0   __classcell__r   r   r   r   r      sn    	
	r   N)typingr   r   r   r   Zlitellm.exceptionsr   Zlitellm.llms.openai.openair   Zlitellm.types.llms.openair   r   r
   Zcommon_utilsr   r   r   Zstreaming_utilsr   r   r   r   r   r   <module>   s    