
    ^hW                         S SK r S SKJrJrJrJrJr  S SKrS SKrS SK	rS SK
rS SKrS SKJrJr  S SKJr  S SKJr  S SKJrJrJrJr  S SKJrJr  S SKJr  S S	KJrJrJr  \(       a	  S S
K J!r"  \"r#O\r# " S S5      r$g)    N)TYPE_CHECKINGAnyOptionalTupleUnion)
BaseConfigBaseLLMException)BaseEmbeddingConfig)BaseRerankConfig)AsyncHTTPHandlerHTTPHandler_get_httpx_clientget_async_httpx_client)OptionalRerankParamsRerankResponse)EmbeddingResponse)CustomStreamWrapperModelResponseProviderConfigManager)Loggingc                       \ rS rSr  S(S\S\S\S\S\S\\\	R                  4   S	\S
\S\S\S\S\S\S\\   S\\   4S jjrSSS0 S4S	\S\S\S\S
\S\S\S\\\	R                  4   S\S\S\\   S\S\\   S\\\\4      4S jjr  S)S\S\S\S\S	\S\S\\\\	R                  4      S\S\\   S\\\	R,                  4   4S jjr  S)S	\S\S\S\S\S\S\\\	R                  4   S\S\S\S\\   4S jjr  S)S\S\S\S\S\S\S\S\\\\	R                  4      S\S\\   S\\\	R,                  4   4S jjrSSS0 4S	\S\S\S\S\S\\   S\S
\S\\   S\\\\4      S\S\4S jjr   S*S\S\S\S	\S\S\S
\S\S\\   S\\\\	R                  4      S\\\\4      S\4S  jjrS0 SSS4S	\S\S\S!\S\\\\	R                  4      S
\S"\S\S\\   S\\   S\\\\4      S\4S# jjr    S*S	\S\S\S\!S\S
\S\S\S\\   S\\\\	R                  4      S\\\\4      S\4S$ jjr"S%\#S\\\!4   4S& jr$S'r%g)+BaseLLMHTTPHandler   Ncustom_llm_providerprovider_configapi_baseheadersdatatimeoutmodelmodel_responselogging_objmessagesoptional_paramslitellm_paramsencodingapi_keyclientc                 &  #    Uc  [        [        R                  " U5      S9nOUn UR                  UU[        R
                  " U5      US9I S h  vN nUR                  UUUU	UUU
UUUS9
$  N! [         a  nU R                  UUS9eS nAff = f7f)Nllm_providerurlr   r   r   er   
r    raw_responser!   r"   r'   request_datar#   r$   r%   r&   )	r   litellmLlmProviderspostjsondumps	Exception_handle_errortransform_response)selfr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   async_httpx_clientresponser/   s                      d/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/custom_httpx/llm_http_handler.pyasync_completion#BaseLLMHTTPHandler.async_completion    s     $ >!7$112EF" "(	K/44ZZ%	 5  H 11!)#+) 2 
 	
  	K$$q/$JJ	Ks:   $B)A/ A-A/ B-A/ /
B9B		BBFacompletionstreamfake_streamc                    [         R                  " U[        R                  " U5      S9nUR	                  UUUUUS9nUR                  UUS9nUR                  UUUU
US9nUR                  UUUUUS.S9  USL a}  USL a?  USLa  UUS'   U R                  UUUUUUU	UUUUb  [        U[        5      (       a  US	9$ S S	9$ U R                  UUUUUU	UUUUUUU
UUb  [        U[        5      (       a  US
9$ S S
9$ USL a_  USLa  UUS'   U R                  UUU[        R                  " U5      UUUU	UUb  [        U[        5      (       a  UOS S9
u  nn[!        UUUUS9$ Ub  [        U[        5      (       d  [#        5       nOUn UR%                  UU[        R                  " U5      U	S9nUR+                  UUUUUUUUU
US9
$ ! [&         a  nU R)                  UUS9eS nAff = f)Nr    providerr'   r   r    r#   r$   r   r    )r    r#   r$   r%   r   complete_input_dictr   r   inputr'   additional_argsTrB   )r    r#   r   r   r   r   r   r"   r   rC   r(   )r   r   r   r   r   r   r    r!   r"   r'   r#   r$   r%   r&   r(   )
r   r   r   r   r    r#   r"   r   rC   r(   completion_streamr    r   r"   r,   r.   r0   )r   get_provider_chat_configr3   r4   validate_environmentget_complete_urltransform_requestpre_callacompletion_stream_function
isinstancer   r?   make_sync_callr6   r7   r   r   r   r5   r8   r9   r:   )r;   r    r#   r   r   r!   r&   r"   r$   r   r%   rA   rB   rC   r'   r   r(   r   r   rO   sync_httpx_clientr=   r/   s                          r>   
completionBaseLLMHTTPHandler.completionO   s   & 0HH'"6"67J"K
 "66+ 7 
 #33 4 

 00+) 1 
 	'+$" 	 	
 $~d*%+DN77%%#(;$3# + + "-*VEU2V2V  8   " 8  & ,,(;$3%###1 +#%$3#1% "-*VEU2V2V ! -  $ "% -  , T>$&!'X)-)<)< /!ZZ%!'' )j.M.M  *= *&w  '"3$7'	  >FK!@!@ 1 3 &	(--ZZ%	 . H 11!)#+) 2 
 	
  	$$ / %  	s   &F? ?
G	GGreturnc                    U
b  [        U
[        5      (       d  [        5       nOU
n SnU	SL a  SnUR                  X#XHUS9nUR                  S:w  a+  [        UR                  [        UR                  5       5      S9eU	SL a  UR                  UR                  5       SS9nOUR                  UR!                  5       SS9nUR#                  USS	S
U0S9  UUR$                  4$ ! [        R
                   a  nU R                  UUS9eS nAf[         a>  n[        R                   H  n[        X5      (       d  M  Ue   U R                  UUS9eS nAff = f)NTF)r   r   r   rB   r.      status_codemessagestreaming_responsesync_stream first stream response receivedrJ   rL   r'   original_responserM   )rV   r   r   r5   httpxHTTPStatusErrorr9   r8   r3   LITELLM_EXCEPTION_TYPESr_   r	   strreadget_model_response_iteratorr6   
iter_lines	post_callr   )r;   r   r   r   r   r    r#   r"   r   rC   r(   rX   rB   r=   r/   	exceptionrO   s                    r>   rW   !BaseLLMHTTPHandler.make_sync_call   s    >FK!@!@ 1 3 &	Fd"(--f . H" 3&"$00HMMO, 
 $ / K K#+==? !L ! !0 K K#+#6#6#8d !L !
 	>2D9	 	 	
 !("2"222K $$ 	$$ / %    	$<<	a++G = $$ / %  		s)   C   E4DE!E
6E

Ec                    #    U R                  UUUU[        R                  " U	5      UUUU
US9
I S h  vN u  p[        UUUUS9nU$  N7f)N)
r   r   r   r   r   r#   r"   r   rC   r(   rN   )make_async_callr6   r7   r   )r;   r    r#   r   r   r   r   r   r"   r   rC   r(   rO   _response_headersstreamwrappers                  r>   rU   .BaseLLMHTTPHandler.acompletion_stream_function+  sr      6:5I5I 3+D!## 6J 6
 0
, ,/ 3#	
 %0
s   0A	AA	c                   #    U
c  [        [        R                  " U5      S9nOU
nSnU	SL a  Sn UR                  X4X\US9I S h  vN nUR                  S:w  a+  [        UR                  [        UR                  5       5      S9eU	SL a  UR                  UR                  5       SS9nOUR                  UR!                  5       SS9nUR#                  US	S
SU0S9  UUR$                  4$  N! [        R
                   a  nU R                  UUS9eS nAf[         a>  n[        R                   H  n[        X5      (       d  M  Ue   U R                  UUS9eS nAff = f7f)Nr*   TF)r   r   rB   r   r.   r]   r^   ra   rd   re   rJ   rf   )r   r3   r4   r5   rh   ri   r9   r8   rj   rV   r_   r	   rk   rl   rm   r6   aiter_linesro   r   )r;   r   r   r   r   r   r#   r"   r   rC   r(   r<   rB   r=   r/   rp   rO   s                    r>   rs   "BaseLLMHTTPHandler.make_async_callM  s     >!7$112EF" "($F	/44W 5  H" 3&"$00HMMO,  $ / K K#+==? !L ! !0 K K#+#7#7#9u !L ! 	>2D9	 	 	
 !("2"222M $$ 	$$ / %    	$<<	a++G = $$ / %  		sM   -EC* C(C* 	BE(C* *E>DE!E EEErL   
aembeddingc                 (   [         R                  " U[        R                  " U5      S9nUR	                  U	UU/ US9nUR                  UUS9nUR                  UUUUS9nUR                  UU	UUUS.S9  USL a  U R                  UUUUUUUUU	UU
S9$ U
b  [        U
[        5      (       d  [        5       nOU
n UR                  UU[        R                  " U5      US	9nUR#                  UUUUU	US9$ ! [         a  nU R!                  UUS
9eS nAff = f)NrE   rG   rH   )r    rL   r$   r   rI   rK   T)r2   r   r   r    r   r   r!   r"   r'   r   r(   r,   r.   r    r1   r!   r"   r'   r2   )r   get_provider_embedding_configr3   r4   rQ   rR   transform_embedding_requestrT   rz   rV   r   r   r5   r6   r7   r8   r9   transform_embedding_response)r;   r    rL   r   r   r"   r   r$   r!   r'   r(   rz   r   r   r   rX   r=   r/   s                     r>   	embeddingBaseLLMHTTPHandler.embedding  s     0MM'"6"67J"K
 "66+ 7 
 #33 4 

 ::+	 ; 
 	'+$" 	 	
 ??!!$7 /-' #   >FK!@!@ 1 3 &	(--ZZ%	 . H ;;!)# < 
 	
  	$$ / %  	s   8&C2 2
D<DDr2   c           	      F  #    Ub  [        U[        5      (       d  [        [        R                  " U5      S9nOUn UR                  UU[        R                  " U5      U
S9I S h  vN nUR                  UUUUU	US9$  N! [         a  nU R                  XS9eS nAff = f7fNr*   r,   r.   r|   )rV   r   r   r3   r4   r5   r6   r7   r8   r9   r   )r;   r2   r   r   r    r   r   r!   r"   r'   r   r(   r<   r=   r/   s                  r>   rz   BaseLLMHTTPHandler.aembedding  s      >F4D!E!E!7$112EF" "(	K/44ZZ-	 5  H ;;!)#% < 
 	
  	K$$q$JJ	K:   9B!)B  %A>&B  *B!>B   
B
BBB!optional_rerank_params	_is_asyncc                 B   [         R                  " U[        R                  " U5      S9nUR	                  U	UUS9nUR                  U
US9n
UR                  UUUS9nUR                  UR                  SS5      U	UU
US.S9  US	L a  U R                  UUUUUUU
UU	UUS
9$ Ub  [        U[        5      (       d  [        5       nOUn UR                  U
U[        R                  " U5      US9nUR%                  UUUUU	US9$ ! [          a  nU R#                  UUS9eS nAff = f)NrE   )r'   r   r    rH   )r    r   r   queryrd   rI   rK   T)r    r2   r   r   r"   r!   r   r   r'   r   r(   r,   r.   r|   )r   get_provider_rerank_configr3   r4   rQ   rR   transform_rerank_requestrT   getarerankrV   r   r   r5   r6   r7   r8   r9   transform_rerank_response)r;   r    r   r"   r   r   r!   r   r   r'   r   r(   r   r   rX   r=   r/   s                    r>   rerankBaseLLMHTTPHandler.rerank  s    0JJ'"6"67J"K
 "66 7 
 #33 4 

 77#9 8 
 	(,,Wb9'+$" 	 	
 <<!$7 /'-!     >FK!@!@ 1 3 &	(--ZZ%	 . H 88!)# 9 
 	
  	$$ / %  	s   &C? ?
D	DDc           	      F  #    Ub  [        U[        5      (       d  [        [        R                  " U5      S9nOUn UR                  UU[        R                  " U5      U
S9I S h  vN nUR                  UUUUU	US9$  N! [         a  nU R                  XS9eS nAff = f7fr   )rV   r   r   r3   r4   r5   r6   r7   r8   r9   r   )r;   r    r2   r   r   r"   r!   r   r   r'   r   r(   r<   r=   r/   s                  r>   r   BaseLLMHTTPHandler.arerankj  s      >F4D!E!E!7$112EF" "(	K/44ZZ-	 5  H 88!)#% 9 
 	
  	K$$q$JJ	Kr   r/   c                 @   [        USS5      n[        USS 5      n[        US[        U5      5      n[        USS 5      nUc  U(       a  [        USS 5      nU(       a  [        US5      (       a  [        USU5      nU(       a  [        U5      nO0 nUR	                  UUUS9e)Nr_   i  r   textr=   )error_messager_   r   )getattrrk   hasattrdictget_error_class)r;   r/   r   r_   error_headers
error_texterror_responses          r>   r9    BaseLLMHTTPHandler._handle_error  s     a49d3QA/
 J5 ^#NItDMgnf== DJ /MM--$#! . 
 	
     )NN)FN)NNN)&__name__
__module____qualname____firstlineno__rk   r   r   r   floatrh   Timeoutr   LiteLLMLoggingObjlistr   r   r   r?   boolr   rY   r   HeadersrW   rU   rs   r   r   r
   rz   r   r   r   r   r   r8   r9   __static_attributes__r   r   r>   r   r      sG     "&-1!-
 -
 $-
 	-

 -
 -
 uemm+,-
 -
 &-
 '-
 -
 -
 -
 -
 #-
  )*!-
x "'!!%AE#[
[
 [
 	[

 ![
 &[
 '[
 [
 uemm+,[
 [
 [
 [
 [
 #[
" {,<<=>#[
N "(,=3#=3 =3 	=3
 =3 =3 =3 %u}} 456=3 =3 %=3 
sEMM!	"=3T "-1     	 
 !    $  uemm+,  '      )* X "-1=3 =3 $=3 	=3
 =3 =3 =3 '=3 %u}} 456=3 =3 )*=3 
sEMM!	"=3R "&AE [
[
 [
 	[

 ![
 '[
 3-[
 [
 *[
 #[
 {,<<=>[
 [
 
[
N "&9=AE&
&
 &
 	&

 &
 !&
 -&
 *&
 '&
 #&
 %u}} 456&
 {,<<=>&
 
&
`  !%"&AEW
W
 !W
 '	W

 !5W
 %u}} 456W
 'W
 W
 W
 #W
 3-W
 {,<<=>W
 
W
F "&9=AE&
&
 &
 !	&

 *&
 '&
 '&
 &
 &
 #&
 %u}} 456&
 {,<<=>&
 
&
P

-2:?O3O-P
r   r   )%r6   typingr   r   r   r   r   rh   r3   litellm.litellm_core_utilslitellm.typeslitellm.types.utils)litellm.llms.base_llm.chat.transformationr   r	   .litellm.llms.base_llm.embedding.transformationr
   +litellm.llms.base_llm.rerank.transformationr   &litellm.llms.custom_httpx.http_handlerr   r   r   r   litellm.types.rerankr   r   r   litellm.utilsr   r   r   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjr   r   r   r   r>   <module>r      s]     = =   !   R N H  F 1 S SX*F

 F

r   