o
    ưi݁                     @   s   d dl mZmZmZmZmZmZmZ d dlZd dl	m
Z
mZ d dlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ G d	d
 d
eZdS )    )Any	CoroutineDictIterableLiteralOptionalUnionN)AsyncAzureOpenAIAzureOpenAI)overload   )	AssistantAssistantEventHandlerAssistantStreamManagerAssistantToolParamAsyncAssistantEventHandlerAsyncAssistantStreamManagerAsyncCursorPageOpenAICreateThreadParamsMessageOpenAIMessageRunSyncCursorPageThread   )BaseAzureLLMc                &       sd  e Zd ZdV fddZ		dWdee dee dee dee d	eeej	f d
ee
 dee dee defddZ		dWdee dee dee dee d	eeej	f d
ee
 dee dee defddZ	dXdee dee dee dee d	eeej	f d
ee
 dee dee dee fddZedee dee dee dee d	eeej	f d
ee
 dee ded deddee f fddZedee dee dee dee d	eeej	f d
ee
 dee deed  dee fddZ			dYdee dee dee dee d	eeej	f d
ee
 dee fddZ		dWdededee dee dee dee d	eeej	f d
ee
 dee dee defddZe	dXdededee dee dee dee d	eeej	f d
ee
 dee ded dee deddef fdd Ze	dXdededee dee dee dee d	eeej	f d
ee
 dee deed  dee defd!d Z			dYdededee dee dee dee d	eeej	f d
ee
 dee dee fd"d Z		dWdedee dee dee dee d	eeej	f d
ee
 dee dee dee fd#d$Ze	dXdedee dee dee dee d	eeej	f d
ee
 dee d%ed dee deddee f fd&d'Ze	dXdedee dee dee dee d	eeej	f d
ee
 dee d%eed  dee dee fd(d'Z			dYdedee dee dee dee d	eeej	f d
ee
 dee fd)d'Z	dXd*ee dee dee dee dee d	eeej	f d
ee
 dee d+eee  dee de fd,d-Z!e	dXd*ee dee dee dee dee d	eeej	f d
ee
 d+eee  dee d.ed dee dedde f fd/d0Z"e	dXd*ee dee dee dee dee d	eeej	f d
ee
 d+eee  dee d.eed  dee de fd1d0Z"			dYd*ee dee dee dee dee d	eeej	f d
ee
 d+eee  dee fd2d0Z"	dXdedee dee dee dee d	eeej	f d
ee
 dee dee de fd3d4Z#e	dXdedee dee dee dee d	eeej	f d
ee
 dee d5ed dee dedde f fd6d7Z$e	dXdedee dee dee dee d	eeej	f d
ee
 dee d5eed  dee de fd8d7Z$			dYdedee dee dee dee d	eeej	f d
ee
 dee fd9d7Z$	dXded:ed;ee d<ee d*ee% d=ee d>ee d?eee&  dee dee dee dee d	eeej	f d
ee
 dee dee de'f"d@dAZ(	dXdeded:ed;ee d<ee d*ee% d=ee d?eee&  dBee) dee de*e+ fdCdDZ,	dXdeded:ed;ee d<ee d*ee% d=ee d?eee&  dBee) dee de-e) fdEdFZ.eded:ed;ee d<ee d*ee% d=ee d>ee d?eee&  dee dee dee dee d	eeej	f d
ee
 dee dGed dedde'f f"dHdIZ/eded:ed;ee d<ee d*ee% d=ee d>ee d?eee&  dee dee dee dee d	eeej	f d
ee
 dee dGeed  de'f"dJdIZ/				dZded:ed;ee d<ee d*ee% d=ee d>ee d?eee&  dee dee dee dee d	eeej	f d
ee
 dBee) dee f dKdIZ/	dXdee dee dee dee d	eeej	f d
ee
 dee dLedee defdMdNZ0			dYdee dee dee dee d	eeej	f d
ee
 dLedee fdOdPZ1	dXdee dee dee dee d	eeej	f d
ee
 dee d:edee fdQdRZ2			dYdee dee dee dee d	eeej	f d
ee
 d:edSee dee fdTdUZ3  Z4S )[AzureAssistantsAPIreturnNc                    s   t    d S N)super__init__)self	__class__ T/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/azure/assistants.pyr      s   zAzureAssistantsAPI.__init__api_keyapi_baseapi_versionazure_ad_tokentimeoutmax_retriesclientlitellm_paramsc	                 C   <   |d u r| j |p	i ||d|dd}	tdi |	}
|
S |}
|
S )N Fr,   r%   r&   Z
model_namer'   is_asyncr#   )initialize_azure_sdk_clientr
   r    r%   r&   r'   r(   r)   r*   r+   r,   Zazure_client_paramsazure_openai_clientr#   r#   r$   get_azure_client   s   z#AzureAssistantsAPI.get_azure_clientc	                 C   r-   )Nr.   Tr/   r#   )r1   r	   r2   r#   r#   r$   async_get_azure_client6   s   	z)AzureAssistantsAPI.async_get_azure_clientc	              
      s2   | j ||||||||d}	|	jj I d H }
|
S )Nr%   r&   r'   r(   r)   r*   r+   r,   )r5   beta
assistantslist)r    r%   r&   r'   r(   r)   r*   r+   r,   r3   responser#   r#   r$   async_get_assistantsT   s   z'AzureAssistantsAPI.async_get_assistantsaget_assistantsTc	           	      C      d S r   r#   	r    r%   r&   r'   r(   r)   r*   r+   r<   r#   r#   r$   get_assistantsp      z!AzureAssistantsAPI.get_assistantsFc	           	      C   r=   r   r#   r>   r#   r#   r$   r?   ~   r@   c
              
   C   sT   |d ur|du r| j ||||||||	dS | j||||||||	d}
|
jj }|S )NTr6   )r%   r&   r(   r)   r*   r+   r'   r,   )r;   r4   r7   r8   r9   )r    r%   r&   r'   r(   r)   r*   r+   r<   r,   r3   r:   r#   r#   r$   r?      s.   
	thread_idmessage_datac              
      s   | j |||||||	|
d}|jjjj|fi |I d H }d }t|dd d u r5d|_tdi | }|S tdi | }|S )Nr6   status	completedr#   )	r5   r7   threadsmessagescreategetattrrC   r   dict)r    rA   rB   r%   r&   r'   r(   r)   r*   r+   r,   openai_clientthread_messageresponse_objr#   r#   r$   a_add_message   s.   
z AzureAssistantsAPI.a_add_messagerM   c                 C   r=   r   r#   r    rA   rB   r%   r&   r'   r(   r)   r*   r+   rM   r,   r#   r#   r$   add_message      zAzureAssistantsAPI.add_messagec                 C   r=   r   r#   rN   r#   r#   r$   rO      rP   c                 C   s   |
d ur|
du r| j |||||||||	|d
S | j|||||||	|d}|jjjj|fi |}d }t|dd d u rHd|_tdi |	 }|S tdi |	 }|S )NT)
rA   rB   r%   r&   r'   r(   r)   r*   r+   r,   r6   rC   rD   r#   )
rM   r4   r7   rE   rF   rG   rH   rC   r   rI   )r    rA   rB   r%   r&   r'   r(   r)   r*   r+   rM   r,   rJ   rK   rL   r#   r#   r$   rO      sF   
c
              
      s8   | j ||||||||	d}
|
jjjj|dI d H }|S )Nr6   rA   )r5   r7   rE   rF   r9   r    rA   r%   r&   r'   r(   r)   r*   r+   r,   rJ   r:   r#   r#   r$   async_get_messages2  s   z%AzureAssistantsAPI.async_get_messagesaget_messagesc                 C   r=   r   r#   r    rA   r%   r&   r'   r(   r)   r*   r+   rT   r,   r#   r#   r$   get_messagesO     zAzureAssistantsAPI.get_messagesc                 C   r=   r   r#   rU   r#   r#   r$   rV   _  rW   c                 C   s\   |	d ur|	du r| j |||||||||
d	S | j||||||||
d}|jjjj|d}|S )NT	rA   r%   r&   r'   r(   r)   r*   r+   r,   r6   rQ   )rS   r4   r7   rE   rF   r9   )r    rA   r%   r&   r'   r(   r)   r*   r+   rT   r,   rJ   r:   r#   r#   r$   rV   q  s0   metadatarF   c              
      sl   | j ||||||||
d}i }|	d ur|	|d< |d ur ||d< |jjjdi |I d H }tdi | S )Nr6   rF   rY   r#   )r5   r7   rE   rG   r   rI   )r    rY   r%   r&   r'   r(   r)   r*   r+   rF   r,   rJ   datamessage_threadr#   r#   r$   async_create_thread  s$   z&AzureAssistantsAPI.async_create_threadacreate_threadc                 C   r=   r   r#   r    rY   r%   r&   r'   r(   r)   r*   rF   r+   r]   r,   r#   r#   r$   create_thread  rP   z AzureAssistantsAPI.create_threadc                 C   r=   r   r#   r^   r#   r#   r$   r_     rP   c                 C   s   |
dur|
du r| j ||||||||	||d
S | j|||||||	|d}i }|dur.||d< |dur6||d< |jjjdi |}tdi | S )a-  
        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])
        ```
        NT)
rY   r%   r&   r'   r(   r)   r*   r+   rF   r,   r6   rF   rY   r#   )r\   r4   r7   rE   rG   r   rI   )r    rY   r%   r&   r'   r(   r)   r*   rF   r+   r]   r,   r3   rZ   r[   r#   r#   r$   r_     s<   c
              
      sD   | j ||||||||	d}
|
jjj|dI d H }tdi | S )Nr6   rQ   r#   )r5   r7   rE   retriever   rI   rR   r#   r#   r$   async_get_thread  s   z#AzureAssistantsAPI.async_get_threadaget_threadc                 C   r=   r   r#   r    rA   r%   r&   r'   r(   r)   r*   r+   rb   r,   r#   r#   r$   
get_thread:  rW   zAzureAssistantsAPI.get_threadc                 C   r=   r   r#   rc   r#   r#   r$   rd   J  rW   c                 C   sh   |	d ur|	du r| j |||||||||
d	S | j||||||||
d}|jjj|d}tdi | S )NTrX   r6   rQ   r#   )ra   r4   r7   rE   r`   r   rI   )r    rA   r%   r&   r'   r(   r)   r*   r+   rb   r,   rJ   r:   r#   r#   r$   rd   \  s0   assistant_idadditional_instructionsinstructionsmodelstreamtoolsc              
      sD   | j |	|
||||||d}|jjjj|||||||dI d H }|S )N)r%   r&   r)   r*   r'   r(   r+   r,   rA   re   rf   rg   rY   rh   rj   )r5   r7   rE   runscreate_and_poll)r    rA   re   rf   rg   rY   rh   ri   rj   r%   r&   r'   r(   r)   r*   r+   r,   rJ   r:   r#   r#   r$   arun_thread  s*   

zAzureAssistantsAPI.arun_threadevent_handlerc                 C   :   |||||||d}|	d ur|	|d< |j jjjdi |S Nrk   ro   r#   r7   rE   rl   ri   r    r+   rA   re   rf   rg   rY   rh   rj   ro   r,   rZ   r#   r#   r$   async_run_thread_stream     	z*AzureAssistantsAPI.async_run_thread_streamc                 C   rp   rq   rr   rs   r#   r#   r$   run_thread_stream  ru   z$AzureAssistantsAPI.run_thread_streamrn   c                 C   r=   r   r#   r    rA   re   rf   rg   rY   rh   ri   rj   r%   r&   r'   r(   r)   r*   r+   rn   r#   r#   r$   
run_thread     zAzureAssistantsAPI.run_threadc                 C   r=   r   r#   rw   r#   r#   r$   rx     ry   c                 C   s.  |d urb|du rb|d ur,|du r,| j |	|
||||||d}| j||||||||||d
S | jdi d|d|d|d|d|d	|d
|d|d|	d|
d|d|d|d|d|d|S | j|	|
||||||d}|d ur|du r| j||||||||||d
S |jjjj|||||||d}|S )NTr6   )
r+   rA   re   rf   rg   rY   rh   rj   ro   r,   rA   re   rf   rg   rY   rh   ri   rj   r%   r&   r'   r(   r)   r*   r+   r,   rk   r#   )	r5   rt   rn   r4   rv   r7   rE   rl   rm   )r    rA   re   rf   rg   rY   rh   ri   rj   r%   r&   r'   r(   r)   r*   r+   rn   ro   r,   Zazure_clientrJ   r:   r#   r#   r$   rx     s   

	


create_assistant_datac
              
      s:   | j ||||||||	d}
|
jjjdi |I d H }|S )Nr6   r#   )r5   r7   r8   rG   )r    r%   r&   r'   r(   r)   r*   r+   rz   r,   r3   r:   r#   r#   r$   async_create_assistants|  s   z*AzureAssistantsAPI.async_create_assistantsc                 C   s^   |	d ur|	du r| j |||||||||
d	S | j||||||||
d}|jjjdi |}|S )NT)	r%   r&   r'   r(   r)   r*   r+   rz   r,   r6   r#   )r{   r4   r7   r8   rG   )r    r%   r&   r'   r(   r)   r*   rz   r+   r{   r,   r3   r:   r#   r#   r$   create_assistants  s0   z$AzureAssistantsAPI.create_assistantsc
              
      s6   | j ||||||||	d}
|
jjj|dI d H }|S )Nr6   re   )r5   r7   r8   delete)r    r%   r&   r'   r(   r)   r*   r+   re   r,   r3   r:   r#   r#   r$   async_delete_assistant  s   z)AzureAssistantsAPI.async_delete_assistantasync_delete_assistantsc                 C   sZ   |d ur|du r| j |||||||	||
d	S | j|||||||	|
d}|jjj|d}|S )NT)	r%   r&   r'   r(   r)   r*   r+   re   r,   r6   r}   )r   r4   r7   r8   r~   )r    r%   r&   r'   r(   r)   r*   re   r   r+   r,   r3   r:   r#   r#   r$   delete_assistant  s0   z#AzureAssistantsAPI.delete_assistant)r   N)NNr   )NNN)NNNN)5__name__
__module____qualname__r   r   strr   floathttpxTimeoutintr
   rI   r4   r	   r5   r   r   r;   r   r   r   r?   r   r   rM   rO   boolrS   rV   r   r   r   r\   r_   ra   rd   r   r   r   rn   r   r   r   rt   r   rv   rx   r{   r|   r   r   __classcell__r#   r#   r!   r$   r      s&   	

"	

'	

	

	


2	

&	
	

	
;	

	
	


5	


$
	

	


	
D	

	
	


>
	

5
	

%
	


	

	

'
	

o	

%
2	

%	r   )typingr   r   r   r   r   r   r   r   Zopenair	   r
   Ztyping_extensionsr   Ztypes.llms.openair   r   r   r   r   r   r   r   r   r   r   r   Zcommon_utilsr   r   r#   r#   r#   r$   <module>   s   $ 8