
    R1ia                       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; ddl<m=Z= g dZ> G d de,      Z? G d de-      Z@ G d d      ZA G d d      ZB G d  d!      ZC G d" d#      ZDe?ZEe@ZFy)$    )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)evals)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(ed)<   	 d*d*d*d*d*eed*d*d*d+d,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4 fd-Zeed5d.              Z	eed6d/              Z
eed7 fd0              Zd*d*d*d*d*ed*ed*d*d*d*i d1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d8d2ZeZe	 	 	 	 	 	 	 	 d9d3       Z xZS ):r.   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+   zevals.Evalsr)   OpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | Noneorganizationprojectstr | httpx.URL | Nonewebsocket_base_urlNFr8   r:   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        jT                  |       | _)        tW        |       | _,        t[        |       | _.        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?   rA   r@   rD   custom_headerscustom_queryrE   )/osenvirongetr!   r8   r:   r;   r=   super__init__r   r   _default_stream_clsr   Completionsr'   Chatr   
Embeddingsr   Filesr   Imagesr(   Audior   Moderationsr   Modelsr,   
FineTuningr-   VectorStoresr&   Betar   Batchesr*   Uploadsr+   	Responsesr)   Evalsr3   r4   r5   r6   selfr8   r:   r;   r?   r=   r@   rA   rB   rC   rD   rE   	__class__s               R/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/openai/_client.pyrU   zOpenAI.__init__P   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   rg   s    ri   qsz	OpenAI.qs        
33rj   c                (    | j                   }dd| iS NAuthorizationzBearer r8   rg   r8   s     ri   auth_headerszOpenAI.auth_headers        ,,77)!455rj   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)rT   rB   r:   r   r;   _custom_headersrg   rh   s    ri   rB   zOpenAI.default_headers   s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rj   r8   r:   r;   r=   r?   r@   rD   rA   rB   set_default_headersrC   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)
r8   r:   r;   r=   r?   r@   rD   rA   rB   rC    
ValueErrorr|   _custom_query_clientrh   r8   r:   r;   r=   r?   
isinstancer   r@   r   rA   rg   r8   r:   r;   r=   r?   r@   rD   rA   rB   r   rC   r   r   headersparamss                   ri   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# 
 
 	
rj   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   rS   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr"   rg   err_msgr   r   datas        ri   _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Drj   )r8   r9   r:   r9   r;   r9   r?   r<   r=   r<   r@   %Union[float, Timeout, None, NotGiven]rA   intrB   Mapping[str, str] | NonerC   Mapping[str, object] | NonerD   httpx.Client | NonerE   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r8   r9   r:   r9   r;   r9   r=   r<   r?   r<   r@   !float | Timeout | None | NotGivenrD   r   rA   int | NotGivenrB   r   r   r   rC   r   r   r   r   Mapping[str, Any]r   r   r   r7   r   objectr   zhttpx.Responser   r"   __name__
__module____qualname____annotations__r   r#   rU   propertyr   rp   rw   rB   r   with_optionsr   __classcell__rh   s   @ri   r.   r.   0   s   ((
O%%((''--
O"",,77 L.. ##'"+/599B.4859 ,0 -21UH UH !	UH
 UH )UH 3UH 7UH UH 2UH 3UH )UH0 &*1UH2 
3UHn 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rj   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(ed)<   	 d*d*d*d*d*eed*d*d*d+d,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4 fd-Zeed5d.              Z	eed6d/              Z
eed7 fd0              Zd*d*d*d*d*ed*ed*d*d*d*i d1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d8d2ZeZe	 	 	 	 	 	 	 	 d9d3       Z xZS ):r/   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+   zevals.AsyncEvalsr)   AsyncOpenAIWithRawResponser4   AsyncOpenAIWithStreamedResponser6   r7   r8   r9   r:   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        jT                  |       | _)        tW        |       | _,        t[        |       | _.        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`
        NrG   rH   rI   rJ   rK   rL   rM   )/rQ   rR   rS   r!   r8   r:   r;   r=   rT   rU   r   r    rV   r   AsyncCompletionsr'   	AsyncChatr   AsyncEmbeddingsr   
AsyncFilesr   AsyncImagesr(   
AsyncAudior   AsyncModerationsr   AsyncModelsr,   AsyncFineTuningr-   AsyncVectorStoresr&   	AsyncBetar   AsyncBatchesr*   AsyncUploadsr+   AsyncResponsesr)   
AsyncEvalsr   r4   r   r6   rf   s               ri   rU   zAsyncOpenAI.__init__9  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+
!;D!A'Ft'L$rj   c                    t        d      S rl   r   ro   s    ri   rp   zAsyncOpenAI.qs  rq   rj   c                (    | j                   }dd| iS rs   ru   rv   s     ri   rw   zAsyncOpenAI.auth_headers  rx   rj   c                    i t         |   dt                | j                  | j                  n	t	               | j
                  | j
                  n	t	               d| j                  S )Nzasync:r{   )rT   rB   r   r:   r   r;   r|   r}   s    ri   rB   zAsyncOpenAI.default_headers  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rj   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                   ri   r   zAsyncOpenAI.copy  r   rj   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        ri   r   zAsyncOpenAI._make_status_error  r   rj   )r8   r9   r:   r9   r;   r9   r?   r<   r=   r<   r@   r   rA   r   rB   r   rC   r   rD   httpx.AsyncClient | NonerE   r   r   r   r   r   r   )r8   r9   r:   r9   r;   r9   r=   r<   r?   r<   r@   r   rD   r   rA   r   rB   r   r   r   rC   r   r   r   r   r   r   r   r   r   r   s   @ri   r/   r/     s   --
**--,,22
!!!!''11<< L.. ##'"+/599B.4859 15 -21UM UM !	UM
 UM )UM 3UM 7UM UM 2UM 3UM .UM0 &*1UM2 
3UMn 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rj   r/   c                      e Zd ZddZy)r3   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                        | _        t9        j:                  |j8                        | _        y N)r   CompletionsWithRawResponser'   ChatWithRawResponser   EmbeddingsWithRawResponser   FilesWithRawResponser   ImagesWithRawResponser(   AudioWithRawResponser   ModerationsWithRawResponser   ModelsWithRawResponser,   FineTuningWithRawResponser-   VectorStoresWithRawResponser&   BetaWithRawResponser   BatchesWithRawResponser*   UploadsWithRawResponser+   ResponsesWithRawResponser)   EvalsWithRawResponserg   clients     ri   rU   zOpenAIWithRawResponse.__init__  s\   &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//=
rj   Nr   r.   r   r   r   r   r   rU   r   rj   ri   r3   r3     s    >rj   r3   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                        | _        t9        j:                  |j8                        | _        y r   )r   AsyncCompletionsWithRawResponser'   AsyncChatWithRawResponser   AsyncEmbeddingsWithRawResponser   AsyncFilesWithRawResponser   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser   AsyncModerationsWithRawResponser   AsyncModelsWithRawResponser,   AsyncFineTuningWithRawResponser-    AsyncVectorStoresWithRawResponser&   AsyncBetaWithRawResponser   AsyncBatchesWithRawResponser*   AsyncUploadsWithRawResponser+   AsyncResponsesWithRawResponser)   AsyncEvalsWithRawResponser   s     ri   rU   z#AsyncOpenAIWithRawResponse.__init__  s\   &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44V\\B
rj   Nr   r/   r   r   r   r   rj   ri   r   r     s    Crj   r   c                      e Zd ZddZy)r5   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                        | _        t9        j:                  |j8                        | _        y r   )r    CompletionsWithStreamingResponser'   ChatWithStreamingResponser   EmbeddingsWithStreamingResponser   FilesWithStreamingResponser   ImagesWithStreamingResponser(   AudioWithStreamingResponser    ModerationsWithStreamingResponser   ModelsWithStreamingResponser,   FineTuningWithStreamingResponser-   !VectorStoresWithStreamingResponser&   BetaWithStreamingResponser   BatchesWithStreamingResponser*   UploadsWithStreamingResponser+   ResponsesWithStreamingResponser)   EvalsWithStreamingResponser   s     ri   rU   z#OpenAIWithStreamedResponse.__init__)  s\   &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55fllC
rj   Nr   r   r   rj   ri   r5   r5   (  s    Drj   r5   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                        | _        t9        j:                  |j8                        | _        y r   )r   %AsyncCompletionsWithStreamingResponser'   AsyncChatWithStreamingResponser   $AsyncEmbeddingsWithStreamingResponser   AsyncFilesWithStreamingResponser    AsyncImagesWithStreamingResponser(   AsyncAudioWithStreamingResponser   %AsyncModerationsWithStreamingResponser    AsyncModelsWithStreamingResponser,   $AsyncFineTuningWithStreamingResponser-   &AsyncVectorStoresWithStreamingResponser&   AsyncBetaWithStreamingResponser   !AsyncBatchesWithStreamingResponser*   !AsyncUploadsWithStreamingResponser+   #AsyncResponsesWithStreamingResponser)   AsyncEvalsWithStreamingResponser   s     ri   rU   z(AsyncOpenAIWithStreamedResponse.__init__<  s]   &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::6<<H
rj   Nr   r   r   rj   ri   r   r   ;  s    Irj   r   )G
__future__r   rQ   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.evalsr)   resources.uploadsr*   resources.responsesr+   resources.fine_tuningr,   resources.vector_storesr-   __all__r.   r/   r3   r   r5   r   r0   r1   r   rj   ri   <module>r4     s    # 	 & & ,      
 " [ [ [ D 4 
 !   " " & * . 2
vfE] fERfE. fER> >&C C&D D&I I& 
rj   