
    AHj                     J   U d dl mZ d dlZd dlZd dlmZ daeej                     ed<   dej                  fdZ	 G d dej                        Z
 G d	 d
ej                        Z G d dej                        Z G d de      Z G d dej                        Z G d dej                        Z G d dej"                        Z G d dej$                        Z G d de      Z G d de      Z G d de      Z G d dej,                        Z G d d ej,                        Z G d! d"ej2                        Z G d# d$ej4                        Z G d% d&ej6                        Z G d' d(ej8                        Z G d) d*e      Z G d+ d,ej<                        Z G d- d.e      Ze
eeeeeeeeeeeeeeeeeeegZ  G d/ d0e!      Z" G d1 d2ej                        Z# G d3 d4ej4                        Z$ G d5 d6e      Z% G d7 d8e!      Z& G d9 d:e!      Z' G d; d<e      Z( G d= d>e!      Z)y)?    )OptionalN)LiteLLMCommonStrings_MINIMAL_ERROR_RESPONSEreturnc                  r    t         ,t        j                  dt        j                  dd            a t         S )z;Get a cached minimal httpx.Response object for error cases.  GEThttps://litellm.aimethodurlstatus_coderequest)r   httpxResponseRequest     J/root/tools/cai/cai_env/lib/python3.12/site-packages/litellm/exceptions.py_get_minimal_error_responser      s3     &"'..MM4HI#
 #"r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	AuthenticationErrorresponselitellm_debug_infomax_retriesnum_retriesc                 P   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |xs6 t        j                  | j                   t        j                  dd            | _        t        | 5  | j                  | j                  d        y )Ni  zlitellm.AuthenticationError: {}r	   r
   r   r   r   body)r   formatmessagellm_providermodelr   r   r   r   r   r   r   super__init__	selfr"   r#   r$   r   r   r   r   	__class__s	           r   r&   zAuthenticationError.__init__"   s     8??H(
"4&&  
ENN((MM"6%
 	LL4==t 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S N LiteLLM Retried:  times, LiteLLM Max Retries: r"   r   r   r(   _messages     r   __str__zAuthenticationError.__str__=   V    <<,T-=-=,>fEEH1$2B2B1CDDHr   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   __repr__zAuthenticationError.__repr__E   r3   r   NNNN__name__
__module____qualname__r   r   r   strintr&   r2   r5   __classcell__r)   s   @r   r   r   !   ]     .2,0%)%)

 5>>*
 %SM
 c]
 c]
6r   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	NotFoundErrorr   r   r   r   c                 P   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |xs6 t        j                  | j                   t        j                  dd            | _        t        | 5  | j                  | j                  d        y )Ni  zlitellm.NotFoundError: {}r	   r
   r   r   r   )r   r!   r"   r$   r#   r   r   r   r   r   r   r   r%   r&   	r(   r"   r$   r#   r   r   r   r   r)   s	           r   r&   zNotFoundError.__init__P   s     299'B
("4&&  
ENN((MM"6%
 	LL4==t 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zNotFoundError.__str__k   r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zNotFoundError.__repr__s   r3   r   r6   r7   r>   s   @r   rA   rA   O   r?   r   rA   c                   ~     e Zd Z	 	 	 	 	 d	deej
                     dee   dee   dee   dee   f
 fdZ	d Z
d Z xZS )
BadRequestErrorr   r   r   r   r    c	                 j   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |;t        |t        j                        r!t        |d      rt        |dd       || _        nt               | _        t        	| A  | j                  | j                  |       y )Nr   zlitellm.BadRequestError: {}_requestr   )r   r!   r"   r$   r#   r   r   r   
isinstancer   r   hasattrgetattrr   r   r%   r&   
r(   r"   r$   r#   r   r   r   r   r    r)   s
            r   r&   zBadRequestError.__init__}   s     4;;GD
("4&&  8U^^4*-*d3?$DM79DMLL4==t 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zBadRequestError.__str__   r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zBadRequestError.__repr__   r3   r   NNNNN)r8   r9   r:   r   r   r   r;   r<   dictr&   r2   r5   r=   r>   s   @r   rG   rG   |   so     .2,0%)%)#

 5>>*
 %SM
 c]
 c]
 tn
Br   rG   c                   v     e Zd Z	 	 	 	 	 	 	 ddeej
                     dee   dee   dee   dee   f
 fdZ	 xZ
S )ImageFetchErrorr   r   r   r   r    c	           
      4    t         	|   ||||||||       y )N)r"   r$   r#   r   r   r   r   r    )r%   r&   rM   s
            r   r&   zImageFetchError.__init__   s/     	%1## 	 		
r   )NNNNNNN)r8   r9   r:   r   r   r   r;   r<   rQ   r&   r=   r>   s   @r   rS   rS      so     -1,0%)%)#

 5>>*
 %SM
 c]
 c]
 tn
 
r   rS   c            
       j     e Zd Z	 	 	 ddej                  dee   dee   dee   f fdZd Z	d Z
 xZS )	UnprocessableEntityErrorr   r   r   r   c                     d| _         dj                  |      | _        || _        || _        || _        || _        || _        t        | %  | j                  |d        y )Ni  z$litellm.UnprocessableEntityError: {}r   )
r   r!   r"   r$   r#   r   r   r   r%   r&   rC   s	           r   r&   z!UnprocessableEntityError.__init__   sc     =DDWM
("4&&LL8$ 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   z UnprocessableEntityError.__str__   r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   z!UnprocessableEntityError.__repr__   r3   r   NNNr8   r9   r:   r   r   r   r;   r<   r&   r2   r5   r=   r>   s   @r   rV   rV      U     -1%)%)

 ..
 %SM
 c]
 c]
*r   rV   c                   j     e Zd Z	 	 	 	 	 d	dee   dee   dee   dee   dee   f
 fdZd Zd Z	 xZ
S )
Timeoutr   r   r   headersexception_status_codec	                     t        j                  dd      }	t        
|   |	       |xs d| _        dj                  |      | _        || _        || _        || _	        || _
        || _        || _        y )NPOSThttps://api.openai.com/v1r   )r   i  zlitellm.Timeout: {})r   r   r%   r&   r   r!   r"   r$   r#   r   r   r   r_   )r(   r"   r$   r#   r   r   r   r_   r`   r   r)   s             r   r&   zTimeout.__init__   s     --+
 	 	 	
 17C,33G<
("4&&r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zTimeout.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zTimeout.__repr__  r3   r   rP   )r8   r9   r:   r   r;   r<   rQ   r&   r2   r5   r=   r>   s   @r   r^   r^      si     -1%)%)"&/3
 %SM c] c] $  (}8r   r^   c            
       j     e Zd Z	 	 	 ddej                  dee   dee   dee   f fdZd Z	d Z
 xZS )	PermissionDeniedErrorr   r   r   r   c                     d| _         dj                  |      | _        || _        || _        || _        || _        || _        t        | %  | j                  |d        y )Ni  z!litellm.PermissionDeniedError: {}r   )
r   r!   r"   r#   r$   r   r   r   r%   r&   r'   s	           r   r&   zPermissionDeniedError.__init__  sc     :AA'J(
"4&&LL8$ 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zPermissionDeniedError.__str__2  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zPermissionDeniedError.__repr__:  r3   r   rZ   r[   r>   s   @r   rg   rg     r\   r   rg   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	RateLimitErrorr   r   r   r   c                 t   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |t        |dd       nd }t        j                  d|t        j                  dd            | _        t        	| 9  | j                  | j                  d        d	| _        d
| _        y )Ni  zlitellm.RateLimitError: {}r_   rb   $ https://cloud.google.com/vertex-ai/r   r   r_   r   r   429throttling_error)r   r!   r"   r#   r$   r   r   r   rL   r   r   r   r   r%   r&   codetype
r(   r"   r#   r$   r   r   r   r   _response_headersr)   s
            r   r&   zRateLimitError.__init__D  s     3::7C(
"4&&2:2FGHi.D 	 %MM:
 	LL4==t 	 	
 	&	r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zRateLimitError.__str__f  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zRateLimitError.__repr__n  r3   r   r6   r7   r>   s   @r   rl   rl   C  s^     .2,0%)%) '
 5>>* ' %SM ' c] ' c] 'Dr   rl   c                   Z     e Zd Z	 	 ddeej
                     dee   f fdZd Zd Z	 xZ
S )ContextWindowExceededErrorr   r   c                     d| _         || _        || _        || _        t        |   || j                  | j                  || j                         dj                  | j                        | _        y )Nr   r"   r$   r#   r   r   z&litellm.ContextWindowExceededError: {})r   r$   r#   r   r%   r&   r!   r"   )r(   r"   r$   r#   r   r   r)   s         r   r&   z#ContextWindowExceededError.__init__y  sn     
("4****#66 	 	
 @FFt||Tr   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   z"ContextWindowExceededError.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   z#ContextWindowExceededError.__repr__  r3   r   )NN)r8   r9   r:   r   r   r   r;   r&   r2   r5   r=   r>   s   @r   ry   ry   x  s>     .2,0U
 5>>*U %SMU.r   ry   c                   >     e Zd Z	 ddedee   f fdZd Zd Z xZ	S )RejectedRequestErrorrequest_datar   c                 L   d| _         dj                  |      | _        || _        || _        || _        || _        t        j                  dd      }t        j                  d|      }t        | -  | j                  | j                  | j                  || j
                         y )Nr   z litellm.RejectedRequestError: {}rb   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)   s	           r   r&   zRejectedRequestError.__init__  s     9@@I
("4(--v3NO>>c7CLL****#66 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zRejectedRequestError.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zRejectedRequestError.__repr__  r3   r   N)
r8   r9   r:   rQ   r   r;   r&   r2   r5   r=   r>   s   @r   r   r     s/     -1

 
 %SM
0r   r   c            
       ~     e Zd Z	 	 	 	 d
deej
                     dee   dee   dee   f fdZd Z	d Z
defd	Z xZS )ContentPolicyViolationErrorr   r   provider_specific_fieldsr    c                     d| _         dj                  |      | _        || _        || _        || _        || _        t        | !  | j                  | j                  | j                  || j
                  |       y )Nr   z'litellm.ContentPolicyViolationError: {})r"   r$   r#   r   r   r    )	r   r!   r"   r$   r#   r   r   r%   r&   )	r(   r"   r$   r#   r   r   r   r    r)   s	           r   r&   z$ContentPolicyViolationError.__init__  sv     @GGP
("4(@%LL****#66 	 	
r   c                 "    | j                         S r   _transform_error_to_stringr(   s    r   r2   z#ContentPolicyViolationError.__str__      ..00r   c                 "    | j                         S r   r   r   s    r   r5   z$ContentPolicyViolationError.__repr__  r   r   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S )z1
        Transform the error to a string
        r,   r-   r.   r/   r0   s     r   r   z6ContentPolicyViolationError._transform_error_to_string  sX     <<,T-=-=,>fEEH1$2B2B1CDDHr   r6   )r8   r9   r:   r   r   r   r;   rQ   r&   r2   r5   r   r=   r>   s   @r   r   r     si     .2,037#

 5>>*
 %SM
 #+4.
 tn
211	C 	r   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	ServiceUnavailableErrorr   r   r   r   c                 l   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |t        |dd       nd }t        j                  | j                   |t        j                  dd            | _        t        	| 9  | j                  | j                  d        y )	N  z#litellm.ServiceUnavailableError: {}r_   rb   rn   r   ro   r   r   r!   r"   r#   r$   r   r   r   rL   r   r   r   r   r%   r&   rt   s
            r   r&   z ServiceUnavailableError.__init__  s     <CCGL(
"4&&2:2FGHi.D 	 ((%MM:
 	LL4==t 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zServiceUnavailableError.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   z ServiceUnavailableError.__repr__"  r3   r   r6   r7   r>   s   @r   r   r     ^     .2,0%)%)

 5>>*
 %SM
 c]
 c]
@r   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	BadGatewayErrorr   r   r   r   c                 l   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |t        |dd       nd }t        j                  | j                   |t        j                  dd            | _        t        	| 9  | j                  | j                  d        y )	Ni  zlitellm.BadGatewayError: {}r_   rb   rn   r   ro   r   r   rt   s
            r   r&   zBadGatewayError.__init__,  s     4;;GD(
"4&&2:2FGHi.D 	 ((%MM:
 	LL4==t 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zBadGatewayError.__str__L  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zBadGatewayError.__repr__T  r3   r   r6   r7   r>   s   @r   r   r   +  r   r   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	InternalServerErrorr   r   r   r   c                 l   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |t        |dd       nd }t        j                  | j                   |t        j                  dd            | _        t        	| 9  | j                  | j                  d        y )	N  zlitellm.InternalServerError: {}r_   rb   rn   r   ro   r   r   rt   s
            r   r&   zInternalServerError.__init__^  s     8??H(
"4&&2:2FGHi.D 	 ((%MM:
 	LL4==t 	 	
r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zInternalServerError.__str__~  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zInternalServerError.__repr__  r3   r   r6   r7   r>   s   @r   r   r   ]  r   r   r   c                   v     e Zd Z	 	 	 	 d	dedeej                     dee   dee   dee   f
 fdZd Z	d Z
 xZS )
APIErrorr   r   r   r   r   c	                     || _         dj                  |      | _        || _        || _        || _        || _        || _        |t        j                  dd      }t        	| -  | j                  |d        y )Nzlitellm.APIError: {}rb   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   r)   s
            r   r&   zAPIError.__init__  st     '-44W=(
"4&&?mm67RSGwTBr   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zAPIError.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zAPIError.__repr__  r3   r   r6   )r8   r9   r:   r<   r   r   r   r;   r&   r2   r5   r=   r>   s   @r   r   r     sk     ,0,0%)%)CC %--(C %SMC c]C c]C,r   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	APIConnectionErrorr   r   r   r   c                    dj                  |      | _        || _        || _        d| _        || _        t        j                  dd      | _        || _	        || _
        t        | 1  | j                  | j                         y )Nzlitellm.APIConnectionError: {}r   rb   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   r)   s	           r   r&   zAPIConnectionError.__init__  ss     8>>wG(
"4}}F8ST&&t||Dr   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   zAPIConnectionError.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   zAPIConnectionError.__repr__  r3   r   r6   )r8   r9   r:   r   r   r   r;   r<   r&   r2   r5   r=   r>   s   @r   r   r     sb     ,0,0%)%)E
 %--(E %SME c]E c]E(r   r   c                   R     e Zd Z	 	 	 ddee   dee   dee   f fdZd Zd Z xZ	S )APIResponseValidationErrorr   r   r   c                     dj                  |      | _        || _        || _        t	        j
                  dd      }t	        j                  d|      }|| _        || _        || _	        t        	| -  |d |       y )Nz&litellm.APIResponseValidationError: {}rb   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   r   r   r   r)   s
            r   r&   z#APIResponseValidationError.__init__  st     @FFwO(
--v3NO>>c7C"4&&(wGr   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r2   z"APIResponseValidationError.__str__  r3   r   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r+   r/   r0   s     r   r5   z#APIResponseValidationError.__repr__  r3   r   rZ   )
r8   r9   r:   r   r;   r<   r&   r2   r5   r=   r>   s   @r   r   r     sK     -1%)%)H
 %SMH c]H c]H&r   r   c            
       4     e Zd Zdededededdf
 fdZ xZS )JSONSchemaValidationErrorr$   r#   raw_responseschemar   Nc                     || _         || _        || _        dj                  |||      }|| _        t
        |   |||       y )Nzlitellm.JSONSchemaValidationError: model={}, returned an invalid response={}, for schema={}.
Access raw response with `e.raw_response`)r$   r"   r#   )r   r   r$   r!   r"   r%   r&   )r(   r$   r#   r   r   r"   r)   s         r   r&   z"JSONSchemaValidationError.__init__  sX     )
 \  c  c<
 ugLQr   )r8   r9   r:   r;   r&   r=   r>   s   @r   r   r     s<    
R
R(+
R;>
RHK
R	
R 
Rr   r   c                         e Zd Zd fd	Z xZS )OpenAIErrorc                 0    t         |           d| _        y )Nopenai)r%   r&   r#   )r(   original_exceptionr)   s     r   r&   zOpenAIError.__init__  s    $r   r   r8   r9   r:   r&   r=   r>   s   @r   r   r     s    % %r   r   c                   x    e Zd Z	 	 	 	 	 	 	 d
dee   dee   dedeej                     dee   dee   dee   fd	Zy)UnsupportedParamsErrorNr#   r$   r   r   r   r   r   c	                     d| _         dj                  |      | _        || _        || _        || _        |xs6 t        j                  | j                   t        j                  dd            }|| _	        || _
        y )Nr   z"litellm.UnsupportedParamsError: {}r	   r
   r   r   )r   r!   r"   r$   r#   r   r   r   r   r   r   )	r(   r"   r#   r$   r   r   r   r   r   s	            r   r&   zUnsupportedParamsError.__init__  sw     ;BB7K
("4 
u~~((MM"6 
 '&r   )NNr   NNNN)	r8   r9   r:   r   r;   r<   r   r   r&   r   r   r   r   r     s     '+#-1,0%)%)' sm' }	'
 ' 5>>*' %SM' c]' c]'r   r   c                   6     e Zd Z	 ddededee   f fdZ xZS )BudgetExceededErrorcurrent_cost
max_budgetr"   c                 f    || _         || _        |xs d| d| }|| _        t        |   |       y )Nz(Budget has been exceeded! Current cost: z, Max budget: )r   r   r"   r%   r&   )r(   r   r   r"   r)   s       r   r&   zBudgetExceededError.__init__M  sJ     )$ c9,~V`Uab 	 !r   r   )r8   r9   r:   floatr   r;   r&   r=   r>   s   @r   r   r   L  s,    OS
"!
"/4
"?G}
" 
"r   r   c                        e Zd Z fdZ xZS )InvalidRequestErrorc                     d| _         || _        || _        || _        t	        j
                  dt	        j                  dd            | _        t        | %  | j                  | j                  d        y )Nr   r	   r
   r   r   )r"   r   r    )
r   r"   r$   r#   r   r   r   r   r%   r&   )r(   r"   r$   r#   r)   s       r   r&   zInvalidRequestError.__init__\  si    
(MM"6
 	LL4==t 	 	
r   r   r>   s   @r   r   r   [  s    
 
r   r   c                   j     e Zd Z	 	 	 	 ddedeej                     dee   dee   dee   f
 fdZ xZ	S )MockExceptionr   r   r   r   r   c	                     || _         dj                  |      | _        || _        || _        || _        || _        || _        |t        j                  dd      }t        	| -  | j                  |d        y )Nzlitellm.MockException: {}rb   rc   r   r   r   r   s
            r   r&   zMockException.__init__n  st     '299'B(
"4&&?mm67RSGwTBr   r6   )
r8   r9   r:   r<   r   r   r   r;   r&   r=   r>   s   @r   r   r   l  sg     ,0,0%)%)CC %--(C %SMC c]C c]C Cr   r   c                   6     e Zd Zddedee   f fdZd Z xZS )LiteLLMUnknownProviderr$   custom_llm_providerc                     t         j                  j                  j                  ||      | _        t
        |   | j                  ||d        y )N)r$   r   )r$   r#   r   )r   llm_provider_not_providedvaluer!   r"   r%   r&   )r(   r$   r   r)   s      r   r&   zLiteLLMUnknownProvider.__init__  sP    +EEKKRR-@ S 
 	LL4GRV 	 	
r   c                     | j                   S r   r"   r   s    r   r2   zLiteLLMUnknownProvider.__str__      ||r   r   )r8   r9   r:   r;   r   r&   r2   r=   r>   s   @r   r   r     s    
c 
 
r   r   c                   :     e Zd Z	 	 	 ddee   dedef fdZ xZS )GuardrailRaisedExceptionguardrail_namer"    should_wrap_with_default_messagec                 l    d| d| }|| _         |r|n|| _        t        |   | j                         y )Nz*Guardrail raised an exception, Guardrail: z, Message: )r   r"   r%   r&   )r(   r   r"   r   default_messager)   s        r   r&   z!GuardrailRaisedException.__init__  sA     G~FVVabiajk,*JPW&r   )N T)r8   r9   r:   r   r;   boolr&   r=   r>   s   @r   r   r     s8     )-15		' 	' 	' +/		' 	'r   r   c                   2     e Zd Z	 ddedee   f fdZ xZS )BlockedPiiEntityErrorentity_typer   c                 p    || _         || _        d| d| d| _        t        |   | j                         y)zJ
        Raised when a blocked entity is detected by a guardrail.
        zBlocked entity detected: z by Guardrail: z8. This entity is not allowed to be used in this request.N)r   r   r"   r%   r&   )r(   r   r   r)   s      r   r&   zBlockedPiiEntityError.__init__  sE     ',2;-~N^  _W  X&r   r   )r8   r9   r:   r;   r   r&   r=   r>   s   @r   r   r     s(     )-'' !' 'r   r   c                        e Zd Z	 	 	 	 	 	 	 ddedededee   deej                     dee   dee   dee   d	ed
e	f fdZ
d Zd Z xZS )MidStreamFallbackErrorr"   r$   r#   r   r   r   r   r   generated_contentis_pre_first_chunkc           	         t        |dd       }|t        |      nd| _        d| | _        || _        || _        || _        || _        || _        || _	        |	| _
        |
| _        |@t        j                  | j                  t        j                  dd| d            | _        n|| _        | j                  }t        | j                  d	d       xs t        j                  dd| d      }| j                  }t         | E  | j                  ||| j                  | j                  | j                  | j                  
       |t        |      nd| _        || _        || _        || _        |f| _        y )Nr   r   z litellm.MidStreamFallbackError: rb   zhttps://z.com/v1/r   r   r   )r"   r#   r$   r   r   r   r   )rL   r<   r   r"   r$   r#   r   r   r   r   r   r   r   r   r   r   r%   r&   r   args)r(   r"   r$   r#   r   r   r   r   r   r   r   original_status_saved_response_saved_request_saved_messager)   s                  r   r&   zMidStreamFallbackError.__init__  s|    ""4mTJ3B3N3/TW9'C
("4"4&&!2"4 !NN ,,!"<.9DM %DM -- 	4@ 
EMM,x@E
  	LL%]]#66(((( 	 	
 4C3N3/TW'%%#%	r   c                 &   | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }| j                  r;|dt	        | j                        j
                   dt        | j                         z  }|S )Nr,   r-   r.   z Original exception: z: )r"   r   r   r   rs   r8   r;   r0   s     r   r2   zMidStreamFallbackError.__str__  s    <<,T-=-=,>fEEH1$2B2B1CDDH""/T5L5L0M0V0V/WWYZ]^b^u^uZvYwxxHr   c                 "    | j                         S r   r2   r   s    r   r5   zMidStreamFallbackError.__repr__      ||~r   )NNNNNr   F)r8   r9   r:   r;   r   	Exceptionr   r   r<   r   r&   r2   r5   r=   r>   s   @r   r   r     s     37-1,0%)%)!##(<&<& <& 	<&
 %Y/<& 5>>*<& %SM<& c]<& c]<& <& !<&|r   r   c                   0     e Zd Zdef fdZd Zd Z xZS )&GuardrailInterventionNormalStringErrorr"   c                 F    || _         t        | 	  | j                          y r   )r"   r%   r&   )r(   r"   r)   s     r   r&   z/GuardrailInterventionNormalStringError.__init__  s    &r   c                     | j                   S r   r   r   s    r   r2   z.GuardrailInterventionNormalStringError.__str__  r   r   c                 "    | j                         S r   r   r   s    r   r5   z/GuardrailInterventionNormalStringError.__repr__  r   r   )r8   r9   r:   r;   r&   r2   r5   r=   r>   s   @r   r   r     s    ' 'r   r   )*typingr   r   r   litellm.types.utilsr   r   r   __annotations__r   r   rA   rG   rS   rV   APITimeoutErrorr^   rg   rl   ry   r   r   APIStatusErrorr   r   r   r   r   r   r   r   r   LITELLM_EXCEPTION_TYPESr   r   r   r   r   r   r   r   r   r   r   r   <module>r      sC      448 %..1 8#U^^ #*&44 *\*F(( *Z0f,, 0f
o 
0$v>> $N+f$$ +\$F88 $N1V** 1j& &T'? 'T*/ *Z/f33 /d/f++ /d/&44 /f%v %R#22 #N"!B!B "JR : R%&$$ %'_ '8 ) 0") "
&00 
"CFOO C2
_ 

'y 
''I 'J4 JZr   