HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/.local/lib/python3.10/site-packages/openai/lib/__pycache__/azure.cpython-310.pyc
o

���g\�@s�ddlmZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZddl
mZmZddlZddlmZmZmZmZmZddlmZmZddlmZmZdd	lmZdd
lm Z ddl!m"Z"m#Z#ddl$m%Z%dd
l&m'Z'm(Z(e)gd��Z*e	ge+fZ,e	gdfZ-edeej.ej/fd�Z0edee"ee#efd�Z1d�2gd��Z3Gdd�de%�Z4Gdd�de(e0e1f�Z5Gdd�de5ej.e"efe�Z6Gdd�de5ej/e#efe�Z7dS)�)�annotationsN)�Any�Union�Mapping�TypeVar�Callable�	Awaitable�cast�overload)�Self�override�)�	NOT_GIVEN�Omit�Query�Timeout�NotGiven)�is_given�
is_mapping)�OpenAI�AsyncOpenAI)�
model_copy)�FinalRequestOptions)�Stream�AsyncStream)�OpenAIError)�DEFAULT_MAX_RETRIES�
BaseClient)z/completionsz/chat/completionsz/embeddingsz/audio/transcriptionsz/audio/translationsz
/audio/speechz/images/generationszstr | Awaitable[str]�
_HttpxClientT)�bound�_DefaultStreamT�)�<zmissing API key�>cseZdZd�fdd�Z�ZS)�MutuallyExclusiveAuthError�return�Nonecst��d�dS)Nz�The `api_key`, `azure_ad_token` and `azure_ad_token_provider` arguments are mutually exclusive; Only one can be passed at a time)�super�__init__)�self��	__class__��C/home/arjun/.local/lib/python3.10/site-packages/openai/lib/azure.pyr(-s�z#MutuallyExclusiveAuthError.__init__)r%r&)�__name__�
__module__�__qualname__r(�
__classcell__r,r,r*r-r$,sr$cs(eZdZedd�d�fd	d
��Z�ZS)�BaseAzureClientr��
retries_taken�optionsrr4�intr%�
httpx.RequestcsX|jtvr$t|j�r$|j�d�}|dur$dt|j�vr$d|�|j��|_t�j||d�S)N�modelz/deploymentsz
/deployments/r3)	�url�_deployments_endpointsr�	json_data�get�str�base_urlr'�_build_request)r)r5r4r8r*r,r-r?4s
zBaseAzureClient._build_request)r5rr4r6r%r7)r.r/r0rr?r1r,r,r*r-r23s�r2cs eZdZedddddddeeddddd�
d<dd��Zedddddddeeddddd�
d=d d��Zeddddddeeddddd!�d>d#d��Zddddddddddeeddddd$�d?�fd&d�Zeddddddddededdddid'�d@�fd.d/��ZeZ	dAd0d1�Z
edBd4d5��ZdCd:d;�Z�Z
S)D�AzureOpenAINF)
�azure_deployment�api_version�api_key�azure_ad_token�azure_ad_token_provider�organization�websocket_base_url�timeout�max_retries�default_headers�
default_query�http_client�_strict_response_validation�azure_endpointr=rA�
str | NonerBrCrDrE�AzureADTokenProvider | NonerFrG�str | httpx.URL | NonerH�!float | Timeout | None | NotGivenrIr6rJ�Mapping[str, str] | NonerK�Mapping[str, object] | NonerL�httpx.Client | NonerM�boolr%r&cC�dS�Nr,)r)rNrArBrCrDrErFrGrHrIrJrKrLrMr,r,r-r(D�zAzureOpenAI.__init__c
CrWrXr,)r)rArBrCrDrErFrGrHrIrJrKrLrMr,r,r-r(X�)rBrCrDrErFrGrHrIrJrKrLrMr>c
CrWrXr,)r)r>rBrCrDrErFrGrHrIrJrKrLrMr,r,r-r(krZ)rBrNrArCrDrErF�projectrGr>rHrIrJrKrLrMr[c
s>|dur
tj�d�}|durtj�d�}|dur$|dur$|dur$td��|dur.tj�d�}|dur6td��|dur?d|i}ni|�d|i�}|
duru|durUtj�d�}|dur]td	��|durl|�d
��d|��}
n|�d
��d�}
n|dur}td
��|dur�t}t�j||||
|||
|||	|d�||_	||_
||_dS)a�Construct a new synchronous azure openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `AZURE_OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
        - `api_version` from `OPENAI_API_VERSION`
        - `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

        Args:
            azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

            azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

            azure_deployment: A model deployment, if given sets the base client URL to include `/deployments/{azure_deployment}`.
                Note: this means you won't be able to use non-deployment endpoints. Not supported with Assistants APIs.
        N�AZURE_OPENAI_API_KEY�AZURE_OPENAI_AD_TOKEN��Missing credentials. Please pass one of `api_key`, `azure_ad_token`, `azure_ad_token_provider`, or the `AZURE_OPENAI_API_KEY` or `AZURE_OPENAI_AD_TOKEN` environment variables.�OPENAI_API_VERSION�_Must provide either the `api_version` argument or the `OPENAI_API_VERSION` environment variable�api-version�AZURE_OPENAI_ENDPOINT�uMust provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable�/�/openai/deployments/�/openai�2base_url and azure_endpoint are mutually exclusive�rCrFr[r>rHrIrJrKrLrGrM��os�environr<r�
ValueError�rstrip�API_KEY_SENTINELr'r(�_api_version�_azure_ad_token�_azure_ad_token_provider)r)rBrNrArCrDrErFr[rGr>rHrIrJrKrLrMr*r,r-r(~�^(��
��

�rCrFr[rGrBrDrEr>rHrLrIrJ�set_default_headersrK�set_default_query�
_extra_kwargs�int | NotGivenrtrurv�Mapping[str, Any]rc�Dt�j||||||	|
|||
|||p|j|p|j|p|jd�|�d�
S�z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        )rBrDrE)
rCrFr[rGr>rHrLrIrJrtrKrurv�r'�copyrorprq�r)rCrFr[rGrBrDrEr>rHrLrIrJrtrKrurvr*r,r-r|��(���zAzureOpenAI.copycCsH|jdur|jS|j}|dur"|�}|rt|t�s td|����|SdS�NzOExpected `azure_ad_token_provider` argument to return a string but it returned )rprq�
isinstancer=rl�r)�provider�tokenr,r,r-�_get_azure_ad_tokens
�zAzureOpenAI._get_azure_ad_tokenr5rcCs�t|j�r
i|j�ni}t|�}||_|��}|dur+|�d�dur)d|��|d<|S|jtur>|�d�dur<|j|d<|Std���N�
Authorization�Bearer �api-keyzUnable to handle auth�r�headersrr�r<rCrnrl�r)r5r�rDr,r,r-�_prepare_options"s
�
�zAzureOpenAI._prepare_optionsr8�extra_queryr�tuple[Query, dict[str, str]]cCsVi}i|�|j|d��}|jdkrd|ji}||fS|��}|r'dd|��i}||fS�N)ra�
deploymentz<missing API key>r�r�r��rorCr��r)r8r��auth_headers�queryr�r,r,r-�_configure_realtime6s��

�zAzureOpenAI._configure_realtime)rNr=rArOrBrOrCrOrDrOrErPrFrOrGrQrHrRrIr6rJrSrKrTrLrUrMrVr%r&)rArOrBrOrCrOrDrOrErPrFrOrGrQrHrRrIr6rJrSrKrTrLrUrMrVr%r&)r>r=rBrOrCrOrDrOrErPrFrOrGrQrHrRrIr6rJrSrKrTrLrUrMrVr%r&)"rBrOrNrOrArOrCrOrDrOrErPrFrOr[rOrGrQr>rOrHrRrIr6rJrSrKrTrLrUrMrVr%r&)"rCrOrFrOr[rOrGrQrBrOrDrOrErPr>rQrHrRrLrUrIrwrJrSrtrSrKrTrurTrvrxr%r�r%rO�r5rr%r�r8r=r�rr%r��r.r/r0r
rrr(rr|�with_optionsr�r�r�r1r,r,r*r-r@Cs�����f�,
r@cs&eZdZeddddddddeeddddd�d<dd ��Zeddddddddeeddddd�d=d!d ��Zedddddddeeddddd"�
d>d$d ��Zddddddddddeeddddd%�d?�fd&d �Zeddddddddededdddid'�d@�fd.d/��ZeZ	dAd0d1�Z
edBd4d5��ZdCd:d;�Z�Z
S)D�AsyncAzureOpenAINF)rArBrCrDrErFr[rGrHrIrJrKrLrMrNr=rArOrBrCrDrE� AsyncAzureADTokenProvider | NonerFr[rGrQrHrRrIr6rJrSrKrTrL�httpx.AsyncClient | NonerMrVr%r&cCrWrXr,)r)rNrArBrCrDrErFr[rGrHrIrJrKrLrMr,r,r-r(GszAsyncAzureOpenAI.__init__cCrWrXr,)r)rArBrCrDrErFr[rGrHrIrJrKrLrMr,r,r-r(\rY)
rBrCrDrErFr[rGrHrIrJrKrLrMr>cCrWrXr,)r)r>rBrCrDrErFr[rGrHrIrJrKrLrMr,r,r-r(prY)rNrArBrCrDrErFr[r>rGrHrIrJrKrLrMc
s>|dur
tj�d�}|durtj�d�}|dur$|dur$|dur$td��|dur.tj�d�}|dur6td��|dur?d|i}ni|�d|i�}|	duru|durUtj�d�}|dur]td	��|durl|�d
��d|��}	n|�d
��d�}	n|dur}td
��|dur�t}t�j||||	|||
|||
|d�||_	||_
||_dS)a�Construct a new asynchronous azure openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `AZURE_OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
        - `api_version` from `OPENAI_API_VERSION`
        - `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

        Args:
            azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

            azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

            azure_deployment: A model deployment, if given sets the base client URL to include `/deployments/{azure_deployment}`.
                Note: this means you won't be able to use non-deployment endpoints. Not supported with Assistants APIs.
        Nr\r]r^r_r`rarbrcrdrerfrgrhri)r)rNrArBrCrDrErFr[r>rGrHrIrJrKrLrMr*r,r-r(�rrrsrwrtrurvrxrcryrzr{r}r*r,r-r|�r~zAsyncAzureOpenAI.copyc�sh�|jdur	|jS|j}|dur2|�}t�|�r|IdH}|r'ttt|�t�s.td|����t|�SdSr)	rprq�inspect�isawaitabler�r	rr=rlr�r,r,r-r�s�


�z$AsyncAzureOpenAI._get_azure_ad_tokenr5rc�s��t|j�ri|j�ni}t|�}||_|��IdH}|dur/|�d�dur-d|��|d<|S|jturB|�d�dur@|j|d<|Std��r�r�r�r,r,r-r�*s�
�
�z!AsyncAzureOpenAI._prepare_optionsr8r�rr�c�s^�i}i|�|j|d��}|jdkrd|ji}||fS|��IdH}|r+dd|��i}||fSr�r�r�r,r,r-r�>s���

�z$AsyncAzureOpenAI._configure_realtime) rNr=rArOrBrOrCrOrDrOrEr�rFrOr[rOrGrQrHrRrIr6rJrSrKrTrLr�rMrVr%r&)rArOrBrOrCrOrDrOrEr�rFrOr[rOrGrQrHrRrIr6rJrSrKrTrLr�rMrVr%r&)r>r=rBrOrCrOrDrOrEr�rFrOr[rOrGrQrHrRrIr6rJrSrKrTrLr�rMrVr%r&)"rNrOrArOrBrOrCrOrDrOrEr�rFrOr[rOr>rOrGrQrHrRrIr6rJrSrKrTrLr�rMrVr%r&)"rCrOrFrOr[rOrGrQrBrOrDrOrEr�r>rQrHrRrLr�rIrwrJrSrtrSrKrTrurTrvrxr%rr�r�r�r�r,r,r*r-r�Fs�����f�,
r�)8�
__future__rrjr��typingrrrrrrr	r
�typing_extensionsrr�httpx�_typesrrrrr�_utilsrr�_clientrr�_compatr�_modelsr�
_streamingrr�_exceptionsr�_base_clientrr�setr:r=�AzureADTokenProvider�AsyncAzureADTokenProvider�Client�AsyncClientrr �joinrnr$r2r@r�r,r,r,r-�<module>s8(�
 $