o
    ưi                     @   s\  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dZ	G dd	 d	ej
Z
G d
d dejZG dd dejZG dd deZG dd dejZG dd dejZG dd dejZG dd dejZG dd deZG dd deZG dd deZG dd dejZG d d! d!ejZG d"d# d#ejZG d$d% d%ejZG d&d' d'ejZG d(d) d)ejZG d*d+ d+eZG d,d- d-ejZG d.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 d0d1 d1e!Z"G d2d3 d3ejZ#G d4d5 d5ejZ$G d6d7 d7eZ%G d8d9 d9e!Z&G d:d; d;e!Z'G d<d= d=eZ(G d>d? d?e!Z)dS )@    )OptionalN)LiteLLMCommonStrings_MINIMAL_ERROR_RESPONSEreturnc                   C   s$   t du rtjdtjdddda t S )z;Get a cached minimal httpx.Response object for error cases.N  GEThttps://litellm.aimethodurlstatus_coderequest)r   httpxResponseRequest r   r   I/home/app/Keep/.python/lib/python3.10/site-packages/litellm/exceptions.py_get_minimal_error_response   s   r   c                
       Z   e Zd Z				ddeej dee dee dee f fddZdd	 Z	d
d Z
  ZS )AuthenticationErrorNresponselitellm_debug_infomax_retriesnum_retriesc                    j   d| _ d|| _|| _|| _|| _|| _|| _|p&tj	| j tj
dddd| _t j| j| jd d d S )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__r   r   r#   $       


zAuthenticationError.__init__c                 C   8   | j }| jr|d| j d7 }| jr|d| j 7 }|S N LiteLLM Retried:  times, LiteLLM Max Retries: r   r   r   r%   _messager   r   r   __str__?      zAuthenticationError.__str__c                 C   r)   r*   r.   r/   r   r   r   __repr__G   r2   zAuthenticationError.__repr__NNNN__name__
__module____qualname__r   r   r   strintr#   r1   r3   __classcell__r   r   r&   r   r   #        r   c                
       r   )NotFoundErrorNr   r   r   r   c                    r   )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&   r   r   r#   R   r(   zNotFoundError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1   m   r2   zNotFoundError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3   u   r2   zNotFoundError.__repr__r4   r5   r   r   r&   r   r=   Q   r<   r=   c                       sd   e Zd Z					ddeej dee dee dee dee f
 fddZ	d	d
 Z
dd Z  ZS )BadRequestErrorNr   r   r   r   r   c	           	         s   d| _ d|| _|| _|| _|| _|| _|| _|d ur3t|t	j
r3t|dr3t|dd d ur3|| _nt | _t j| j| j|d d S )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&   r   r   r#      s$   


zBadRequestError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1      r2   zBadRequestError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3      r2   zBadRequestError.__repr__NNNNN)r6   r7   r8   r   r   r   r9   r:   dictr#   r1   r3   r;   r   r   r&   r   r?   ~   s&    	!r?   c                       sX   e Zd Z							d	deej dee dee dee dee f
 fddZ	  Z
S )
ImageFetchErrorNr   r   r   r   r   c	           	   
      s    t  j||||||||d d S )N)r   r!   r    r   r   r   r   r   )r"   r#   rD   r&   r   r   r#      s   
zImageFetchError.__init__)NNNNNNN)r6   r7   r8   r   r   r   r9   r:   rF   r#   r;   r   r   r&   r   rG      s&    	rG   c                
       T   e Zd Z			ddejdee dee dee f fddZdd	 Z	d
d Z
  ZS )UnprocessableEntityErrorNr   r   r   r   c                    H   d| _ d|| _|| _|| _|| _|| _|| _t j	| j|d d d S )Ni  z$litellm.UnprocessableEntityError: {}r   )
r   r   r   r!   r    r   r   r   r"   r#   r>   r&   r   r   r#         

z!UnprocessableEntityError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1      r2   z UnprocessableEntityError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3      r2   z!UnprocessableEntityError.__repr__NNNr6   r7   r8   r   r   r   r9   r:   r#   r1   r3   r;   r   r   r&   r   rI          rI   c                       sb   e Zd Z					ddee dee dee dee dee f
 fddZd	d
 Zdd Z	  Z
S )TimeoutNr   r   r   headersexception_status_codec	           
         sZ   t jddd}	t j|	d |pd| _d|| _|| _|| _|| _	|| _
|| _|| _d S )NPOSThttps://api.openai.com/v1r	   )r   i  zlitellm.Timeout: {})r   r   r"   r#   r   r   r   r!   r    r   r   r   rP   )
r%   r   r!   r    r   r   r   rP   rQ   r   r&   r   r   r#      s   

zTimeout.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   zTimeout.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   zTimeout.__repr__rE   )r6   r7   r8   r   r9   r:   rF   r#   r1   r3   r;   r   r   r&   r   rO      s&    	rO   c                
       rH   )PermissionDeniedErrorNr   r   r   r   c                    rJ   )Ni  z!litellm.PermissionDeniedError: {}r   )
r   r   r   r    r!   r   r   r   r"   r#   r$   r&   r   r   r#     rK   zPermissionDeniedError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1   4  r2   zPermissionDeniedError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3   <  r2   zPermissionDeniedError.__repr__rL   rM   r   r   r&   r   rT     rN   rT   c                
       r   )RateLimitErrorNr   r   r   r   c           	         s   d| _ d|| _|| _|| _|| _|| _|| _|d ur"t|dd nd }t	j
d|t	jdddd| _t j| j| jd d d	| _d
| _d S )Ni  zlitellm.RateLimitError: {}rP   rR   $ https://cloud.google.com/vertex-ai/r	   r   rP   r   r   Z429Zthrottling_error)r   r   r   r    r!   r   r   r   rC   r   r   r   r   r"   r#   codetype	r%   r   r    r!   r   r   r   r   Z_response_headersr&   r   r   r#   F  s,   


zRateLimitError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1   h  r2   zRateLimitError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3   p  r2   zRateLimitError.__repr__r4   r5   r   r   r&   r   rU   E  s     "rU   c                       sF   e Zd Z		d
deej dee f fddZdd Zdd	 Z	  Z
S )ContextWindowExceededErrorNr   r   c                    sF   d| _ || _|| _|| _t j|| j| j|| jd d| j| _d S )Nr   r   r!   r    r   r   z&litellm.ContextWindowExceededError: {})r   r!   r    r   r"   r#   r   r   )r%   r   r!   r    r   r   r&   r   r   r#   {  s   	z#ContextWindowExceededError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   z"ContextWindowExceededError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   z#ContextWindowExceededError.__repr__)NN)r6   r7   r8   r   r   r   r9   r#   r1   r3   r;   r   r   r&   r   r[   z  s    r[   c                       s>   e Zd Z	d
dedee f fddZdd Zdd	 Z  Z	S )RejectedRequestErrorNrequest_datar   c                    sh   d| _ d|| _|| _|| _|| _|| _tjddd}tj	d|d}t
 j| j| j| j|| jd d S )Nr   z litellm.RejectedRequestError: {}rR   rS   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   
zRejectedRequestError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   zRejectedRequestError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   zRejectedRequestError.__repr__N)
r6   r7   r8   rF   r   r9   r#   r1   r3   r;   r   r   r&   r   r]     s    r]   c                
       sh   e Zd Z				ddeej dee dee dee f fddZdd	 Z	d
d Z
defddZ  ZS )ContentPolicyViolationErrorNr   r   provider_specific_fieldsr   c                    sN   d| _ d|| _|| _|| _|| _|| _t j| j| j| j|| j|d d S )Nr   z'litellm.ContentPolicyViolationError: {})r   r!   r    r   r   r   )	r   r   r   r!   r    r   ra   r"   r#   )r%   r   r!   r    r   r   ra   r   r&   r   r   r#     s   

z$ContentPolicyViolationError.__init__c                 C      |   S r_   _transform_error_to_stringr%   r   r   r   r1        z#ContentPolicyViolationError.__str__c                 C   rb   r_   rc   re   r   r   r   r3     rf   z$ContentPolicyViolationError.__repr__r   c                 C   r)   )z1
        Transform the error to a string
        r+   r,   r-   r.   r/   r   r   r   rd     s   z6ContentPolicyViolationError._transform_error_to_stringr4   )r6   r7   r8   r   r   r   r9   rF   r#   r1   r3   rd   r;   r   r   r&   r   r`     s"    r`   c                
       r   )ServiceUnavailableErrorNr   r   r   r   c           	            d| _ d|| _|| _|| _|| _|| _|| _|d ur"t|dd nd }t	j
| j |t	jdddd| _t j| j| jd d d S )	N  z#litellm.ServiceUnavailableError: {}rP   rR   rV   r	   rW   r   r   r   r   r    r!   r   r   r   rC   r   r   r   r   r"   r#   rZ   r&   r   r   r#     (   


z ServiceUnavailableError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   zServiceUnavailableError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3   $  r2   z ServiceUnavailableError.__repr__r4   r5   r   r   r&   r   rg           rg   c                
       r   )BadGatewayErrorNr   r   r   r   c           	         rh   )	Ni  zlitellm.BadGatewayError: {}rP   rR   rV   r	   rW   r   rj   rZ   r&   r   r   r#   .  rk   zBadGatewayError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1   N  r2   zBadGatewayError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3   V  r2   zBadGatewayError.__repr__r4   r5   r   r   r&   r   rm   -  rl   rm   c                
       r   )InternalServerErrorNr   r   r   r   c           	         rh   )	N  zlitellm.InternalServerError: {}rP   rR   rV   r	   rW   r   rj   rZ   r&   r   r   r#   `  rk   zInternalServerError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   zInternalServerError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   zInternalServerError.__repr__r4   r5   r   r   r&   r   rn   _  rl   rn   c                       s^   e Zd Z				ddedeej dee dee dee f
 fddZd	d
 Z	dd Z
  ZS )APIErrorNr   r   r   r   r   c	           	         ^   || _ d|| _|| _|| _|| _|| _|| _|d u r#tj	ddd}t
 j| j|d d d S )Nzlitellm.APIError: {}rR   rS   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#        zAPIError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   zAPIError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   zAPIError.__repr__r4   )r6   r7   r8   r:   r   r   r   r9   r#   r1   r3   r;   r   r   r&   r   rp     s$    	rp   c                
       r   )APIConnectionErrorNr   r   r   r   c                    sX   d || _|| _|| _d| _|| _tjddd| _|| _	|| _
t j| j| jd d S )Nzlitellm.APIConnectionError: {}ro   rR   rS   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   
zAPIConnectionError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   zAPIConnectionError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   zAPIConnectionError.__repr__r4   )r6   r7   r8   r   r   r   r9   r:   r#   r1   r3   r;   r   r   r&   r   rv     s     rv   c                       sN   e Zd Z			ddee dee dee f fddZdd Zd	d
 Z  Z	S )APIResponseValidationErrorNr   r   r   c           	         s\   d || _|| _|| _tjddd}tjd|d}|| _|| _|| _	t
 j|d |d d S )Nz&litellm.APIResponseValidationError: {}rR   rS   r	   ro   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   r#     s   	z#APIResponseValidationError.__init__c                 C   r)   r*   r.   r/   r   r   r   r1     r2   z"APIResponseValidationError.__str__c                 C   r)   r*   r.   r/   r   r   r   r3     r2   z#APIResponseValidationError.__repr__rL   )
r6   r7   r8   r   r9   r:   r#   r1   r3   r;   r   r   r&   r   rw     s    rw   c                
       s2   e Zd Zdededededdf
 fddZ  ZS )	JSONSchemaValidationErrorr!   r    raw_responseschemar   Nc                    s<   || _ || _|| _d|||}|| _t j|||d d S )Nzlitellm.JSONSchemaValidationError: model={}, returned an invalid response={}, for schema={}.
Access raw response with `e.raw_response`)r!   r   r    )ry   rz   r!   r   r   r"   r#   )r%   r!   r    ry   rz   r   r&   r   r   r#     s   z"JSONSchemaValidationError.__init__)r6   r7   r8   r9   r#   r;   r   r   r&   r   rx     s    rx   c                       s   e Zd Zd fdd	Z  ZS )OpenAIErrorNc                    s   t    d| _d S )Nopenai)r"   r#   r    )r%   original_exceptionr&   r   r   r#     s   

zOpenAIError.__init__r_   r6   r7   r8   r#   r;   r   r   r&   r   r{     s    r{   c                   @   s\   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
dZdS )UnsupportedParamsErrorNr   r    r!   r   r   r   r   r   c	           	      C   sR   d| _ d|| _|| _|| _|| _|p tj| j tjdddd}|| _	|| _
d S )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   r   r   r   r#     s   
zUnsupportedParamsError.__init__)NNr   NNNN)	r6   r7   r8   r   r9   r:   r   r   r#   r   r   r   r   r     s.    	r   c                       s2   e Zd Z	ddededee f fddZ  ZS )BudgetExceededErrorNcurrent_cost
max_budgetr   c                    s6   || _ || _|pd| d| }|| _t | d S )Nz(Budget has been exceeded! Current cost: z, Max budget: )r   r   r   r"   r#   )r%   r   r   r   r&   r   r   r#   O  s   zBudgetExceededError.__init__r_   )r6   r7   r8   floatr   r9   r#   r;   r   r   r&   r   r   N  s    r   c                       s   e Zd Z fddZ  ZS )InvalidRequestErrorc                    sL   d| _ || _|| _|| _tjdtjdddd| _t j	| j| jd d d S )Nr   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   

zInvalidRequestError.__init__r~   r   r   r&   r   r   ]  s    r   c                       sN   e Zd Z				d	dedeej dee dee dee f
 fddZ  Z	S )
MockExceptionNr   r   r   r   r   c	           	         rq   )Nzlitellm.MockException: {}rR   rS   r	   rr   rs   rt   r&   r   r   r#   p  ru   zMockException.__init__r4   )
r6   r7   r8   r:   r   r   r   r9   r#   r;   r   r   r&   r   r   n  s     	r   c                       s4   e Zd Zddedee f fddZdd Z  ZS )	LiteLLMUnknownProviderNr!   custom_llm_providerc                    s.   t jjj||d| _t j| j||d d d S )N)r!   r   )r!   r    r   )r   Zllm_provider_not_providedvaluer   r   r"   r#   )r%   r!   r   r&   r   r   r#     s   

zLiteLLMUnknownProvider.__init__c                 C      | j S r_   r   re   r   r   r   r1        zLiteLLMUnknownProvider.__str__r_   )r6   r7   r8   r9   r   r#   r1   r;   r   r   r&   r   r     s    r   c                       s6   e Zd Z			d	dee dedef fddZ  ZS )
GuardrailRaisedExceptionN Tguardrail_namer    should_wrap_with_default_messagec                    s6   d| d| }|| _ |r|n|| _t | j d S )Nz*Guardrail raised an exception, Guardrail: z, Message: )r   r   r"   r#   )r%   r   r   r   Zdefault_messager&   r   r   r#     s   z!GuardrailRaisedException.__init__)Nr   T)r6   r7   r8   r   r9   boolr#   r;   r   r   r&   r   r     s    r   c                       s.   e Zd Z	ddedee f fddZ  ZS )BlockedPiiEntityErrorNentity_typer   c                    s2   || _ || _d| d| d| _t | j dS )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&   r   r   r#     s   zBlockedPiiEntityError.__init__r_   )r6   r7   r8   r9   r   r#   r;   r   r   r&   r   r     s    r   c                       s|   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dZ
dd Zdd Z  ZS )MidStreamFallbackErrorNr   Fr   r!   r    r}   r   r   r   r   generated_contentis_pre_first_chunkc              	      s  t |dd }|d urt|nd| _d| | _|| _|| _|| _|| _|| _|| _	|	| _
|
| _|d u rFtj| jtjdd| ddd| _n|| _| j}t | jd	d p]tjdd| dd}| j}t j| j||| j| j| j| j	d
 |d ur{t|nd| _|| _|| _|| _|f| _d S )Nr   ri   z litellm.MidStreamFallbackError: rR   zhttps://z.com/v1/r	   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   args)r%   r   r!   r    r}   r   r   r   r   r   r   Zoriginal_statusZ_saved_responseZ_saved_requestZ_saved_messager&   r   r   r#     sN   

zMidStreamFallbackError.__init__c                 C   s`   | j }| jr|d| j d7 }| jr|d| j 7 }| jr.|dt| jj dt| j 7 }|S )Nr+   r,   r-   z Original exception: z: )r   r   r   r}   rY   r6   r9   r/   r   r   r   r1     s   "zMidStreamFallbackError.__str__c                 C   rb   r_   r1   re   r   r   r   r3     rf   zMidStreamFallbackError.__repr__)NNNNNr   F)r6   r7   r8   r9   r   	Exceptionr   r   r:   r   r#   r1   r3   r;   r   r   r&   r   r     s>    	
>
r   c                       s2   e Zd Zdef fddZdd Zdd Z  ZS )&GuardrailInterventionNormalStringErrorr   c                    s   || _ t | j  d S r_   )r   r"   r#   )r%   r   r&   r   r   r#      s   z/GuardrailInterventionNormalStringError.__init__c                 C   r   r_   r   re   r   r   r   r1     r   z.GuardrailInterventionNormalStringError.__str__c                 C   rb   r_   r   re   r   r   r   r3     rf   z/GuardrailInterventionNormalStringError.__repr__)r6   r7   r8   r9   r#   r1   r3   r;   r   r   r&   r   r     s    r   )*typingr   r   r|   Zlitellm.types.utilsr   r   r   __annotations__r   r   r=   r?   rG   rI   ZAPITimeoutErrorrO   rT   rU   r[   r]   r`   ZAPIStatusErrorrg   rm   rn   rp   rv   rw   rx   r{   r   ZLITELLM_EXCEPTION_TYPESr   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sr   .-3'.'5**-223)'%
M