
    jKjT                         	 d dl Z 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 d d	lmZ d d
lmZ  G d de j(                        Z G d de j*                        Zy# e$ r	  ed      w xY w)    NzHPlease install the Open AI SDK to use this feature: 'pip install openai')WrappedBetaWrappedChatWrappedEmbeddingsWrappedResponses)r   )r   )r   )r   )Optional)Client)setupc                   <     e Zd ZU dZeed<   dde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        |   di | |xs
 t               | _        t	        | dd      | _        t	        | dd      | _        t	        | dd      | _        t	        | dd      | _        | j
                  t        | | j
                        | _
        | j                  t        | | j                        | _        | j                  t        | | j                        | _        | j                  t        | | j                        | _        yy)a0  
        Args:
            posthog_client: If provided, events will be captured via this client
                instead of the global ``posthog`` client.
            **kwargs: Arguments passed to ``openai.AzureOpenAI`` such as
                ``api_key``, ``azure_endpoint``, or ``api_version``.
        chatN
embeddingsbeta	responses )super__init__r	   r   getattr_original_chat_original_embeddings_original_beta_original_responsesr   r   r   r   r   r   r   r   selfr   kwargs	__class__s      s/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/posthog/ai/openai/openai_providers.pyr   zAzureOpenAI.__init__   s     	"6"(3EG &dFD9$+D,$E!%dFD9#*4d#C  *#D$*=*=>DI$$0/d6O6OPDO*#D$*=*=>DI##/-dD4L4LMDN 0    N	__name__
__module____qualname____doc__PostHogClient__annotations__r   r   __classcell__r   s   @r   r   r      s)     Nx'> N Nr    r   c                   <     e Zd ZU dZeed<   dde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        |   di | |xs
 t               | _        t	        | dd      | _        t	        | dd      | _        t	        | dd      | _        t	        | dd      | _        | j
                  t        | | j
                        | _
        | j                  t        | | j                        | _        | j                  t        | | j                        | _        | j                  t        | | j                        | _        yy)a5  
        Args:
            posthog_client: If provided, events will be captured via this client
                instead of the global ``posthog`` client.
            **kwargs: Arguments passed to ``openai.AsyncAzureOpenAI`` such as
                ``api_key``, ``azure_endpoint``, or ``api_version``.
        r   Nr   r   r   r   )r   r   r	   r   r   r   r   r   r   AsyncWrappedChatr   AsyncWrappedEmbeddingsr   AsyncWrappedBetar   AsyncWrappedResponsesr   r   s      r   r   zAsyncAzureOpenAI.__init__E   s     	"6"(3EG &dFD9$+D,$E!%dFD9#*4d#C  *(t/B/BCDI$$04T4;T;TUDO*(t/B/BCDI ##/249Q9QRDN 0r    r!   r"   r*   s   @r   r,   r,   >   s)     Sx'> S Sr    r,   )openaiImportErrorModuleNotFoundErrorposthog.ai.openai.openair   r   r   r   posthog.ai.openai.openai_asyncr0   r.   r/   r1   typingr   posthog.clientr   r'   posthogr	   r   r,   r   r    r   <module>r:      sz     K J V T  2 #N&$$ #NL$Sv.. $Sw  
R s   A' 'A5