
    OYhfT                    d   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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  ddlm!Z!m"Z" ddl#m$Z$m%Z%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      Z, G d d      Z-e(Z.e)Z/y)    )annotationsN)AnyUnionMapping)Selfoverride   )	resources_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_given
is_mappingget_async_library)__version__)StreamAsyncStream)OpenAIErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)	r   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 d d d eed d d d!d"
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d* fd#Zeed+d$              Z	eed,d%              Z
eed- fd&              Zd d d d ed ed d d d i d'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d.d(ZeZe	 	 	 	 	 	 	 	 d/d)       Z xZS )0r    zresources.Completionscompletionszresources.Chatchatzresources.Embeddings
embeddingszresources.Filesfileszresources.Imagesimageszresources.Audioaudiozresources.Moderationsmoderationszresources.Modelsmodelszresources.FineTuningfine_tuningzresources.Betabetazresources.BatchesbatchesOpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | NoneorganizationprojectNF
r5   r7   r8   base_url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        j.                  |       | _        t        j2                  |       | _        t        j6                  |       | _        t        j:                  |       | _        t        j>                  |       | _         t        jB                  |       | _"        tG        |       | _$        tK        |       | _&        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;   r?   custom_headerscustom_queryr@   )'osenvirongetr   r5   r7   r8   super__init__r   r   _default_stream_clsr
   Completionsr%   Chatr&   
Embeddingsr'   Filesr(   Imagesr)   Audior*   Moderationsr+   Modelsr,   
FineTuningr-   Betar.   Batchesr/   r0   r1   r2   r3   selfr5   r7   r8   r:   r;   r<   r=   r>   r?   r@   	__class__s              M/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/openai/_client.pyrP   zOpenAI.__init__E   s   @ ?jjnn%56G? V  ::>>/:L(?jjnn%89Gzz~~&78H2H##*&(C 	 		
 $* $006NN4(	#..t4__T*
&&t,__T*
$006&&t,$//5NN4(	 ((.!6t!<'A$'G$    c                    t        d      S Ncomma)array_formatr   r^   s    r`   qsz	OpenAI.qs        00ra   c                (    | j                   }dd| iS NAuthorizationzBearer r5   r^   r5   s     r`   auth_headerszOpenAI.auth_headers        ,,77)!455ra   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)rO   r=   r7   r   r8   _custom_headersr^   r_   s    r`   r=   zOpenAI.default_headers   s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
ra   r5   r7   r8   r:   r;   r?   r<   r=   set_default_headersr>   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                  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)	r5   r7   r8   r:   r;   r?   r<   r=   r>    
ValueErrorrs   _custom_query_clientr_   r5   r7   r8   r:   
isinstancer   r;   r   r<   r^   r5   r7   r8   r:   r;   r?   r<   r=   rv   r>   rw   rx   headersparamss                  r`   copyzOpenAI.copy      & &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 
+t||%:):):+t||.$.w$ADLLw#'/'<$BRBR# 
 
 	
ra   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   rN   status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   r^   err_msgr   r   datas        r`   _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Dra   )r5   r6   r7   r6   r8   r6   r:   str | httpx.URL | Noner;   %Union[float, Timeout, None, NotGiven]r<   intr=   Mapping[str, str] | Noner>   Mapping[str, object] | Noner?   httpx.Client | Noner@   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r5   r6   r7   r6   r8   r6   r:   r   r;   !float | Timeout | None | NotGivenr?   r   r<   int | NotGivenr=   r   rv   r   r>   r   rw   r   rx   Mapping[str, Any]r   r   r   r4   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   rP   propertyr   rg   rn   r=   r   with_optionsr   __classcell__r_   s   @r`   r    r    1   s[   &&
$$&&%%
,,77 L
 ##'"+/9B.4859 ,0 -2/NH NH !	NH
 NH )NH 7NH NH 2NH 3NH )NH. &*/NH0 
1NH` 1  1 6  6 
  
 ##'"+/5>+/&/488<599=+-1
 1
 !	1

 1
 )1
 31
 )1
 $1
 21
 61
 31
 71
 )1
 
1
j LEE 	E
 !E 
E Era   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 d d d eed d d d!d"
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d* fd#Zeed+d$              Z	eed,d%              Z
eed- fd&              Zd d d d ed ed d d d i d'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d.d(ZeZe	 	 	 	 	 	 	 	 d/d)       Z xZS )0r!   zresources.AsyncCompletionsr%   zresources.AsyncChatr&   zresources.AsyncEmbeddingsr'   zresources.AsyncFilesr(   zresources.AsyncImagesr)   zresources.AsyncAudior*   zresources.AsyncModerationsr+   zresources.AsyncModelsr,   zresources.AsyncFineTuningr-   zresources.AsyncBetar.   zresources.AsyncBatchesr/   AsyncOpenAIWithRawResponser1   AsyncOpenAIWithStreamedResponser3   r4   r5   r6   r7   r8   NFr9   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        j.                  |       | _        t        j2                  |       | _        t        j6                  |       | _        t        j:                  |       | _        t        j>                  |       | _         t        jB                  |       | _"        tG        |       | _$        tK        |       | _&        y)	a?  Construct a new async 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`
        NrB   rC   rD   rE   rF   rG   rH   )'rL   rM   rN   r   r5   r7   r8   rO   rP   r   r   rQ   r
   AsyncCompletionsr%   	AsyncChatr&   AsyncEmbeddingsr'   
AsyncFilesr(   AsyncImagesr)   
AsyncAudior*   AsyncModerationsr+   AsyncModelsr,   AsyncFineTuningr-   	AsyncBetar.   AsyncBatchesr/   r   r1   r   r3   r]   s              r`   rP   zAsyncOpenAI.__init__  s   @ ?jjnn%56G? V  ::>>/:L(?jjnn%89Gzz~~&78H2H##*&(C 	 		
 $/ $55d;''-	#33D9))$/
++D1))$/
$55d;++D1$44T:''-	 --d3!;D!A'Ft'L$ra   c                    t        d      S rc   r   rf   s    r`   rg   zAsyncOpenAI.qsi  rh   ra   c                (    | j                   }dd| iS rj   rl   rm   s     r`   rn   zAsyncOpenAI.auth_headersn  ro   ra   c                    i t         |   dt                | j                  | j                  n	t	               | j
                  | j
                  n	t	               d| j                  S )Nzasync:rr   )rO   r=   r   r7   r   r8   rs   rt   s    r`   r=   zAsyncOpenAI.default_headerst  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
ra   ru   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                  t        |t              r| j                  n||t        |      r|n| j                  ||d	|S rz   r|   r   s                  r`   r   zAsyncOpenAI.copy  r   ra   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        r`   r   zAsyncOpenAI._make_status_error  r   ra   )r5   r6   r7   r6   r8   r6   r:   r   r;   r   r<   r   r=   r   r>   r   r?   httpx.AsyncClient | Noner@   r   r   r   r   r   r   )r5   r6   r7   r6   r8   r6   r:   r   r;   r   r?   r   r<   r   r=   r   rv   r   r>   r   rw   r   rx   r   r   r   r   r   r   s   @r`   r!   r!     s[   ++
))!!++!!**
##11<< L
 ##'"+/9B.4859 15 -2/NM NM !	NM
 NM )NM 7NM NM 2NM 3NM .NM. &*/NM0 
1NM` 1  1 6  6 
  
 ##'"+/5>04&/488<599=+-1
 1
 !	1

 1
 )1
 31
 .1
 $1
 21
 61
 31
 71
 )1
 
1
j LEE 	E
 !E 
E Era   r!   c                      e Zd ZddZy)r0   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,                        | _        y N)r
   CompletionsWithRawResponser%   ChatWithRawResponser&   EmbeddingsWithRawResponser'   FilesWithRawResponser(   ImagesWithRawResponser)   AudioWithRawResponser*   ModerationsWithRawResponser+   ModelsWithRawResponser,   FineTuningWithRawResponser-   BetaWithRawResponser.   BatchesWithRawResponser/   r^   clients     r`   rP   zOpenAIWithRawResponse.__init__  s    $??@R@RS11&++>	#==f>O>OP33FLLA
55fmmD33FLLA
$??@R@RS55fmmD$>>v?Q?QR11&++>	 77Gra   Nr   r    r   r   r   r   r   rP   r{   ra   r`   r0   r0     s    Hra   r0   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,                        | _        y r   )r
   AsyncCompletionsWithRawResponser%   AsyncChatWithRawResponser&   AsyncEmbeddingsWithRawResponser'   AsyncFilesWithRawResponser(   AsyncImagesWithRawResponser)   AsyncAudioWithRawResponser*   AsyncModerationsWithRawResponser+   AsyncModelsWithRawResponser,   AsyncFineTuningWithRawResponser-   AsyncBetaWithRawResponser.   AsyncBatchesWithRawResponser/   r   s     r`   rP   z#AsyncOpenAIWithRawResponse.__init__  s    $DDVEWEWX66v{{C	#BB6CTCTU88F
::6==I88F
$DDVEWEWX::6==I$CCFDVDVW66v{{C	 <<V^^Lra   Nr   r!   r   r   r   r{   ra   r`   r   r     s    Mra   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,                        | _        y r   )r
    CompletionsWithStreamingResponser%   ChatWithStreamingResponser&   EmbeddingsWithStreamingResponser'   FilesWithStreamingResponser(   ImagesWithStreamingResponser)   AudioWithStreamingResponser*    ModerationsWithStreamingResponser+   ModelsWithStreamingResponser,   FineTuningWithStreamingResponser-   BetaWithStreamingResponser.   BatchesWithStreamingResponser/   r   s     r`   rP   z#OpenAIWithStreamedResponse.__init__  s    $EEfFXFXY77D	#CCFDUDUV99&,,G
;;FMMJ99&,,G
$EEfFXFXY;;FMMJ$DDVEWEWX77D	 ==fnnMra   Nr   r   r{   ra   r`   r2   r2     s    Nra   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,                        | _        y r   )r
   %AsyncCompletionsWithStreamingResponser%   AsyncChatWithStreamingResponser&   $AsyncEmbeddingsWithStreamingResponser'   AsyncFilesWithStreamingResponser(    AsyncImagesWithStreamingResponser)   AsyncAudioWithStreamingResponser*   %AsyncModerationsWithStreamingResponser+    AsyncModelsWithStreamingResponser,   $AsyncFineTuningWithStreamingResponser-   AsyncBetaWithStreamingResponser.   !AsyncBatchesWithStreamingResponser/   r   s     r`   rP   z(AsyncOpenAIWithStreamedResponse.__init__  s    $JJ6K]K]^<<V[[I	#HHIZIZ[>>v||L
@@O>>v||L
$JJ6K]K]^@@O$II&J\J\]<<V[[I	 BB6>>Rra   Nr   r   r{   ra   r`   r   r     s    Sra   r   )0
__future__r   rL   typingr   r   r   typing_extensionsr   r   httpx r
   r   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   r   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   __all__r    r!   r0   r   r2   r   r"   r#   r{   ra   r`   <module>r     s    # 	 & & ,  $    
 " D 4 
QE] QEhQE. QEhH HM MN NS S 
ra   