
    $Gg`                       d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 d dl
Z
ddlmZ ddlmZ ddlmZmZmZmZmZmZmZ dd	lmZmZmZ dd
lmZ ddlmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z' ddlm(Z(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; g dZ< G d de,      Z= G d de-      Z> G d d      Z? G d d      Z@ G d d       ZA G d! d"      ZBe=ZCe>ZDy)#    )annotationsN)AnyUnionMapping)Selfoverride   )_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_given
is_mappingget_async_library)__version__)filesimagesmodelsbatches
embeddingscompletionsmoderations)StreamAsyncStream)OpenAIErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)beta)chat)audio)uploads)	responses)fine_tuning)vector_stores)r   r   r   r   OpenAIAsyncOpenAIClientAsyncClientc                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded <   d!ed"<   d#ed$<   d#ed%<   d&ed'<   	 d(d(d(d(d(eed(d(d(d)d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2 fd+Zeed3d,              Z	eed4d-              Z
eed5 fd.              Zd(d(d(d(d(ed(ed(d(d(d(i d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d6d0ZeZe	 	 	 	 	 	 	 	 d7d1       Z xZS )8r-   zcompletions.Completionsr   z	chat.Chatr'   zembeddings.Embeddingsr   zfiles.Filesr   zimages.Imagesr   zaudio.Audior(   zmoderations.Moderationsr   zmodels.Modelsr   zfine_tuning.FineTuningr+   zvector_stores.VectorStoresr,   z	beta.Betar&   zbatches.Batchesr   zuploads.Uploadsr)   zresponses.Responsesr*   OpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | Noneorganizationprojectstr | httpx.URL | Nonewebsocket_base_urlNFr7   r9   r:   base_urlr<   timeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc          
        |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|| _        || _        |t         j                  j                  d      }|d}t        | %  t        ||||
||	|       t        | _        t        j                  |       | _        t        j                   |       | _        t#        j$                  |       | _        t'        j(                  |       | _        t+        j,                  |       | _        t/        j0                  |       | _        t3        j4                  |       | _        t7        j8                  |       | _        t;        j<                  |       | _        t?        j@                  |       | _        tC        jD                  |       | _!        tG        jH                  |       | _#        tK        jL                  |       | _%        tO        jP                  |       | _'        tS        |       | _*        tW        |       | _,        y)	aE  Construct a new synchronous OpenAI client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        NOPENAI_API_KEYThe api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variableOPENAI_ORG_IDOPENAI_PROJECT_IDOPENAI_BASE_URLhttps://api.openai.com/v1versionr>   r@   r?   rC   custom_headerscustom_queryrD   )-osenvirongetr!   r7   r9   r:   r<   super__init__r   r   _default_stream_clsr   Completionsr'   Chatr   
Embeddingsr   Filesr   Imagesr(   Audior   Moderationsr   Modelsr+   
FineTuningr,   VectorStoresr&   Betar   Batchesr)   Uploadsr*   	Responsesr2   r3   r4   r5   selfr7   r9   r:   r>   r<   r?   r@   rA   rB   rC   rD   	__class__s               k/home/kushmeetdev/apache_webroot/langgraph_flaskproject/venv/lib/python3.12/site-packages/openai/_client.pyrT   zOpenAI.__init__N   s   B ?jjnn%56G? V  ::>>/:L(?jjnn%89G"4zz~~&78H2H##*&(C 	 		
 $* &2248IIdO	$//5[[&
mmD)[[&
&2248mmD)&11$7*77=IIdO	t,t,",,T2!6t!<'A$'G$    c                    t        d      S Nbrackets)array_formatr   re   s    rg   qsz	OpenAI.qs        
33rh   c                (    | j                   }dd| iS NAuthorizationzBearer r7   re   r7   s     rg   auth_headerszOpenAI.auth_headers        ,,77)!455rh   c                    i t         |   d| j                  | j                  n	t               | j                  | j                  n	t               d| j
                  S )NfalsezX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)rS   rA   r9   r   r:   _custom_headersre   rf   s    rg   rA   zOpenAI.default_headers   s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rh   r7   r9   r:   r<   r>   r?   rC   r@   rA   set_default_headersrB   set_default_query_extra_kwargsc                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d
|S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)
r7   r9   r:   r<   r>   r?   rC   r@   rA   rB    
ValueErrorrz   _custom_query_clientrf   r7   r9   r:   r<   r>   
isinstancer   r?   r   r@   re   r7   r9   r:   r<   r>   r?   rC   r@   rA   r}   rB   r~   r   headersparamss                   rg   copyzOpenAI.copy   '   ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 
+t||%:):):+t||1LT5L5L.$.w$ADLLw#'/'<$BRBR# 
 
 	
rh   c                  t        |      r|j                  d|      n|}|j                  dk(  rt        j                  |||      S |j                  dk(  rt        j
                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  d	k(  rt        j                  |||      S |j                  d
k\  rt        j                  |||      S t        |||      S Nerrori  )responsebodyi  i  i  i  i  i  i  r   rR   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr"   re   err_msgr   r   datas        rg   _make_status_errorzOpenAI._make_status_error   I    +5T*:txx&3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDrh   )r7   r8   r9   r8   r:   r8   r>   r;   r<   r;   r?   %Union[float, Timeout, None, NotGiven]r@   intrA   Mapping[str, str] | NonerB   Mapping[str, object] | NonerC   httpx.Client | NonerD   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r7   r8   r9   r8   r:   r8   r<   r;   r>   r;   r?   !float | Timeout | None | NotGivenrC   r   r@   int | NotGivenrA   r   r}   r   rB   r   r~   r   r   Mapping[str, Any]r   r   r   r6   r   objectr   zhttpx.Responser   r"   __name__
__module____qualname____annotations__r   r#   rT   propertyr   rn   ru   rA   r   with_optionsr   __classcell__rf   s   @rg   r-   r-   /   s   ((
O%%((''--
O"",,77 L.. ##'"+/599B.4859 ,0 -21TH TH !	TH
 TH )TH 3TH 7TH TH 2TH 3TH )TH0 &*1TH2 
3THl 4  4 6  6 
  
 ##'"59+/5>+/&/488<599=+-3
 3
 !	3

 3
 33
 )3
 33
 )3
 $3
 23
 63
 33
 73
 )3
  
!3
n LEE 	E
 !E 
E Erh   r-   c                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded <   d!ed"<   d#ed$<   d#ed%<   d&ed'<   	 d(d(d(d(d(eed(d(d(d)d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2 fd+Zeed3d,              Z	eed4d-              Z
eed5 fd.              Zd(d(d(d(d(ed(ed(d(d(d(i d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d6d0ZeZe	 	 	 	 	 	 	 	 d7d1       Z xZS )8r.   zcompletions.AsyncCompletionsr   zchat.AsyncChatr'   zembeddings.AsyncEmbeddingsr   zfiles.AsyncFilesr   zimages.AsyncImagesr   zaudio.AsyncAudior(   zmoderations.AsyncModerationsr   zmodels.AsyncModelsr   zfine_tuning.AsyncFineTuningr+   zvector_stores.AsyncVectorStoresr,   zbeta.AsyncBetar&   zbatches.AsyncBatchesr   zuploads.AsyncUploadsr)   zresponses.AsyncResponsesr*   AsyncOpenAIWithRawResponser3   AsyncOpenAIWithStreamedResponser5   r6   r7   r8   r9   r:   r;   r<   NFr=   c          
        |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|| _        || _        |t         j                  j                  d      }|d}t        | %  t        ||||
||	|       t        | _        t        j                  |       | _        t        j                   |       | _        t#        j$                  |       | _        t'        j(                  |       | _        t+        j,                  |       | _        t/        j0                  |       | _        t3        j4                  |       | _        t7        j8                  |       | _        t;        j<                  |       | _        t?        j@                  |       | _        tC        jD                  |       | _!        tG        jH                  |       | _#        tK        jL                  |       | _%        tO        jP                  |       | _'        tS        |       | _*        tW        |       | _,        y)	aD  Construct a new async AsyncOpenAI client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        NrF   rG   rH   rI   rJ   rK   rL   )-rP   rQ   rR   r!   r7   r9   r:   r<   rS   rT   r   r    rU   r   AsyncCompletionsr'   	AsyncChatr   AsyncEmbeddingsr   
AsyncFilesr   AsyncImagesr(   
AsyncAudior   AsyncModerationsr   AsyncModelsr+   AsyncFineTuningr,   AsyncVectorStoresr&   	AsyncBetar   AsyncBatchesr)   AsyncUploadsr*   AsyncResponsesr   r3   r   r5   rd   s               rg   rT   zAsyncOpenAI.__init__5  s   B ?jjnn%56G? V  ::>>/:L(?jjnn%89G"4zz~~&78H2H##*&(C 	 		
 $/ &77=NN4(	$44T:%%d+
((.%%d+
&77=((.&66t<*<<TBNN4(	++D1++D1"11$7!;D!A'Ft'L$rh   c                    t        d      S rj   r   rm   s    rg   rn   zAsyncOpenAI.qs  ro   rh   c                (    | j                   }dd| iS rq   rs   rt   s     rg   ru   zAsyncOpenAI.auth_headers  rv   rh   c                    i t         |   dt                | j                  | j                  n	t	               | j
                  | j
                  n	t	               d| j                  S )Nzasync:ry   )rS   rA   r   r9   r   r:   rz   r{   s    rg   rA   zAsyncOpenAI.default_headers  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rh   r|   c                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d
|S r   r   r   s                   rg   r   zAsyncOpenAI.copy  r   rh   c                  t        |      r|j                  d|      n|}|j                  dk(  rt        j                  |||      S |j                  dk(  rt        j
                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  d	k(  rt        j                  |||      S |j                  d
k\  rt        j                  |||      S t        |||      S r   r   r   s        rg   r   zAsyncOpenAI._make_status_error  r   rh   )r7   r8   r9   r8   r:   r8   r>   r;   r<   r;   r?   r   r@   r   rA   r   rB   r   rC   httpx.AsyncClient | NonerD   r   r   r   r   r   r   )r7   r8   r9   r8   r:   r8   r<   r;   r>   r;   r?   r   rC   r   r@   r   rA   r   r}   r   rB   r   r~   r   r   r   r   r   r   r   r   s   @rg   r.   r.     s   --
**--,,22
!!!!''11<< L.. ##'"+/599B.4859 15 -21TM TM !	TM
 TM )TM 3TM 7TM TM 2TM 3TM .TM0 &*1TM2 
3TMl 4  4 6  6 
  
 ##'"59+/5>04&/488<599=+-3
 3
 !	3

 3
 33
 )3
 33
 .3
 $3
 23
 63
 33
 73
 )3
  
!3
n LEE 	E
 !E 
E Erh   r.   c                      e Zd ZddZy)r2   c                   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _
        t        j                  |j                        | _        t        j                  |j                        | _        t!        j"                  |j                         | _        t%        j&                  |j$                        | _        t)        j*                  |j(                        | _        t-        j.                  |j,                        | _        t1        j2                  |j0                        | _        t5        j6                  |j4                        | _        y N)r   CompletionsWithRawResponser'   ChatWithRawResponser   EmbeddingsWithRawResponser   FilesWithRawResponser   ImagesWithRawResponser(   AudioWithRawResponser   ModerationsWithRawResponser   ModelsWithRawResponser+   FineTuningWithRawResponser,   VectorStoresWithRawResponser&   BetaWithRawResponser   BatchesWithRawResponser)   UploadsWithRawResponser*   ResponsesWithRawResponsere   clients     rg   rT   zOpenAIWithRawResponse.__init__  sF   &AA&BTBTU,,V[[9	$>>v?P?PQ//=
226==A//=
&AA&BTBTU226==A&@@ASAST*FFvG[G[\,,V[[9	55fnnE55fnnE";;F<L<LMrh   Nr   r-   r   r   r   r   r   rT   r   rh   rg   r2   r2     s    Nrh   r2   c                      e Zd ZddZy)r   c                   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _
        t        j                  |j                        | _        t        j                  |j                        | _        t!        j"                  |j                         | _        t%        j&                  |j$                        | _        t)        j*                  |j(                        | _        t-        j.                  |j,                        | _        t1        j2                  |j0                        | _        t5        j6                  |j4                        | _        y r   )r   AsyncCompletionsWithRawResponser'   AsyncChatWithRawResponser   AsyncEmbeddingsWithRawResponser   AsyncFilesWithRawResponser   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser   AsyncModerationsWithRawResponser   AsyncModelsWithRawResponser+   AsyncFineTuningWithRawResponser,    AsyncVectorStoresWithRawResponser&   AsyncBetaWithRawResponser   AsyncBatchesWithRawResponser)   AsyncUploadsWithRawResponser*   AsyncResponsesWithRawResponser   s     rg   rT   z#AsyncOpenAIWithRawResponse.__init__  sF   &FFvGYGYZ11&++>	$CCFDUDUV44V\\B
77F44V\\B
&FFvGYGYZ77F&EEfFXFXY*KKFL`L`a11&++>	::6>>J::6>>J"@@AQAQRrh   Nr   r.   r   r   r   r   rh   rg   r   r     s    Srh   r   c                      e Zd ZddZy)r4   c                   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _
        t        j                  |j                        | _        t        j                  |j                        | _        t!        j"                  |j                         | _        t%        j&                  |j$                        | _        t)        j*                  |j(                        | _        t-        j.                  |j,                        | _        t1        j2                  |j0                        | _        t5        j6                  |j4                        | _        y r   )r    CompletionsWithStreamingResponser'   ChatWithStreamingResponser   EmbeddingsWithStreamingResponser   FilesWithStreamingResponser   ImagesWithStreamingResponser(   AudioWithStreamingResponser    ModerationsWithStreamingResponser   ModelsWithStreamingResponser+   FineTuningWithStreamingResponser,   !VectorStoresWithStreamingResponser&   BetaWithStreamingResponser   BatchesWithStreamingResponser)   UploadsWithStreamingResponser*   ResponsesWithStreamingResponser   s     rg   rT   z#OpenAIWithStreamedResponse.__init__"  sF   &GGHZHZ[226;;?	$DDVEVEVW55fllC
88G55fllC
&GGHZHZ[88G&FFvGYGYZ*LLVMaMab226;;?	;;FNNK;;FNNK"AA&BRBRSrh   Nr   r   r   rh   rg   r4   r4   !  s    Trh   r4   c                      e Zd ZddZy)r   c                   t        j                  |j                         | _         t        j                  |j                        | _        t	        j
                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _
        t        j                  |j                        | _        t        j                  |j                        | _        t!        j"                  |j                         | _        t%        j&                  |j$                        | _        t)        j*                  |j(                        | _        t-        j.                  |j,                        | _        t1        j2                  |j0                        | _        t5        j6                  |j4                        | _        y r   )r   %AsyncCompletionsWithStreamingResponser'   AsyncChatWithStreamingResponser   $AsyncEmbeddingsWithStreamingResponser   AsyncFilesWithStreamingResponser    AsyncImagesWithStreamingResponser(   AsyncAudioWithStreamingResponser   %AsyncModerationsWithStreamingResponser    AsyncModelsWithStreamingResponser+   $AsyncFineTuningWithStreamingResponser,   &AsyncVectorStoresWithStreamingResponser&   AsyncBetaWithStreamingResponser   !AsyncBatchesWithStreamingResponser)   !AsyncUploadsWithStreamingResponser*   #AsyncResponsesWithStreamingResponser   s     rg   rT   z(AsyncOpenAIWithStreamedResponse.__init__4  sG   &LLVM_M_`77D	$II&J[J[\::6<<H
==fmmL::6<<H
&LLVM_M_`==fmmL&KKFL^L^_*QQRXRfRfg77D	@@P@@P"FFvGWGWXrh   Nr   r   r   rh   rg   r   r   3  s    Yrh   r   )E
__future__r   rP   typingr   r   r   typing_extensionsr   r   httpx r
   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   r   _versionr   	resourcesr   r   r   r   r   r   r   
_streamingr   r    r!   r"   _base_clientr#   r$   r%   resources.betar&   resources.chatr'   resources.audior(   resources.uploadsr)   resources.responsesr*   resources.fine_tuningr+   resources.vector_storesr,   __all__r-   r.   r2   r   r4   r   r/   r0   r   rh   rg   <module>r,     s    # 	 & & ,      
 " [ [ [ D 4 
 !   " & * . 2
vdE] dENdE. dENN N$S S$T T$Y Y$ 
rh   