
    ^hE%                         S SK r S SKJrJrJrJrJrJrJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJr  S SKJrJrJrJrJrJr  \(       a	  S S	KJr  \rO\r " S
 S5      rg)    N)TYPE_CHECKINGAnyListLiteralOptionalTupleUnion)	BaseModel)	DualCache)UserAPIKeyAuth)ArgillaItem)AllMessageValuesChatCompletionRequest)AdapterCompletionStreamWrapperEmbeddingResponseImageResponseModelResponseStandardCallbackDynamicParamsStandardLoggingPayload)Spanc                      \ rS rSrSAS\SS4S jjrS rS rS rS	 r	S
 r
S rS rS rS rS\S\\   S\S\S\S\\   S\S\\\\   \4   4S jr   SBS\S\S\\\      S\\   S\\   S\\   4S jjrS\S\\   S\\   4S jrS\S\\   4S jrS\S\\   S \4S! jrS\S \S"\4S# jrS\S \S"\4S$ jrS\\   4S% jr S&\!S\\"   4S' jr#S(\$S\\%   4S) jr&S*\'S+\\(   S\\'   4S, jr) S-\*S.\+S/\S0\,S1   S\\-\\\4      4
S2 jr.S3\S"\S-\*4S4 jr/S/\S-\*S&\-\$\!\0\14   S\$4S5 jr2S \S6\$S0\S\\\$4   4S7 jr3S \S6\$S0\S\\\$4   4S8 jr4S/\S-\*S0\,S9   S\$4S: jr5S-\*S&\S\$4S; jr6S< r7S= r8S> r9S? r:S@r;g)CCustomLogger   message_loggingreturnNc                     Xl         g Nr   )selfr   s     \/home/james-whalen/.local/lib/python3.13/site-packages/litellm/integrations/custom_logger.py__init__CustomLogger.__init__   s    .    c                     g r    r   modelmessageskwargss       r    log_pre_api_callCustomLogger.log_pre_api_call#       r#   c                     g r   r%   r   r)   response_obj
start_timeend_times        r    log_post_api_callCustomLogger.log_post_api_call&   r,   r#   c                     g r   r%   r.   s        r    log_stream_eventCustomLogger.log_stream_event)   r,   r#   c                     g r   r%   r.   s        r    log_success_eventCustomLogger.log_success_event,   r,   r#   c                     g r   r%   r.   s        r    log_failure_eventCustomLogger.log_failure_event/   r,   r#   c                    #    g 7fr   r%   r.   s        r    async_log_stream_event#CustomLogger.async_log_stream_event4           c                    #    g 7fr   r%   r&   s       r    async_log_pre_api_call#CustomLogger.async_log_pre_api_call7   r@   rA   c                    #    g 7fr   r%   r.   s        r    async_log_success_event$CustomLogger.async_log_success_event:   r@   rA   c                    #    g 7fr   r%   r.   s        r    async_log_failure_event$CustomLogger.async_log_failure_event=   r@   rA   r'   r(   non_default_paramsheaders	prompt_idprompt_variablesdynamic_callback_paramsc                 
    XU4$ )aP  
Returns:
- model: str - the model to use (can be pulled from prompt management tool)
- messages: List[AllMessageValues] - the messages to use (can be pulled from prompt management tool)
- non_default_params: dict - update with any optional params (e.g. temperature, max_tokens, etc.) to use (can be pulled from prompt management tool)
r%   )r   r'   r(   rK   rL   rM   rN   rO   s           r    get_chat_completion_prompt'CustomLogger.get_chat_completion_promptB   s       222r#   healthy_deploymentsrequest_kwargsparent_otel_spanc                    #    U$ 7fr   r%   )r   r'   rS   r(   rT   rU   s         r    async_filter_deployments%CustomLogger.async_filter_deploymentsY   s      #"s   
deploymentc                    #    g 7fr   r%   )r   rY   rU   s      r    async_pre_call_check!CustomLogger.async_pre_call_checkc   
      	rA   c                     g r   r%   )r   rY   s     r    pre_call_checkCustomLogger.pre_call_checkh   r,   r#   	exceptionoriginal_model_groupr)   c                    #    g 7fr   r%   )r   ra   rb   r)   s       r     log_model_group_rate_limit_error-CustomLogger.log_model_group_rate_limit_errorl   r]   rA   original_exceptionc                    #    g 7fr   r%   r   rb   r)   rf   s       r    log_success_fallback_event'CustomLogger.log_success_fallback_eventq   r]   rA   c                    #    g 7fr   r%   rh   s       r    log_failure_fallback_event'CustomLogger.log_failure_fallback_eventv   r]   rA   c                     g)zd
Translates the input params, from the provider's native format to the litellm.completion() format.
Nr%   )r   r)   s     r    !translate_completion_input_params.CustomLogger.translate_completion_input_params}        	r#   responsec                     g)zL
Translates the output params, from the OpenAI format to the custom format.
Nr%   )r   rr   s     r    "translate_completion_output_params/CustomLogger.translate_completion_output_params   rq   r#   completion_streamc                     g)zN
Translates the streaming chunk, from the OpenAI format to the custom format.
Nr%   )r   rv   s     r    ,translate_completion_output_params_streaming9CustomLogger.translate_completion_output_params_streaming   rq   r#   logged_itemstandard_logging_payloadc                     #    [        S5      e7f)z
- Decide if the result should be logged to Argilla.
- Modify the result before logging to Argilla.
- Return None if the result should not be logged to Argilla.
z"async_dataset_hook not implemented)NotImplementedError)r   rz   r{   s      r    async_dataset_hookCustomLogger.async_dataset_hook   s      ""FGGs   user_api_key_dictcachedata	call_type)
completiontext_completion
embeddingsimage_generation
moderationaudio_transcriptionpass_through_endpointrerankc                    #    g 7fr   r%   )r   r   r   r   r   s        r    async_pre_call_hook CustomLogger.async_pre_call_hook   s
     $ 	rA   request_datac                    #    g 7fr   r%   )r   r   rf   r   s       r    async_post_call_failure_hook)CustomLogger.async_post_call_failure_hook   
      	rA   c                    #    g 7fr   r%   )r   r   r   rr   s       r    async_post_call_success_hook)CustomLogger.async_post_call_success_hook   r   rA   resultc                    #    X4$ 7fzUFor masking logged request/response. Return a modified version of the request/result.r%   r   r)   r   r   s       r    async_logging_hookCustomLogger.async_logging_hook   s      ~s   c                     X4$ r   r%   r   s       r    logging_hookCustomLogger.logging_hook   s     ~r#   )r   r   r   r   r   c                    #    g 7fr   r%   )r   r   r   r   s       r    async_moderation_hook"CustomLogger.async_moderation_hook   s
      	rA   c                    #    g 7fr   r%   )r   r   rr   s      r    async_post_call_streaming_hook+CustomLogger.async_post_call_streaming_hook   s
     
 	rA   c                      XS'   X#S'   SUS'   U" U5        U" SU 35        g ! [          a!    U" S[        R                  " 5        35         g f = fNr'   r(   pre_api_calllog_event_typez$Custom Logger - model call details: Custom Logger Error - 	Exception	traceback
format_excr   r'   r(   r)   print_verbosecallback_funcs         r    log_input_eventCustomLogger.log_input_event   sj    		M#7O!):'5F#$ @IJ 	M293G3G3I2JKL	Ms    # (AAc                    #     XS'   X#S'   SUS'   U" U5      I S h  vN   U" SU 35        g  N! [          a!    U" S[        R                  " 5        35         g f = f7fr   r   r   s         r    async_log_input_event"CustomLogger.async_log_input_event   s}     		M#7O!):'5F#$   @IJ  	M293G3G3I2JKL	Ms1   A/ -/ A/ (AAAAc                      SUS'   U" UUUU5        g ! [          a!    U" S[        R                  " 5        35         g f = fNpost_api_callr   r   r   r   r)   r/   r0   r1   r   r   s          r    	log_eventCustomLogger.log_event	  sT    
	'6F#$	  	293G3G3I2JKL	s    (>>c                    #     SUS'   U" UUUU5      I S h  vN   g  N! [          a!    U" S[        R                  " 5        35         g f = f7fr   r   r   s          r    async_log_eventCustomLogger.async_log_event  s`     
	'6F#$	    	293G3G3I2JKL	s1   A  A (A
A	A

Ar   )T)NN)<__name__
__module____qualname____firstlineno__boolr!   r*   r2   r5   r8   r;   r>   rC   rF   rI   strr   r   dictr   r   r   rQ   r   rW   r[   r_   r   rd   ri   rl   r   ro   r   r
   rt   r   r   rx   r   r   r~   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r%   r#   r    r   r      s     

33 '(3 !	3
 3 3 #4.3 "?3 
sD)*D0	13& *.+/## "# 4 012	#
 !# #4.# 
d#2:4.	$
 (4. ":B3-QU
$'15KT
$'15KT	'	(%	)	!$	0	1
H 
H #++A"B
H 
+		
H)  	
 	
 
id"#
( & *	 * ],=}LM	
 
$'47	tSy	$'47	tSy	 * #
	 
)  
	
MM r#   r   )r   typingr   r   r   r   r   r   r	   pydanticr
   litellm.caching.cachingr   litellm.proxy._typesr   "litellm.types.integrations.argillar   litellm.types.llms.openair   r   litellm.types.utilsr   r   r   r   r   r   opentelemetry.tracer   _Spanr   r%   r#   r    <module>r      sJ     L L L  - / : M  1DDJ Jr#   