
    Zi                         	 d dl Z n# e$ r  ed          w xY wd dlmZmZmZmZ d dlmZ	 d dlmZ
 d dlmZ d dlmZ d dlmZ  G d	 d
e j                  Z G d de j                  ZdS )    NzHPlease install the Open AI SDK to use this feature: 'pip install openai')WrappedBetaWrappedChatWrappedEmbeddingsWrappedResponses)r   )r   )r   )r   )Clientc                   4     e Zd ZU dZeed<   def fdZ xZS )AzureOpenAIze
    A wrapper around the Azure OpenAI SDK that automatically sends LLM usage events to PostHog.
    
_ph_clientposthog_clientc                     t                      j        di | || _        t          | dd          | _        t          | dd          | _        t          | dd          | _        t          | dd          | _        | j        t          | | j                  | _	        | j        t          | | j                  | _        | j        t          | | j                  | _        | j        t          | | j                  | _        dS dS a;  
        Args:
            api_key: Azure OpenAI API key.
            posthog_client: If provided, events will be captured via this client instead
                            of the global posthog.
            **openai_config: Any additional keyword args to set on Azure OpenAI (e.g. azure_endpoint="xxx").
        chatN
embeddingsbeta	responses )super__init__r
   getattr_original_chat_original_embeddings_original_beta_original_responsesr   r   r   r   r   r   r   r   selfr   kwargs	__class__s      ]/root/projects/butler/venv/lib/python3.11/site-packages/posthog/ai/openai/openai_providers.pyr   zAzureOpenAI.__init__   s     	""6"""( &dFD99$+D,$E$E!%dFD99#*4d#C#C  *#D$*=>>DI$0/d6OPPDO*#D$*=>>DI#/-dD4LMMDNNN 0/    __name__
__module____qualname____doc__PostHogClient__annotations__r   __classcell__r   s   @r   r	   r	      si           N} N N N N N N N N N Nr   r	   c                   4     e Zd ZU dZeed<   def fdZ xZS )AsyncAzureOpenAIzl
    An async wrapper around the Azure OpenAI SDK that automatically sends LLM usage events to PostHog.
    r
   r   c                     t                      j        di | || _        t          | dd          | _        t          | dd          | _        t          | dd          | _        t          | dd          | _        | j        t          | | j                  | _	        | j        t          | | j                  | _        | j        t          | | j                  | _        | j        t          | | j                  | _        dS dS r   )r   r   r
   r   r   r   r   r   AsyncWrappedChatr   AsyncWrappedEmbeddingsr   AsyncWrappedBetar   AsyncWrappedResponsesr   r   s      r   r   zAsyncAzureOpenAI.__init__B   s     	""6"""( &dFD99$+D,$E$E!%dFD99#*4d#C#C  *(t/BCCDI$04T4;TUUDO*(t/BCCDI #/249QRRDNNN 0/r   r    r(   s   @r   r*   r*   ;   si           S} S S S S S S S S S Sr   r*   )openaiImportErrorModuleNotFoundErrorposthog.ai.openai.openair   r   r   r   posthog.ai.openai.openai_asyncr.   r,   r-   r/   posthog.clientr   r%   r	   r*   r   r   r   <module>r6      sX  MMMM   

R  
            K J J J J J J J J J J J V V V V V V T T T T T T 2 2 2 2 2 2#N #N #N #N #N&$ #N #N #NL$S $S $S $S $Sv. $S $S $S $S $Ss    