
    h                         d dl Z d dlmZmZ d dlmZmZmZmZm	Z	m
Z
 d dlZd dlmZmZmZmZ d dl d dlmZ erd dlmZ dd	lmZ eZeZneZeZ G d
 de      Zy)    N)ABCabstractmethod)TYPE_CHECKINGAnyDictOptionalTupleUnion)ResponseInputParam!ResponsesAPIOptionalRequestParamsResponsesAPIResponseResponsesAPIStreamingResponse)*)GenericLiteLLMParams)Logging   BaseLLMExceptionc                      e Zd Zd Zed        Zededefd       Z	ede
dededefd       Zed	eded
ee   defd       Zedee   d
edefd       Zededeeef   ded
ed	edefd       Zededej.                  dedefd       Zededededefd       Zededed
ed	edeeef   f
d       Zedej.                  dedefd       Z ededed
ed	edeeef   f
d       Z!edej.                  dedefd       Z"e	 	 	 	 	 d*deded
ed	edee   dee   dee#e      de$d e%d!   deeef   fd"       Z&edej.                  dedefd#       Z'd$ed%e$d	eeejP                  f   de)fd&Z*	 d+dee   d'ee   d(ee   defd)Z+y),BaseResponsesAPIConfigc                      y N )selfs    j/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/base_llm/responses/transformation.py__init__zBaseResponsesAPIConfig.__init__   s        c                    | j                   j                         D ci c]`  \  }}|j                  d      sJ|j                  d      s9t        |t        j
                  t        j                  t        t        f      s|||b c}}S c c}}w )N___abc)	__dict__items
startswith
isinstancetypesFunctionTypeBuiltinFunctionTypeclassmethodstaticmethod)clskvs      r   
get_configz!BaseResponsesAPIConfig.get_config    s     **,
1<<%LL(&&-- 	  qD
 	
 
s   A%Bmodelreturnc                      y r   r   )r   r.   s     r   get_supported_openai_paramsz2BaseResponsesAPIConfig.get_supported_openai_params3   s    r   response_api_optional_paramsdrop_paramsc                      y r   r   )r   r2   r.   r3   s       r   map_openai_paramsz(BaseResponsesAPIConfig.map_openai_params7        	r   headerslitellm_paramsc                     i S r   r   )r   r7   r.   r8   s       r   validate_environmentz+BaseResponsesAPIConfig.validate_environment@   s	     	r   api_basec                      |t        d      |S )z{
        OPTIONAL

        Get the complete url for the request

        Some providers need `model` in `api_base`
        zapi_base is required)
ValueError)r   r;   r8   s      r   get_complete_urlz'BaseResponsesAPIConfig.get_complete_urlF   s     344r   input$response_api_optional_request_paramsc                      y r   r   )r   r.   r?   r@   r8   r7   s         r   transform_responses_api_requestz6BaseResponsesAPIConfig.transform_responses_api_requestW   s     	r   raw_responselogging_objc                      y r   r   )r   r.   rC   rD   s       r   transform_response_api_responsez6BaseResponsesAPIConfig.transform_response_api_responseb   r6   r   parsed_chunkc                      y)zb
        Transform a parsed streaming response chunk into a ResponsesAPIStreamingResponse
        Nr   )r   r.   rG   rD   s       r   transform_streaming_responsez3BaseResponsesAPIConfig.transform_streaming_responsek   s     	r   response_idc                      y r   r   r   rJ   r;   r8   r7   s        r   %transform_delete_response_api_requestz<BaseResponsesAPIConfig.transform_delete_response_api_requestz        	r   c                      y r   r   r   rC   rD   s      r   &transform_delete_response_api_responsez=BaseResponsesAPIConfig.transform_delete_response_api_response        	r   c                      y r   r   rL   s        r   "transform_get_response_api_requestz9BaseResponsesAPIConfig.transform_get_response_api_request   rN   r   c                      y r   r   rP   s      r   #transform_get_response_api_responsez:BaseResponsesAPIConfig.transform_get_response_api_response   rR   r   Nafterbeforeincludelimitorder)ascdescc
                      y r   r   )
r   rJ   r;   r8   r7   rW   rX   rY   rZ   r[   s
             r   "transform_list_input_items_requestz9BaseResponsesAPIConfig.transform_list_input_items_request   s     	r   c                      y r   r   rP   s      r   #transform_list_input_items_responsez:BaseResponsesAPIConfig.transform_list_input_items_response   rR   r   error_messagestatus_codec                 $    ddl m}  ||||      )Nr   r   )rc   messager7   )chat.transformationr   )r   rb   rc   r7   r   s        r   get_error_classz&BaseResponsesAPIConfig.get_error_class   s     	;#!
 	
r   streamcustom_llm_providerc                      y)zQReturns True if litellm should fake a stream for the given model and stream valueFr   )r   r.   rh   ri   s       r   should_fake_streamz)BaseResponsesAPIConfig.should_fake_stream   s     r   )NNN   r]   r   ),__name__
__module____qualname__r   r(   r-   r   strlistr1   r   boolr   r5   dictr   r   r:   r>   r
   r   rB   httpxResponseLiteLLMLoggingObjr   rF   r   rI   r	   rM   DeleteResponseResultrQ   rT   rV   ListintLiteralr_   ra   Headersr   rg   rk   r   r   r   r   r      s    
 
$     &G  	
 
  $'9ABV9W	 
 3-  
	    S,,- /3	
 -  
   nn '	
 
  		 	 '		
 
'	 	   -	
  
sDy	  nn ' 
	    -	
  
sDy	  nn ' 
	    $ $'+(.  -	
  }  $s)$  }% 
sDy	  nn ' 
	 	
 	
/2	
=B4CV=W	
		
 .2	}  &c]	
 
r   r   )r%   abcr   r   typingr   r   r   r   r	   r
   rt   litellm.types.llms.openair   r   r   r   litellm.types.responses.mainlitellm.types.routerr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjrf   r   _BaseLLMExceptionrv   r   r   r   r   <module>r      sU     # C C   + 5XK*(yS yr   