
    ^h
                     d    S r SSKJrJr  SSKJr  SSKJr  SSK	J
r
  S\S	\4S
 jr " S S\
5      rg)z
This file contains the calling Azure OpenAI's `/openai/realtime` endpoint.

This requires websockets, and is currently only supported on LiteLLM Proxy.
    )AnyOptional   )Logging)RealTimeStreaming   )AzureChatCompletion	client_ws
backend_wsc                    #    SS K n  UR                  5       I S h  vN nU R                  U5      I S h  vN   M3   N N! UR                  R                   a     g f = f7f)Nr   )
websocketsrecv	send_text
exceptionsConnectionClosed)r
   r   r   messages       ]/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/azure/realtime/handler.pyforward_messagesr      s[     &OO--G%%g... -.  11 s9   A A  <A  >A  A   AA AA c                       \ rS rSrS\S\S\S\4S jr       SS\S\S\\   S	\\   S\\   S
\\   S\\   S\\   S\\	   4S jjr
Srg)AzureOpenAIRealtime   api_basemodelapi_versionreturnc                 :    UR                  SS5      nU SU SU 3$ )z
Example output:
"wss://my-endpoint-sweden-berri992.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview";

zhttps://zwss://z/openai/realtime?api-version=z&deployment=)replace)selfr   r   r   s       r   _construct_url"AzureOpenAIRealtime._construct_url   s0     ##J9j5k],ugV	
    N	websocketapi_keyazure_ad_tokenclientlogging_objtimeoutc
                   #    SS K n
Uc  [        S5      eUc  [        S5      eU R                  X1U5      n U
R                  USU0S9 IS h  vN n[	        X,U5      nUR                  5       I S h  vN   S S S 5      IS h  vN   g  N9 N N	! , IS h  vN  (       d  f       g = f! U
R                  R                   a6  nUR                  UR                  [        U5      S9I S h  vN     S nAg S nAf[         a     g f = f7f)Nr   z+api_base is required for Azure OpenAI callsz.api_version is required for Azure OpenAI callszapi-key)extra_headers)codereason)r   
ValueErrorr   connectr   bidirectional_forwardr   InvalidStatusCodeclosestatus_codestr	Exception)r   r   r"   r   r#   r   r$   r%   r&   r'   r   urlr   realtime_streaminges                  r   async_realtime"AzureOpenAIRealtime.async_realtime'   s     	JKKMNN!!(;?	!))w *  
 %6;&" )>>@@@   A    $$66 	E//q}}SV/DDD 		s   3DB& BB&  B0B1B5B&  B
B& DB& B
B& B#BB#B& "D#B& &D &C1&C)'C1,D1D>D DD )NNNNNNN)__name__
__module____qualname____firstlineno__r2   r   r   r   LiteLLMLoggingfloatr7   __static_attributes__r9   r!   r   r   r      s    	
s 	
3 	
S 	
S 	
 #'!%%)(, $04#'$$ $ 3-	$
 #$ c]$ !$ $ n-$ %$ $r!   r   N)__doc__typingr   r   "litellm_core_utils.litellm_loggingr   r>   %litellm_core_utils.realtime_streamingr   azurer	   r   r   r9   r!   r   <module>rF      s8    ! L G '
c s 0- 0r!   