
    i                         d 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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Dict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
f      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extra_headers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        ||||||j                  di             S t        dt        |             )N)r   r   r   r   r   r   )litellm_completion_requestrequest_inputr   chat_completion_responser   r   litellm_metadatar   litellm_custom_stream_wrapperr   r   r   r   Unexpected response type:  )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   get
ValueErrortype)selfr   r   r   r   r   r   r   kwargsr   completion_argslitellm_completion_responseresponses_api_responses                /Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/responses/litellm_completion_transformation/handler.pyresponse_api_handlerz;LiteLLMCompletionTransformationHandler.response_api_handler   sI   " ,L  ,G  ,G ,
"7 3',
 ,
" 2422 +E#&; 	  v&9:  
(

 	$ 1=A;[  <Y  <Y)D#&;<" *)3W5P5PQ5.I#&;$7!',>!C  (.I)J(KL
 	
    r   r   c                 4  K   |j                  d      }|rt        j                  ||       d {   }i }|j                  |       |j                  |       t	        j
                  d
i | d {   }t        |t              rt        j                  |||      }|S t        |t        j                        rCt        |j                  d      xs d||||j                  d      |j                  di             S t        d	t        |             7 7 w)Nprevious_response_id)r7   r   r   r    r   r   r   r!   r"   )r+   r	   #async_responses_api_session_handlerr%   r&   acompletionr(   r   r)   r*   r   r,   r-   )	r.   r   r   r   r/   r7   acompletion_argsr1   r2   s	            r3   r$   zALiteLLMCompletionTransformationHandler.async_response_api_handler\   sB     /D.G.G"/
  /O/s/s%9+E0 *&
 ' :; %% 

 
 	$ 1=A;[  <Y  <Y)D+&;<" *)3W5P5PQ5044W=C.I+&;$>$B$B)% "(,>!C	 	 (.I)J(KL
 	
G*
s#   .DDA D1D2B#DD)NFNN)__name__
__module____qualname__strr   r   r   r   boolr   r   r   r
   r   r4   dictr$   r"   r5   r3   r   r      s     .2!%26B
B
 S,,-B
  A	B

 &c]B
 B
 B
  S#X/B
 
)e02SSTT	
	
B
H0
$(0
 S"4450
  A	0
 
#%FF	G0
r5   r   )__doc__typingr   r   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"   r5   r3   <module>rI      s@    9 8  S 
 .u
 u
r5   