
    ^hw                         S SK JrJrJrJrJr  S SKrS SKJrJ	r	  S SK
Jr  SSKJrJrJrJrJrJrJrJrJrJrJrJr  SSKJr   " S	 S
\5      rg)    )	CoroutineIterableLiteralOptionalUnionN)AsyncAzureOpenAIAzureOpenAI)overload   )	AssistantAssistantEventHandlerAssistantStreamManagerAssistantToolParamAsyncAssistantEventHandlerAsyncAssistantStreamManagerAsyncCursorPageOpenAICreateThreadParamsMessageOpenAIMessageRunSyncCursorPageThread   )BaseLLMc            &         ^  \ rS rSrSBU 4S jjr SCS\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\4S jjr SCS\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\4S jjrS\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\\   4S jr\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\S   S\SS\\   4   4S j5       r\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\\S      S\\   4S j5       r  SDS\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   4S jjr SCS\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\4S jjr\S\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\S   S\SS\4   4S j5       r\S\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\\S      S\4S j5       r  SDS\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   4S jjr SCS\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\\   4S jjr\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\S   S\SS\\   4   4S j5       r\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\\S      S\\   4S j5       r  SDS\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   4S  jjrS!\\   S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S"\\\       S\!4S# jr"\S!\\   S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S"\\\       S\\   S$\S   S\SS\!4   4S% j5       r#\S!\\   S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S"\\\       S\\   S$\\S      S\!4S& j5       r#  SDS!\\   S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S"\\\       4S' jjr#S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\!4S( jr$\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S)\S   S\SS\!4   4S* j5       r%\S\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S)\\S      S\!4S+ j5       r%  SDS\S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   4S, jjr%S\S-\S.\\   S/\\   S!\\&   S0\\   S1\\   S2\\\'      S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S\(4 S3 jr)S\S\S-\S.\\   S/\\   S!\\&   S0\\   S2\\\'      S4\\*   S\+\,   4S5 jr-S\S\S-\S.\\   S/\\   S!\\&   S0\\   S2\\\'      S4\\*   S\.\*   4S6 jr/\S\S-\S.\\   S/\\   S!\\&   S0\\   S1\\   S2\\\'      S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S7\S   S\SS\(4   4"S8 j5       r0\S\S-\S.\\   S/\\   S!\\&   S0\\   S1\\   S2\\\'      S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S7\\S      S\(4"S9 j5       r0   SES\S-\S.\\   S/\\   S!\\&   S0\\   S1\\   S2\\\'      S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S4\\*   4S: jjr0S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S;\S\4S< jr1  SDS\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S;\4S= jjr2S\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S\\   S-\4S> jr3  SDS\\   S\\   S\\   S\\   S	\\\	R                  4   S
\\   S-\S?\\   4S@ jjr4SAr5U =r6$ )FAzureAssistantsAPI   returnNc                 "   > [         TU ]  5         g N)super__init__)self	__class__s    W/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/azure/assistants.pyr!   AzureAssistantsAPI.__init__   s        api_keyapi_baseapi_versionazure_ad_tokentimeoutmax_retriesclientc                     [        5       nUcN  0 n	UR                  5        H+  u  pU
S:X  d  U
S:X  a  M  U
S:X  a	  Ub  XS'   M"  Uc  M'  XU
'   M-     [        S0 U	D6nU$ UnU$ Nr"   r-   r(   azure_endpoint )localsitemsr	   r"   r'   r(   r)   r*   r+   r,   r-   received_argsdatakvazure_openai_clients                r$   get_azure_client#AzureAssistantsAPI.get_azure_client   s     >D%++-;!x-*_-.)*]G . #."5"5 #" #)""r&   c                     [        5       nUcN  0 n	UR                  5        H+  u  pU
S:X  d  U
S:X  a  M  U
S:X  a	  Ub  XS'   M"  Uc  M'  XU
'   M-     [        S0 U	D6nU$ UnU$ r/   )r2   r3   r   r4   s                r$   async_get_azure_client)AzureAssistantsAPI.async_get_azure_client6   s     >D%++-;!x-*_-.)*]G . #3":T":
 #" #)""r&   c           
         #    U R                  UUUUUUUS9nUR                  R                  R                  5       I S h  vN n	U	$  N7f)Nr'   r(   r)   r*   r+   r,   r-   )r=   beta
assistantslist)
r"   r'   r(   r)   r*   r+   r,   r-   r9   responses
             r$   async_get_assistants'AzureAssistantsAPI.async_get_assistantsS   s\      #99#)# : 
 -11<<AACC Ds   =AA Aaget_assistantsTc	                     g r   r1   	r"   r'   r(   r)   r*   r+   r,   r-   rG   s	            r$   get_assistants!AzureAssistantsAPI.get_assistantsm        	r&   Fc	                     g r   r1   rI   s	            r$   rJ   rK   {   rL   r&   c	           
          Ub  USL a  U R                  UUUUUUUS9$ U R                  UUUUUUUS9n	U	R                  R                  R	                  5       n
U
$ )NTr@   )r'   r(   r*   r+   r,   r-   r)   )rE   r:   rA   rB   rC   )r"   r'   r(   r)   r*   r+   r,   r-   rG   r9   rD   s              r$   rJ   rK      s     &?d+B,,!'-' -   #33)## 4 
 '++66;;=r&   	thread_idmessage_datac
           
      D  #    U R                  UUUUUUU	S9n
U
R                  R                  R                  R                  " U40 UD6I S h  vN nS n[        USS 5      c"  SUl        [        S0 UR                  5       D6nU$ [        S0 UR                  5       D6nU$  NQ7f)Nr@   status	completedr1   )	r=   rA   threadsmessagescreategetattrrR   r   dict)r"   rO   rP   r'   r(   r)   r*   r+   r,   r-   openai_clientthread_messageresponse_objs                r$   a_add_message AzureAssistantsAPI.a_add_message   s      33#)# 4 
 /<.@.@.H.H.Q.Q.X.X/
%/
 )
 15>8T2:$/N!(A>+>+>+@AL  )A>+>+>+@AL)
s   A
B BAB r\   c                     g r   r1   r"   rO   rP   r'   r(   r)   r*   r+   r,   r-   r\   s              r$   add_messageAzureAssistantsAPI.add_message        	r&   c                     g r   r1   r_   s              r$   r`   ra      rb   r&   c                 f   U
b  U
SL a  U R                  UUUUUUUUU	S9	$ U R                  UUUUUUU	S9nUR                  R                  R                  R
                  " U40 UD6nS n[        USS 5      c"  SUl        [        S0 UR                  5       D6nU$ [        S0 UR                  5       D6nU$ )NT)	rO   rP   r'   r(   r)   r*   r+   r,   r-   r@   rR   rS   r1   )
r\   r:   rA   rT   rU   rV   rW   rR   r   rX   )r"   rO   rP   r'   r(   r)   r*   r+   r,   r-   r\   rY   rZ   r[   s                 r$   r`   ra      s     $$)>%%#)!'-' & 
 
 --#)# . 
 )6(:(:(B(B(K(K(R(R)
%)
 15>8T2:$/N!(A>+>+>+@AL  )A>+>+>+@ALr&   c	           
         #    U R                  UUUUUUUS9n	U	R                  R                  R                  R	                  US9I S h  vN n
U
$  N7f)Nr@   rO   )r=   rA   rT   rU   rC   r"   rO   r'   r(   r)   r*   r+   r,   r-   rY   rD   s              r$   async_get_messages%AzureAssistantsAPI.async_get_messages%  sf      33#)# 4 
 '++33<<AAIAVV Ws   AAA	Aaget_messagesc
                     g r   r1   
r"   rO   r'   r(   r)   r*   r+   r,   r-   rj   s
             r$   get_messagesAzureAssistantsAPI.get_messages@       	r&   c
                     g r   r1   rl   s
             r$   rm   rn   O  ro   r&   c
                     U	b  U	SL a  U R                  UUUUUUUUS9$ U R                  UUUUUUUS9n
U
R                  R                  R                  R                  US9nU$ )NTrO   r'   r(   r)   r*   r+   r,   r-   r@   rf   )rh   r:   rA   rT   rU   rC   )r"   rO   r'   r(   r)   r*   r+   r,   r-   rj   rY   rD   s               r$   rm   rn   `  s     $$)>**#!'-' + 	 	 --#)# . 
 !%%--66;;i;Pr&   metadatarU   c
           
         #    U R                  UUUUUUUS9n
0 nU	b  XS'   Ub  XS'   U
R                  R                  R                  " S0 UD6I S h  vN n[	        S0 UR                  5       D6$  N7f)Nr@   rU   rs   r1   )r=   rA   rT   rV   r   rX   )r"   rs   r'   r(   r)   r*   r+   r,   r-   rU   rY   r6   message_threads                r$   async_create_thread&AzureAssistantsAPI.async_create_thread  s      33#)# 4 
 '',1199@@H4HH.++-.. Is   AA1A/A1acreate_threadc                     g r   r1   r"   rs   r'   r(   r)   r*   r+   r,   rU   r-   rx   s              r$   create_thread AzureAssistantsAPI.create_thread  rb   r&   c                     g r   r1   rz   s              r$   r{   r|     rb   r&   c                    U
b  U
SL a  U R                  UUUUUUUU	US9	$ U R                  UUUUUUU	S9n0 nUb  XS'   Ub  XS'   UR                  R                  R                  " S0 UD6n[        S0 UR                  5       D6$ )z
Here's an example:
```
from litellm.llms.openai.openai import OpenAIAssistantsAPI, MessageData

# create thread
message: MessageData = {"role": "user", "content": "Hey, how's it going?"}
openai_api.create_thread(messages=[message])
```
T)	rs   r'   r(   r)   r*   r+   r,   r-   rU   r@   rU   rs   r1   )rv   r:   rA   rT   rV   r   rX   )r"   rs   r'   r(   r)   r*   r+   r,   rU   r-   rx   r9   r6   ru   s                 r$   r{   r|     s    . %.D*@++!!'-'! , 
 
 #33#)# 4 
 '',1199@@H4H.++-..r&   c	           
         #    U R                  UUUUUUUS9n	U	R                  R                  R                  US9I S h  vN n
[	        S0 U
R                  5       D6$  N7f)Nr@   rf   r1   )r=   rA   rT   retriever   rX   rg   s              r$   async_get_thread#AzureAssistantsAPI.async_get_thread  so      33#)# 4 
 '++33<<y<QQ((( Rs   <AAAaget_threadc
                     g r   r1   
r"   rO   r'   r(   r)   r*   r+   r,   r-   r   s
             r$   
get_threadAzureAssistantsAPI.get_thread  ro   r&   c
                     g r   r1   r   s
             r$   r   r   ,  ro   r&   c
                     U	b  U	SL a  U R                  UUUUUUUUS9$ U R                  UUUUUUUS9n
U
R                  R                  R	                  US9n[        S0 UR                  5       D6$ )NTrr   r@   rf   r1   )r   r:   rA   rT   r   r   rX   )r"   rO   r'   r(   r)   r*   r+   r,   r-   r   rY   rD   s               r$   r   r   =  s     "{d':((#!'-' ) 	 	 --#)# . 
 !%%--666K(((r&   assistant_idadditional_instructionsinstructionsmodelstreamtoolsc           
         #    U R                  U	U
UUUUUS9nUR                  R                  R                  R	                  UUUUUUUS9I S h  vN nU$  N7f)N)r'   r(   r+   r,   r)   r*   r-   rO   r   r   r   rs   r   r   )r=   rA   rT   runscreate_and_poll)r"   rO   r   r   r   rs   r   r   r   r'   r(   r)   r*   r+   r,   r-   rY   rD   s                     r$   arun_threadAzureAssistantsAPI.arun_threadg  s     $ 33##) 4 
 '++3388HH%$;% I 
 
 
s   AAAAevent_handlerc
                     UUUUUUUS.n
U	b  XS'   UR                   R                  R                  R                  " S0 U
D6$ Nr   r   r1   rA   rT   r   r   r"   r-   rO   r   r   r   rs   r   r   r   r6   s              r$   async_run_thread_stream*AzureAssistantsAPI.async_run_thread_stream  T     #('>( 
 $$1!{{""''..666r&   c
                     UUUUUUUS.n
U	b  XS'   UR                   R                  R                  R                  " S0 U
D6$ r   r   r   s              r$   run_thread_stream$AzureAssistantsAPI.run_thread_stream  r   r&   r   c                     g r   r1   r"   rO   r   r   r   rs   r   r   r   r'   r(   r)   r*   r+   r,   r-   r   s                    r$   
run_threadAzureAssistantsAPI.run_thread      ( 	r&   c                     g r   r1   r   s                    r$   r   r     r   r&   c                    UbV  USL aQ  Ub1  USL a,  U R                  U	U
UUUUUS9nU R                  UUUUUUUUUS9	$ U R                  UUUUUUUUU	U
UUUUUS9$ U R                  U	U
UUUUUS9nUb  USL a  U R	                  UUUUUUUUUS9	$ UR
                  R                  R                  R                  UUUUUUUS9nU$ )NTr@   )	r-   rO   r   r   r   rs   r   r   r   )rO   r   r   r   rs   r   r   r   r'   r(   r)   r*   r+   r,   r-   r   )	r=   r   r   r:   r   rA   rT   r   r   )r"   rO   r   r   r   rs   r   r   r   r'   r(   r)   r*   r+   r,   r-   r   r   azure_clientrY   rD   s                        r$   r   r     sv   ( "{d':!fn#::#% +#1# +!  ;   33''!-,C!-%"/ 4 
 
 ###)(?)!!'-' $  " --#)# . 
 &D.))$#)(?)!+ * 
 
 !%%--22BB%$;% C 
 r&   create_assistant_datac	           
         #    U R                  UUUUUUUS9n	U	R                  R                  R                  " S0 UD6I S h  vN n
U
$  N7f)Nr@   r1   )r=   rA   rB   rV   )r"   r'   r(   r)   r*   r+   r,   r-   r   r9   rD   s              r$   async_create_assistants*AzureAssistantsAPI.async_create_assistantsP  si      #99#)# : 
 -11<<CC 
#
 
 
s   ?A
AA
c
                     U	b  U	SL a  U R                  UUUUUUUUS9$ U R                  UUUUUUUS9n
U
R                  R                  R                  " S0 UD6nU$ )NT)r'   r(   r)   r*   r+   r,   r-   r   r@   r1   )r   r:   rA   rB   rV   )r"   r'   r(   r)   r*   r+   r,   r   r-   r   r9   rD   s               r$   create_assistants$AzureAssistantsAPI.create_assistantsj  s     #.3Jd3R//!'-'&; 0 	 	 #33#)# 4 
 '++66==V@UVr&   c	           
         #    U R                  UUUUUUUS9n	U	R                  R                  R                  US9I S h  vN n
U
$  N7f)Nr@   r   )r=   rA   rB   delete)r"   r'   r(   r)   r*   r+   r,   r-   r   r9   rD   s              r$   async_delete_assistant)AzureAssistantsAPI.async_delete_assistant  sj      #99#)# : 
 -11<<CC% D 
 
 
s   <AAAasync_delete_assistantsc
                     Ub  USL a  U R                  UUUUUUU	US9$ U R                  UUUUUUU	S9n
U
R                  R                  R	                  US9nU$ )NT)r'   r(   r)   r*   r+   r,   r-   r   r@   r   )r   r:   rA   rB   r   )r"   r'   r(   r)   r*   r+   r,   r   r   r-   r9   rD   s               r$   delete_assistant#AzureAssistantsAPI.delete_assistant  s     #.3Jd3R..!'-') / 	 	 #33#)# 4 
 '++66==<=Xr&   r1   )r   Nr   )NN)NNN)7__name__
__module____qualname____firstlineno__r!   r   strr   floathttpxTimeoutintr	   r:   r   r=   r   r   rE   r
   r   r   rJ   r   rX   r   r\   r`   boolrh   rm   r   r   r   rv   r{   r   r   objectr   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classcell__)r#   s   @r$   r   r      sH    )-### 3-# c]	#
 !# uemm+,# c]# %# 
#D .2### 3-# c]	#
 !# uemm+,# c]# )*# 
#:# 3- c]	
 ! uemm+, c] )* 
	#4 # 3- c]	
 ! uemm+, c] )* ! 
4y99	:  # 3- c]	
 ! uemm+, c] % "'%.1 
		" . !#! 3-! c]	!
 !! uemm+,! c]!^ .2     #	 
 3-  c]  !  uemm+,  c]  )*  
 H   #	
 3- c] ! uemm+, c] )* t} 
4},	-    #	
 3- c] ! uemm+, c] %  / 
 6 (,-- - #	-
 3-- c]- !- uemm+,- c]-  ~-p .2 # 3-	
 c] ! uemm+, c] )* 
	'6  # 3-	
 c] ! uemm+, c] )* t} 
4}==	>   # 3-	
 c] ! uemm+, c] %  / 
	& 2 ## ## 3-	#
 c]# !# uemm+,# c]#N/4./ #/ 3-	/
 c]/ !/ uemm+,/ c]/ )*/ 8$CDE/ 
/D 4. # 3-	
 c] ! uemm+, c] 8$CDE )*   
4v%	&  4. # 3-	
 c] ! uemm+, c] 8$CDE % !0 
 6 5/4.5/ #5/ 3-	5/
 c]5/ !5/ uemm+,5/ c]5/ 8$CDE5/n)) #) 3-	)
 c]) !) uemm+,) c]) )*) 
)6  # 3-	
 c] ! uemm+, c] )* T] 
4v%	&   # 3-	
 c] ! uemm+, c] % gen- 
 2 #)#) ##) 3-	#)
 c]#) !#) uemm+,#) c]#)T&& & "*#	&
 sm& 6"& }& & !345& #& 3-& c]& !& uemm+,& c]&  )*!&" 
#&P7 7 7 	7
 "*#7 sm7 6"7 }7 !3457   567 
%%?	@7277 7 	7
 "*#7 sm7 6"7 }7 !3457   567 
  5	676   "*#	
 sm 6" }  !345 # 3- c] ! uemm+, c]  )*!" T]#$ 
4s?	#% *   "*#	
 sm 6" }  !345 # 3- c] ! uemm+, c]  %!" gen-#$ 
% N 9=%\\ \ "*#	\
 sm\ 6"\ }\ \ !345\ #\ 3-\ c]\ !\ uemm+,\ c]\$   56%\~# 3- c]	
 ! uemm+, c] )*  $ 
F  $"#" 3-" c]	"
 !" uemm+," c]"  $"J# 3- c]	
 ! uemm+, c] )* F 37"#" 3-" c]	"
 !" uemm+," c]" " "*$" "r&   r   )typingr   r   r   r   r   r   openair   r	   typing_extensionsr
   types.llms.openair   r   r   r   r   r   r   r   r   r   r   r   baser   r   r1   r&   r$   <module>r      s;    @ @  0 &    s sr&   