
    g
                     Z    d Z ddlZddlZddlZddlZddlmZ 	 	 ddej                  fdZy)z1
Runs when LLM Exceptions occur on LiteLLM Proxy
    N)LiteLLM_ErrorLogscompletion_responsec                 R  K   ddl m} ddlm}m} |j                  d      du ry||j                  d|        | j                  d	      }|j                  j                  }| j                  d
d      }	| j                  di       }
t        j                  |
      }
|
j                         D ]  \  }}t        |      }|dd } d}	 t        |j                        }| j                  di       xs i }|j                  di       xs i }|j                  di       j                  dd      }|j                  dd      }t        j                   |	|      }t        |      }t#        t        t%        j&                               ||| j                  d
      |
||||| j                  d      | j                  d            }|j)                         }t+        j,                  |d         |d<   |j.                  j0                  j3                  |       d{    y# t        $ r Y Fw xY w7 w)a  
    Async Failure Handler - runs when LLM Exceptions occur on LiteLLM Proxy.
    This function logs the errors to the Prisma DB

    Can be disabled by setting the following on proxy_config.yaml:
    ```yaml
    general_settings:
      disable_error_logs: True
    ```

    r   )verbose_proxy_logger)general_settingsprisma_clientdisable_error_logsTNz%inside _PROXY_failure_handler kwargs=)extra	exceptionmodeloptional_paramsd   500litellm_paramsmetadata
model_infoid model_group)r   r   
start_timeend_time)
request_idr   model_idlitellm_model_namerequest_kwargsapi_baseexception_typestatus_codeexception_string	startTimeendTimer   )data)litellm._loggingr   litellm.proxy.proxy_serverr   r   getdebug	__class____name__copydeepcopyitemsstrr   	Exceptionlitellmget_api_baser   uuiduuid4
model_dumpjsondumpsdblitellm_errorlogscreate)kwargsr   r   r   r   r   r   
_exception_exception_type_model_optional_paramskv_status_code_litellm_params	_metadata	_model_id_model_groupr   _exception_string	error_logerror_log_dicts                         ^/var/www/openai/venv/lib/python3.12/site-packages/litellm/proxy/hooks/proxy_failure_handler.py_PROXY_failure_handlerrH      s    " 6J01T9 ""36 	# 	
 ZZ,
$..77GT*!::&7<==)9:$**,DAqAA$3A - 	z556L
 !**%5r:@b#''
B7=2	MM,377bA	 }}]B7''foV
O%4::<($%zz'2+*$.jj.JJz*
	 #--/+/::nEU6V+W'(0077 8 
 	
 	
 	A  		8	
s7   CH'H D4H'H%H'	H"H'!H""H')NN)	__doc__r)   r3   r0   r.   litellm.proxy._typesr   ModelResponserH        rG   <module>rN      s8        2 	J	 ..J	rM   