
    R1i(                       U d dl 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 ddlmZ ddlmZmZmZmZmZmZmZmZmZ dd	l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'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z< ddl=m>Z> g dZ?ddl@mAZBmCZC ddlDmEZE ddlFmGZGmHZH ddlI ddlJmKZKmLZL  e<         eM       ZNe?D ]  ZOeOj                  d      r	 deNeO   _Q        ! d dlTZUd dlZVd dlWZXddl7m#Z#m$Z$ daYdeZd<   da[deZd<   da\deZd<   dZ]deZd<   e#a^d eZd!<   e$a_d"eZd#<   da`d$eZd%<   daad&eZd'<   dabd(eZd)<   eVj                  d*   Zd eUj                  edej                  j                  d+            ahd,eZd-<   ej                  j                  d.      aideZd/<   ej                  j                  d0      ajdeZd1<   ej                  j                  d2      akdeZd3<   dZld4eZd5<    G d6 d7e      Zm G d8 d9emeG      Zn G d: d;e(      ZodDd<ZpdDd=ZqdDd>Zrdad?eZd@<   dEdAZsdFdBZtddClumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZ y# eReSf$ r Y w xY w)G    )annotationsN)override   )types)	NOT_GIVENOmitNoneTypeNotGiven	TransportProxiesTypes)file_from_path)	ClientOpenAIStreamTimeoutr   AsyncClientAsyncOpenAIAsyncStreamRequestOptions)	BaseModel)	__title____version__)APIResponseAsyncAPIResponse)DEFAULT_TIMEOUTDEFAULT_MAX_RETRIESDEFAULT_CONNECTION_LIMITS)APIErrorOpenAIErrorConflictErrorNotFoundErrorAPIStatusErrorRateLimitErrorAPITimeoutErrorBadRequestErrorAPIConnectionErrorAuthenticationErrorInternalServerErrorPermissionDeniedErrorLengthFinishReasonErrorUnprocessableEntityErrorAPIResponseValidationErrorContentFilterFinishReasonError)DefaultHttpxClientDefaultAsyncHttpxClient)setup_logging)HttpxBinaryResponseContent)(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   r   r   r   r   r   r.   r/   )azurepydantic_function_tool)VERSION)AzureOpenAIAsyncAzureOpenAI)*)AssistantEventHandlerAsyncAssistantEventHandler__openai)r   r   
str | Noneapi_keyorganizationprojectzstr | _httpx.URL | Nonebase_urlfloat | Timeout | Nonetimeoutintmax_retries_t.Mapping[str, str] | Nonedefault_headers_t.Mapping[str, object] | Nonedefault_queryz_httpx.Client | Nonehttp_client)r;   r2   OPENAI_API_TYPEz_ApiType | Noneapi_typeOPENAI_API_VERSIONapi_versionAZURE_OPENAI_ENDPOINTazure_endpointAZURE_OPENAI_AD_TOKENazure_ad_tokenz"_azure.AzureADTokenProvider | Noneazure_ad_token_providerc                  r    e Zd Zeedd              Zej                  dd       Zeedd              Zej                  dd       Zeedd              Zej                  dd       Zeed fd              Z	e	j                  d fd       Z	eedd	              Z
e
j                  dd
       Z
eedd              Zej                  dd       Zeedd              Zej                  dd       Zeedd              Zej                  dd       Zeed fd              Zej                  d d       Z xZS )!_ModuleClientc                    t         S Nr=   selfs    S/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/openai/__init__.pyr=   z_ModuleClient.api_key   	         c                    |a y rV   rW   rY   values     rZ   r=   z_ModuleClient.api_key   	     r\   c                    t         S rV   r>   rX   s    rZ   r>   z_ModuleClient.organization   s
     r\   c                    |a y rV   rb   r^   s     rZ   r>   z_ModuleClient.organization   s	     r\   c                    t         S rV   r?   rX   s    rZ   r?   z_ModuleClient.project   r[   r\   c                    |a y rV   re   r^   s     rZ   r?   z_ModuleClient.project   r`   r\   c                V    t         t        j                  t               S t        |    S rV   )r@   _httpxURLsuperrY   	__class__s    rZ   r@   z_ModuleClient.base_url   s%     ::h''wr\   c                $    |t               _        y rV   )rj   r@   )rY   urlrl   s     rZ   r@   z_ModuleClient.base_url   s    r\   c                    t         S rV   rB   rX   s    rZ   rB   z_ModuleClient.timeout   r[   r\   c                    |a y rV   rp   r^   s     rZ   rB   z_ModuleClient.timeout   r`   r\   c                    t         S rV   rD   rX   s    rZ   rD   z_ModuleClient.max_retries   s
     r\   c                    |a y rV   rs   r^   s     rZ   rD   z_ModuleClient.max_retries   	     r\   c                    t         S rV   rF   rX   s    rZ   _custom_headersz_ModuleClient._custom_headers   s
     r\   c                    |a y rV   rw   r^   s     rZ   rx   z_ModuleClient._custom_headers   s	      r\   c                    t         S rV   rH   rX   s    rZ   _custom_queryz_ModuleClient._custom_query   s
     r\   c                    |a y rV   r{   r^   s     rZ   r|   z_ModuleClient._custom_query   s	     r\   c                (    t         xs
 t        |   S rV   )rI   rj   _clientrk   s    rZ   r   z_ModuleClient._client   s     -ego-r\   c                    |a y rV   )rI   r^   s     rZ   r   z_ModuleClient._client   ru   r\   )returnr<   )r_   r<   r   None)r   z
_httpx.URL)rn   z_httpx.URL | strr   r   )r   rA   )r_   rA   r   r   )r   rC   )r_   rC   r   r   )r   rE   )r_   rE   r   r   )r   rG   )r_   rG   r   r   )r   _httpx.Client)r_   r   r   r   )__name__
__module____qualname__propertyr   r=   setterr>   r?   r@   rB   rD   rx   r|   r   __classcell__rl   s   @rZ   rT   rT      s       ^^ 
     
    ^^ 
      __     ^^ 
     
       
     
 .  . ^^ r\   rT   c                      e Zd Zy)_AzureModuleClientN)r   r   r    r\   rZ   r   r      s    r\   r   c                        e Zd Zd fdZ xZS ) _AmbiguousModuleClientUsageErrorc                $    t         |   d       y )NzAmbiguous use of module client; please set `openai.api_type` or the `OPENAI_API_TYPE` environment variable to `openai` or `azure`)rj   __init__rk   s    rZ   r   z)_AmbiguousModuleClientUsageError.__init__   s     P	
r\   r   r   )r   r   r   r   r   r   s   @rZ   r   r      s    
 
r\   r   c                 D    t         j                  j                  d      d uS )NOPENAI_API_KEY)_osenvirongetr   r\   rZ   _has_openai_credentialsr     s    ;;??+,D88r\   c                 X    t         d uxs! t        j                  j                  d      d uS )NAZURE_OPENAI_API_KEY)rO   r   r   r   r   r\   rZ   _has_azure_credentialsr     s&    %\9O)PX\)\\r\   c                 l    t         j                  j                  d      d uxs t        d uxs t        d uS )NrP   )r   r   r   rQ   rR   r   r\   rZ   _has_azure_ad_credentialsr     s7    /0< 	/%	/"$.r\   zOpenAI | Noner   c                    t         vt        t        j                  j	                  d      at
        t        j                  j	                  d      at        t        j                  j	                  d      at        mt               } t               }t               }| r|s|r
t               t
        t        *t        j                  j	                  d      	 
t               |s|rdandat        dk(  rMt        t        t        t        t
        t        t        t         t"        t$        t&        t(        t*              a t         S t-        t        t        t.        t         t"        t$        t&        t(        t*        	      a t         S t         S )	NrN   rP   rL   r   r2   r;   )rM   rO   r=   rQ   rR   r>   r@   rB   rD   rF   rH   rI   )	r=   r>   r?   r@   rB   rD   rF   rH   rI   )r   rO   r   r   r   rQ   rM   rK   r   r   r   r   rR   r   r=   r>   r@   rB   rD   rF   rH   rI   rT   r?   )
has_openai	has_azurehas_azure_ads      rZ   _load_clientr     s9     ! [[__-DEN! [[__-DEN++//*>?K02J.0I46LyL688*.E.QWZWbWbWfWf&XX 788L"#w('--(?)!' /+'G N%#+'#

 Nr\   c                     d a y rV   )r   r   r\   rZ   _reset_clientr   Y  s	     Gr\   )betachataudioevalsfilesimagesmodelsbatchesuploads	responses
embeddingscompletionsfine_tuningmoderationsvector_stores)r   bool)r   r   r   )
__future__r   osr   typing_extensionsr    r   _typesr   r   r	   r
   r   r   _utilsr   r   r   r   r   r   r   r   r   r   _modelsr   _versionr   r   	_responser   r   
_constantsr   r   r   _exceptionsr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   _base_clientr.   r/   _utils._logsr0   _setup_logging_legacy_responser1   __all__libr2   _azurer3   versionr4   	lib.azurer5   r6   lib._old_apilib.streamingr8   r9   locals__locals__name
startswithr   	TypeErrorAttributeErrortyping_t_tehttpxrh   r=   __annotations__r>   r?   r@   rB   rD   rF   rH   rI   Literal_ApiTypecastr   r   rK   rM   rO   rQ   rR   rT   r   r   r   r   r   r   r   _module_clientr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   rZ   <module>r      s(   #  &  P P " v v v  , W W W    $ F 9 V)V S ' W 
   8FT"	*2HV'     > j  $(
! ("1	 1&S &/3, 304- 4$(! (;;()#BGGHckkoo>O.PQ/ Q++//*>?Z ? [[__-DE
 E [[__-DE
 E>B ; BfF fR 
{ 
9]  ?D    u >* 		s   )
III