
    +h %                       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 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mZ dd
lmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( ddl)m*Z+ g dZ,ddl-m.Z/ ddl0m1Z1 ddl2m3Z3 ddl2m4Z4 ddl5  e+         e6       Z7e,D ]"  Z8e8js                  d      r	  e:e7e8   dd       $ d dl=Z>d dlZ?d dl@ZAddlBmCZCmDZD daEdeFd<   daGdeFd<   dZHdeFd<   eCaIdeFd<   eDaJdeFd<   daKdeFd <   daLd!eFd"<   daMd#eFd$<   e?j                  d%   ZO e>j                  eOej                  j                  d&            aSd'eFd(<   ej                  j                  d)      aTdeFd*<   ej                  j                  d+      aUdeFd,<   ej                  j                  d-      aVdeFd.<   dZWd/eFd0<    G d1 d2e      ZX G d3 d4eXe3      ZY G d5 d6e      ZZdJd7Z[dJd8Z\dJd9Z]dad:eFd;<   dKd<Z^dLd=Z_dd>l`maZa dd?l`mbZb dd@l`mcZc ddAl`mdZd ddBl`meZe ddCl`mfZf ddDl`mgZg ddEl`mhZh ddFl`miZi ddGl`mjZj ddHl`mkZk ddIl`mlZl y# e;e<f$ r Y w xY w)M    )annotationsN)override   )types)NoneType	TransportProxiesTypes)file_from_path)	ClientOpenAIStreamTimeoutr   AsyncClientAsyncOpenAIAsyncStreamRequestOptions)	__title____version__)APIErrorOpenAIErrorConflictErrorNotFoundErrorAPIStatusErrorRateLimitErrorAPITimeoutErrorBadRequestErrorAPIConnectionErrorAuthenticationErrorInternalServerErrorPermissionDeniedErrorUnprocessableEntityErrorAPIResponseValidationError)setup_logging)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)VERSION)AzureOpenAI)AsyncAzureOpenAI)*__
__module__openai)DEFAULT_TIMEOUTDEFAULT_MAX_RETRIES
str | Noneapi_keyorganizationz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+   r$   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                  F    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 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ed  fd       Z xZS )!_ModuleClientc                    t         S Nr/   selfs    B/var/www/html/venv/lib/python3.12/site-packages/openai/__init__.pyr/   z_ModuleClient.api_key   	         c                    |a y rG   rH   rJ   values     rK   r/   z_ModuleClient.api_key   	     rM   c                    t         S rG   r0   rI   s    rK   r0   z_ModuleClient.organization   s
     rM   c                    |a y rG   rS   rO   s     rK   r0   z_ModuleClient.organization   s	     rM   c                V    t         t        j                  t               S t        |    S rG   )r1   _httpxURLsuperrJ   	__class__s    rK   r1   z_ModuleClient.base_url   s%     ::h''wrM   c                $    |t               _        y rG   )rX   r1   )rJ   urlrZ   s     rK   r1   z_ModuleClient.base_url   s    rM   c                    t         S rG   r3   rI   s    rK   r3   z_ModuleClient.timeout   rL   rM   c                    |a y rG   r^   rO   s     rK   r3   z_ModuleClient.timeout   rQ   rM   c                    t         S rG   r5   rI   s    rK   r5   z_ModuleClient.max_retries   s
     rM   c                    |a y rG   ra   rO   s     rK   r5   z_ModuleClient.max_retries   	     rM   c                    t         S rG   r7   rI   s    rK   _custom_headersz_ModuleClient._custom_headers   s
     rM   c                    |a y rG   re   rO   s     rK   rf   z_ModuleClient._custom_headers   s	      rM   c                    t         S rG   r9   rI   s    rK   _custom_queryz_ModuleClient._custom_query   s
     rM   c                    |a y rG   ri   rO   s     rK   rj   z_ModuleClient._custom_query   s	     rM   c                (    t         xs
 t        |   S rG   )r:   rX   _clientrY   s    rK   rm   z_ModuleClient._client   s     -ego-rM   c                    |a y rG   )r:   rO   s     rK   rm   z_ModuleClient._client   rc   rM   c                B    	 t         |           y # t        $ r Y y w xY wrG   )rX   __del__	ExceptionrY   s    rK   rp   z_ModuleClient.__del__   s$    	GO 		s    	)returnr.   )rP   r.   rr   None)rr   z
_httpx.URL)r\   z_httpx.URL | strrr   rs   )rr   r2   )rP   r2   rr   rs   )rr   r4   )rP   r4   rr   rs   )rr   r6   )rP   r6   rr   rs   )rr   r8   )rP   r8   rr   rs   )rr   _httpx.Client)rP   rt   rr   rs   rr   rs   )__name__r*   __qualname__propertyr   r/   setterr0   r1   r3   r5   rf   rj   rm   rp   __classcell__rZ   s   @rK   rE   rE      s       ^^ 
     
      __     ^^ 
     
       
     
 .  . ^^ 
  rM   rE   c                      e Zd Zy)_AzureModuleClientN)rv   r*   rw    rM   rK   r}   r}      s    rM   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`)rX   __init__rY   s    rK   r   z)_AmbiguousModuleClientUsageError.__init__   s     P	
rM   ru   )rv   r*   rw   r   rz   r{   s   @rK   r   r      s    
 
rM   r   c                 D    t         j                  j                  d      d uS )NOPENAI_API_KEY)_osenvirongetr~   rM   rK   _has_openai_credentialsr      s    ;;??+,D88rM   c                 X    t         d uxs! t        j                  j                  d      d uS )NAZURE_OPENAI_API_KEY)r@   r   r   r   r~   rM   rK   _has_azure_credentialsr      s&    %\9O)PX\)\\rM   c                 l    t         j                  j                  d      d uxs t        d uxs t        d uS )NrA   )r   r   r   rB   rC   r~   rM   rK   _has_azure_ad_credentialsr      s7    /0< 	/%	/"$.rM   zOpenAI | Nonerm   c                    t         qt        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*              a t         S t         S )	Nr?   rA   r=   r   r$   r+   )r>   r@   r/   rB   rC   r0   r1   r3   r5   r7   r9   r:   )r/   r0   r1   r3   r5   r7   r9   r:   )rm   r@   r   r   r   rB   r>   r<   r   r   r   r   rC   r}   r/   r0   r1   r3   r5   r7   r9   r:   rE   )
has_openai	has_azurehas_azure_ads      rK   _load_clientr     s6     ! [[__-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%#+'#	
 NrM   c                     d a y rG   )rm   r~   rM   rK   _reset_clientr   G  s	     GrM   )beta)chat)audio)edits)files)images)models)
embeddings)
fine_tunes)completions)fine_tuning)moderations)rr   bool)rr   r   ru   )m
__future__r   osr   typing_extensionsr    r   _typesr   r   r	   _utilsr
   rm   r   r   r   r   r   r   r   r   _versionr   r   _exceptionsr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   _utils._logsr#   _setup_logging__all__libr$   _azureversionr%   	lib.azurer&   r'   lib._old_apilocals__locals__name
startswithsetattr	TypeErrorAttributeErrortyping_t_tehttpxrV   _base_clientr,   r-   r/   __annotations__r0   r1   r3   r5   r7   r9   r:   Literal_ApiTypecastr   r   r<   r>   r@   rB   rC   rE   r}   r   r   r   r   r   r   _module_clientr   r   r   r   r   r   r   r   r   r   r   r   r~   rM   rK   <module>r      s   #  &  5 5 "
 
 
 -     :@ ! ' 1 ;    8 FT"	HV$lH=    > j $(
! ("1	 1&S &/3, 304- 4$(! (;;()#BGGHckkoo>O.PQ/ Q++//*>?Z ? [[__-DE
 E [[__-DE
 E>B ; BbF bJ 
{ 
9]  >B ) ( * * * , , 4 4 6 6 6} >* 		s   3H;;II