o
    #`^h                     @  sl  d dl mZ d dlmZmZmZmZ d dlmZ d dl	Z	ddl
mZ ddlmZ er0ddlmZ g d	ZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZG d$d% d%eZG d&d' d'eZ G d(d) d)eZ!dS )*    )annotations)TYPE_CHECKINGAnyOptionalcast)LiteralN   )is_dict)construct_type)ChatCompletion)
BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorLengthFinishReasonErrorContentFilterFinishReasonErrorc                   @     e Zd ZdS )OpenAIErrorN__name__
__module____qualname__ r   r   P/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/openai/_exceptions.pyr          r   c                      sZ   e Zd ZU ded< ded< ded< 	 dZded	< dZded
< ded< d fddZ  ZS )APIErrorstrmessagehttpx.Requestrequestobject | NonebodyNzOptional[str]codeparamtypereturnNonec                  s   t  | || _|| _|| _t|r@tttt	t
 |dd| _tttt	t
 |dd| _tttt
|dd| _d S d | _d | _d | _d S )Nr&   )type_valuer'   r(   )super__init__r#   r!   r%   r	   r   r   r
   r   r    getr&   r'   r(   )selfr!   r#   r%   	__class__r   r   r.   5   s   
zAPIError.__init__)r!   r    r#   r"   r%   r$   r)   r*   )r   r   r   __annotations__r&   r'   r.   __classcell__r   r   r1   r   r   "   s   
 
r   c                      s6   e Zd ZU ded< ded< ddd fddZ  ZS )APIResponseValidationErrorhttpx.Responseresponseintstatus_codeNr!   r%   r$   r!   
str | Noner)   r*   c                  s*   t  j|pd|j|d || _|j| _d S )Nz1Data returned by API invalid for expected schema.r%   )r-   r.   r#   r7   r9   )r0   r7   r%   r!   r1   r   r   r.   I   s   z#APIResponseValidationError.__init__)r7   r6   r%   r$   r!   r;   r)   r*   r   r   r   r3   r.   r4   r   r   r1   r   r5   E   s   
 r5   c                      s<   e Zd ZU dZded< ded< ded< d fddZ  ZS )APIStatusErrorz<Raised when an API response has a status code of 4xx or 5xx.r6   r7   r8   r9   r;   
request_idr!   r    r%   r$   r)   r*   c                  s4   t  j||j|d || _|j| _|jd| _d S )Nr<   zx-request-id)r-   r.   r#   r7   r9   headersr/   r?   )r0   r!   r7   r%   r1   r   r   r.   V   s   zAPIStatusError.__init__)r!   r    r7   r6   r%   r$   r)   r*   )r   r   r   __doc__r3   r.   r4   r   r   r1   r   r>   O   s   
 r>   c                      s$   e Zd Zddd fd	d
Z  ZS )APIConnectionErrorzConnection error.r:   r!   r    r#   r"   r)   r*   c                  s   t  j||d d d S )Nr<   r-   r.   )r0   r!   r#   r1   r   r   r.   ^   s   zAPIConnectionError.__init__)r!   r    r#   r"   r)   r*   r   r   r   r.   r4   r   r   r1   r   rB   ]   s    rB   c                      s   e Zd Zd fddZ  ZS )APITimeoutErrorr#   r"   r)   r*   c                   s   t  jd|d d S )NzRequest timed out.)r!   r#   rC   )r0   r#   r1   r   r   r.   c   s   zAPITimeoutError.__init__)r#   r"   r)   r*   rD   r   r   r1   r   rE   b       rE   c                   @     e Zd ZU dZded< dS )r   i  zLiteral[400]r9   Nr   r   r   r9   r3   r   r   r   r   r   g      
 r   c                   @  rG   )r   i  zLiteral[401]r9   NrH   r   r   r   r   r   k   rI   r   c                   @  rG   )r   i  zLiteral[403]r9   NrH   r   r   r   r   r   o   rI   r   c                   @  rG   )r   i  zLiteral[404]r9   NrH   r   r   r   r   r   s   rI   r   c                   @  rG   )r   i  zLiteral[409]r9   NrH   r   r   r   r   r   w   rI   r   c                   @  rG   )r   i  zLiteral[422]r9   NrH   r   r   r   r   r   {   rI   r   c                   @  rG   )r   i  zLiteral[429]r9   NrH   r   r   r   r   r      rI   r   c                   @  r   )r   Nr   r   r   r   r   r      r   r   c                      s*   e Zd ZU ded< 	 d fddZ  ZS )r   r   
completionr)   r*   c                  s0   d}|j r|d|j  7 }t | || _d S )Nz@Could not parse response content as the length limit was reachedz - )usager-   r.   rJ   )r0   rJ   msgr1   r   r   r.      s
   
z LengthFinishReasonError.__init__)rJ   r   r)   r*   r=   r   r   r1   r   r      s   
 r   c                      s   e Zd Zd fddZ  ZS )r   r)   r*   c                   s   t  d d S )NzRCould not parse response content as the request was rejected by the content filterrC   )r0   r1   r   r   r.      s   z'ContentFilterFinishReasonError.__init__)r)   r*   rD   r   r   r1   r   r      rF   r   )"
__future__r   typingr   r   r   r   typing_extensionsr   httpx_utilsr	   _modelsr
   
types.chatr   __all__	Exceptionr   r   r5   r>   rB   rE   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s2   #
