
    h	                         d dl mZmZ d dlmZmZmZmZmZ d dl	Z	d dl
mZmZ ddlmZ er	d dlmZ eZneZ G d d	e      Zy)
    )ABCabstractmethod)TYPE_CHECKINGAnyListOptionalUnionN)RealtimeResponseTransformInputRealtimeResponseTypedDict   BaseLLMException)Loggingc                   $   e Zd Ze	 ddededee   defd       Ze	 ddee   dedee   defd       Zd	ed
e	de
eej                  f   defdZe	 ddededee   dee   fd       ZdefdZdedee   fdZede
eef   dedededef
d       Zy)BaseRealtimeConfigNheadersmodelapi_keyreturnc                      y N )selfr   r   r   s       i/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/base_llm/realtime/transformation.pyvalidate_environmentz'BaseRealtimeConfig.validate_environment        	    api_basec                     |xs dS )z{
        OPTIONAL

        Get the complete url for the request

        Some providers need `model` in `api_base`
         r   )r   r   r   r   s       r   get_complete_urlz#BaseRealtimeConfig.get_complete_url   s     ~2r   error_messagestatus_codec                     t        |||      )N)r#   messager   r   )r   r"   r#   r   s       r   get_error_classz"BaseRealtimeConfig.get_error_class,   s     #!
 	
r   r%   session_configuration_requestc                      y r   r   )r   r%   r   r'   s       r   transform_realtime_requestz-BaseRealtimeConfig.transform_realtime_request5   r   r   c                      y)NFr   )r   s    r   requires_session_configurationz1BaseRealtimeConfig.requires_session_configuration>   s     r   c                      y r   r   )r   r   s     r   r'   z0BaseRealtimeConfig.session_configuration_requestC   s     r   logging_obj!realtime_response_transform_inputc                      y)z
        Keep this state less - leave the state management (e.g. tracking current_output_item_id, current_response_id, current_conversation_id, current_delta_chunks) to the caller.
        Nr   )r   r%   r   r-   r.   s        r   transform_realtime_responsez.BaseRealtimeConfig.transform_realtime_responseH   s     	r   r   )__name__
__module____qualname__r   dictstrr   r   r!   intr	   httpxHeadersr   r&   r   r)   boolr+   r'   bytesLiteLLMLoggingObjr
   r   r0   r   r   r   r   r      sp   
 "&	  #	
 
  LP
 
.1
<DSM
	
 

 
/2
=B4CV=W
	
 
 8<	  (0}	
 
c 	
	#
 
sEz"
 
 '	

 ,J
 
#
 
r   r   )abcr   r   typingr   r   r   r   r	   r7   litellm.types.realtimer
   r   chat.transformationr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjr;   r   r   r   r   <module>rB      s9    # < < 
 3X*> >r   