o
    ưi                     @   s   d dl Z d dlmZmZ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 d dlmZmZ ddlmZ erAd d	lmZ eZneZG d
d deZdS )    N)TYPE_CHECKINGAnyListOptionalUnion)BaseLLMException)OpenAIGPTConfig)AllMessageValues)ModelResponseUsage   OobaboogaError)Loggingc                   @   s   e Zd Z	ddededeeeej	f  de
fddZ		dded	ejd
edededee dedededee dee de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ddZdS )OobaboogaConfigNerror_messagestatus_codeheadersreturnc                 C   s   t |||dS )N)r   messager   r   )selfr   r   r    r   a/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/oobabooga/chat/transformation.pyget_error_class   s   zOobaboogaConfig.get_error_classmodelraw_responsemodel_responselogging_objrequest_datamessagesoptional_paramslitellm_paramsencodingapi_key	json_modec              
   C   s   |j ||
|jd|id z| }W n ty!   t|j|jdw d|v r/t|d |jdz|d d d d |jd j_W n tyU } z	tt	||jdd }~ww t
t |_||_t|d	 d
 |d	 d |d	 d d}t|d	| |S )NZcomplete_input_dict)inputr#   original_responseZadditional_args)r   r   errorchoicesr   r   contentusageprompt_tokenscompletion_tokenstotal_tokens)r+   r,   r-   )Z	post_calltextjson	Exceptionr   r   r(   r   r)   strinttimecreatedr   r   setattr)r   r   r   r   r   r   r   r    r!   r"   r#   r$   Zcompletion_responseer*   r   r   r   transform_response    sH   "


z"OobaboogaConfig.transform_responseapi_basec                 C   s$   ddd}|d urd| |d< |S )Nzapplication/json)acceptzcontent-typezToken Authorizationr   )r   r   r   r   r    r!   r#   r8   r   r   r   validate_environmentU   s   z$OobaboogaConfig.validate_environment)N)NN)__name__
__module____qualname__r1   r2   r   r   dicthttpxZHeadersr   r   Responser
   LoggingClassr   r	   r   boolr7   r;   r   r   r   r   r      sr    
	

<	r   )r3   typingr   r   r   r   r   r@   Z)litellm.llms.base_llm.chat.transformationr   Z+litellm.llms.openai.chat.gpt_transformationr   Zlitellm.types.llms.openair	   Zlitellm.types.utilsr
   r   Zcommon_utilsr   Z*litellm.litellm_core_utils.litellm_loggingr   ZLiteLLMLoggingObjrB   r   r   r   r   r   <module>   s    