Ë
    Ýªg0  ã                   óˆ   — d dl Z d dlmZ d dl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 dd	lmZ dd
lmZ  G d„ d«      Zy)é    N)Údatetime)ÚOptional)ÚLogging)Ú&PassThroughEndpointLoggingResultValues)Ú!StandardPassThroughResponseObject)Úexecutoré   )Ú"AnthropicPassthroughLoggingHandler)ÚVertexPassthroughLoggingHandlerc                   ól   — e Zd Zd„ Zdej
                  dee   dede	de	de
de
d	efd
„Zde	fd„Zde	fd„Zy)ÚPassThroughEndpointLoggingc                 ó&   — g d¢| _         dg| _        y )N)ÚgenerateContentÚstreamGenerateContentÚpredictz	/messages)ÚTRACKED_VERTEX_ROUTESÚTRACKED_ANTHROPIC_ROUTES)Úselfs    úi/var/www/openai/venv/lib/python3.12/site-packages/litellm/proxy/pass_through_endpoints/success_handler.pyÚ__init__z#PassThroughEndpointLogging.__init__   s   € ò&
ˆÔ"ð *5¨ˆÕ%ó    Úhttpx_responseÚresponse_bodyÚlogging_objÚ	url_routeÚresultÚ
start_timeÚend_timeÚ	cache_hitc	              ‹   ó   K  — d }
| j                  |«      r(t        j                  d|||||||dœ|	¤Ž}|d   }
|d   }	n=| j                  |«      r,t	        j
                  d||xs i ||||||dœ|	¤Ž}|d   }
|d   }	|
€t        |j                  ¬«      }
t        j                  |j                  |
|||fi |	¤Ž  |j                  dt        |t        «      rt        j                  |«      n|
||ddœ|	¤Žƒ d {  –—†  y 7 Œ­w)	N)r   r   r   r   r   r   r   r   Úkwargs)r   r   r   r   r   r   r   r   )ÚresponseF)r   r   r   r   © )Úis_vertex_router   Úvertex_passthrough_handlerÚis_anthropic_router
   Úanthropic_passthrough_handlerr   ÚtextÚthread_pool_executorÚsubmitÚsuccess_handlerÚasync_success_handlerÚ
isinstanceÚdictÚjsonÚdumps)r   r   r   r   r   r   r   r   r   r!   Ú standard_logging_response_objectÚ)vertex_passthrough_logging_handler_resultÚ,anthropic_passthrough_logging_handler_results                r   Ú"pass_through_async_success_handlerz=PassThroughEndpointLogging.pass_through_async_success_handler   su  è ø€ ð ð 	)ð ×Ñ 	Ô*ä/×JÑJð 	Ø#1Ø +Ø'Ø!Ø)Ø%Ø'ñ	ð ñ	ð 6ð :¸(ÑCð -ð ?¸xÑH‰FØ×$Ñ$ YÔ/ä2×PÑPð 
Ø#1Ø"/Ò"5°2Ø +Ø'Ø!Ø)Ø%Ø'ñ
ð ñ
ð 9ð =¸XÑFð -ð BÀ(ÑKˆFØ+Ð3Ü/PØ'×,Ñ,ô0Ð,ô 	×#Ñ#Ø×'Ñ'Ø,ØØØñ	
ð ò	
ð 0ˆk×/Ñ/ð 

ô ˜f¤dÔ+ô —
‘
˜6Ô"à5à!ØØñ

ð ñ

÷ 
	
ò 
	
ús   ‚C4C>Ã6C<Ã7C>c                 ó2   — | j                   D ]  }||v sŒ y y©NTF)r   ©r   r   Úroutes      r   r$   z*PassThroughEndpointLogging.is_vertex_routek   s"   € Ø×/Ô/ˆEØ˜	Ò!Ùð 0ð r   c                 ó2   — | j                   D ]  }||v sŒ y yr6   )r   r7   s      r   r&   z-PassThroughEndpointLogging.is_anthropic_routeq   s"   € Ø×2Ô2ˆEØ˜	Ò!Ùð 3ð r   N)Ú__name__Ú
__module__Ú__qualname__r   ÚhttpxÚResponser   r.   ÚLiteLLMLoggingObjÚstrr   Úboolr4   r$   r&   r#   r   r   r   r      s„   „ ò6ðJ
àŸ™ðJ
ð   ‘~ðJ
ð 'ð	J
ð
 ðJ
ð ðJ
ð ðJ
ð ðJ
ð óJ
ðX¨ó ð¨Cô r   r   )r/   r   Útypingr   r=   Ú*litellm.litellm_core_utils.litellm_loggingr   r?   Úlitellm.proxy._typesr   Úlitellm.types.utilsr   Úlitellm.utilsr   r)   Ú;llm_provider_handlers.anthropic_passthrough_logging_handlerr
   Ú8llm_provider_handlers.vertex_passthrough_logging_handlerr   r   r#   r   r   Ú<module>rI      s3   ðÛ Ý Ý ã å SÝ GÝ AÝ :õõ÷
aò ar   