
    hp                         d Z ddl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mZ ddlmZ  G d	 d
      Zy)zP
Handler for transforming responses api requests to litellm.completion requests
    )Any	CoroutineOptionalUnionN)"LiteLLMCompletionStreamingIterator) LiteLLMCompletionResponsesConfig)!BaseResponsesAPIStreamingIterator)ResponseInputParam!ResponsesAPIOptionalRequestParamsResponsesAPIResponse)ModelResponsec                       e Zd Z	 	 	 ddedeeef   dedee   dedee   dee	e
eeeee	e
f   f   f   fd	Zd
edeeef   dedee	e
f   fdZy)&LiteLLMCompletionTransformationHandlerNmodelinputresponses_api_requestcustom_llm_provider	_is_asyncstreamreturnc           	         t        j                  d|||||d|}|r | j                  d|||d|S i }	|	j                  |       |	j                  |       t	        j
                  di ||}
t        |
t              rt        j                  |
||      }|S t        |
t        j                        rt        |
||      S y )N)r   r   r   r   r   )litellm_completion_requestrequest_inputr   chat_completion_responser   r   litellm_custom_stream_wrapperr   r    )r   :transform_responses_api_request_to_chat_completion_requestasync_response_api_handlerupdatelitellm
completion
isinstancer   <transform_chat_completion_response_to_responses_api_responseCustomStreamWrapperr   )selfr   r   r   r   r   r   kwargsr   completion_argslitellm_completion_responseresponses_api_responses               w/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/responses/litellm_completion_transformation/handler.pyresponse_api_handlerz;LiteLLMCompletionTransformationHandler.response_api_handler   s   " -gg &;$7  	# 2422 +E#&; 	  v&9:  
(

 	$ 1=A0mm-H"'*? # *)3W5P5PQ5.I#&;  R    r   r   c                   K   |j                  d      }|rt        j                  ||       d {   }i }|j                  |       |j                  |       t	        j
                  di | d {   }t        |t              rt        j                  |||      }|S t        |t        j                        rt        |||      S y 7 7 Yw)Nprevious_response_id)r0   r   r   r   r   )getr   #async_responses_api_session_handlerr!   r"   acompletionr$   r   r%   r&   r   )	r'   r   r   r   r(   r0   acompletion_argsr*   r+   s	            r,   r    zALiteLLMCompletionTransformationHandler.async_response_api_handlerY   s      /D.G.G"/
  /O/s/s%9+E0 *&
 ' :; %% 

 
 	$ 1=A0mm-H"/*? # *)3W5P5PQ5.I+&;  R5*
s#   .CC	A C1C2ACC)NFN)__name__
__module____qualname__strr   r
   r   r   boolr   r	   r   r   r-   dictr    r   r.   r,   r   r      s     .2!%>> S,,->  A	>
 &c]> > > 
)e02SSTT	
	
>@+$(+ S"445+  A	+ 
#%FF	G+r.   r   )__doc__typingr   r   r   r   r"   Flitellm.responses.litellm_completion_transformation.streaming_iteratorr   Blitellm.responses.litellm_completion_transformation.transformationr   $litellm.responses.streaming_iteratorr	   litellm.types.llms.openair
   r   r   litellm.types.utilsr   r   r   r.   r,   <module>rB      s@    3 2  S 
 .m mr.   