
    gj                    x   d dl mZ d dlmZmZmZ d dlmZ d dlZddl	m
Z
 ddlmZmZmZmZmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZmZ ddlm Z m!Z! ddl"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddgZ, G d de      Z- G d de      Z. G d d      Z/ G d d      Z0 G d d      Z1 G d d      Z2y)    )annotations)UnionIterableOptional)LiteralN   )_legacy_response)	NOT_GIVENBodyQueryHeadersNotGiven)maybe_transformasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncCursorPageAsyncCursorPage)AsyncPaginatormake_request_options)message_list_paramsmessage_create_paramsmessage_update_params)Message)MessageDeleted)MessageContentPartParamMessagesAsyncMessagesc            
      F   e Zd Zedd       Zedd       Zeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z	eeeeeddded
		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ
ddded	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r    c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return the
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )MessagesWithRawResponseselfs    [/var/www/openai/venv/lib/python3.12/site-packages/openai/resources/beta/threads/messages.pywith_raw_responsezMessages.with_raw_response!   s     't,,    c                    t        |       S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )MessagesWithStreamingResponser&   s    r(   with_streaming_responsez Messages.with_streaming_response+   s     -T22r*   Nattachmentsmetadataextra_headersextra_query
extra_bodytimeoutc          
         |st        d|      ddi|xs i }| j                  d| dt        ||||dt        j                        t        ||||	      t              S )	  
        Create a message.

        Args:
          content: The text contents of the message.

          role:
              The role of the entity that is creating the message. Allowed values include:

              - `user`: Indicates the message is sent by an actual user and should be used in
                most cases to represent user-generated messages.
              - `assistant`: Indicates the message is generated by the assistant. Use this
                value to insert messages from the assistant into the conversation.

          attachments: A list of files attached to the message, and the tools they should be added to.

          metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
              for storing additional information about the object in a structured format. Keys
              can be a maximum of 64 characters long and values can be a maximum of 512
              characters long.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        8Expected a non-empty value for `thread_id` but received OpenAI-Betaassistants=v2	/threads/	/messagescontentroler0   r1   r2   r3   r4   r5   bodyoptionscast_to)
ValueError_postr   r   MessageCreateParamsr   r   
r'   	thread_idr>   r?   r0   r1   r2   r3   r4   r5   s
             r(   createzMessages.create4   s    X WXaWdeff&QM<ORQzz	{), & #. (	 &99 )+Q[el   
 	
r*   r@   c          	         |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        ||||      t              S )	G  
        Retrieve a message.

        Args:
          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r8   9Expected a non-empty value for `message_id` but received r9   r:   r;   
/messages/r@   rC   rD   rE   _getr   r   r'   
message_idrI   r2   r3   r4   r5   s          r(   retrievezMessages.retrievet   s    0 WXaWdeffXYcXfghh&QM<ORQyy	{*ZL9(+Q[el   
 	
r*   r1   r2   r3   r4   r5   c          
         |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        d|it        j                        t        ||||      t        	      S )
  
        Modifies a message.

        Args:
          metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
              for storing additional information about the object in a structured format. Keys
              can be a maximum of 64 characters long and values can be a maximum of 512
              characters long.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r8   rM   r9   r:   r;   rN   r1   r@   rA   )rE   rF   r   r   MessageUpdateParamsr   r   r'   rS   rI   r1   r2   r3   r4   r5   s           r(   updatezMessages.update   s    < WXaWdeffXYcXfghh&QM<ORQzz	{*ZL9 *h!79N9b9bc(+Q[el   
 	
r*   	afterbeforelimitorderrun_idr2   r3   r4   r5   c       	            |st        d|      ddi|xs i }| j                  d| dt        t           t	        |||	|
t        |||||dt        j                              t              S 	ah  
        Returns a list of messages for a given thread.

        Args:
          after: A cursor for use in pagination. `after` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              ending with obj_foo, your subsequent call can include after=obj_foo in order to
              fetch the next page of the list.

          before: A cursor for use in pagination. `before` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              starting with obj_foo, your subsequent call can include before=obj_foo in order
              to fetch the previous page of the list.

          limit: A limit on the number of objects to be returned. Limit can range between 1 and
              100, and the default is 20.

          order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending
              order and `desc` for descending order.

          run_id: Filter messages by the run ID that generated them.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r8   r9   r:   r;   r<   )r\   r]   r^   r_   r`   )r2   r3   r4   r5   query)pagerC   model)rE   _get_api_listr   r   r   r   r   MessageListParamsr'   rI   r\   r]   r^   r_   r`   r2   r3   r4   r5   s              r(   listzMessages.list   s    \ WXaWdeff&QM<ORQ!!	{),((+'%%!&"(!&!&"( (99	  ' " 
 	
r*   c          	         |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        ||||      t              S )	F  
        Deletes a message.

        Args:
          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r8   rM   r9   r:   r;   rN   r@   rO   rE   _deleter   r   rR   s          r(   deletezMessages.delete  s    0 WXaWdeffXYcXfghh&QM<ORQ||	{*ZL9(+Q[el #  
 	
r*   )returnr%   )ro   r-   rI   strr>   z-Union[str, Iterable[MessageContentPartParam]]r?   zLiteral['user', 'assistant']r0   z?Optional[Iterable[message_create_params.Attachment]] | NotGivenr1   Optional[object] | NotGivenr2   Headers | Noner3   Query | Noner4   Body | Noner5   'float | httpx.Timeout | None | NotGivenro   r   rS   rq   rI   rq   r2   rs   r3   rt   r4   ru   r5   rv   ro   r   rS   rq   rI   rq   r1   rr   r2   rs   r3   rt   r4   ru   r5   rv   ro   r   )rI   rq   r\   str | NotGivenr]   ry   r^   int | NotGivenr_   !Literal['asc', 'desc'] | NotGivenr`   ry   r2   rs   r3   rt   r4   ru   r5   rv   ro   zSyncCursorPage[Message]rS   rq   rI   rq   r2   rs   r3   rt   r4   ru   r5   rv   ro   r   __name__
__module____qualname__r   r)   r.   r
   rJ   rT   rZ   ri   rn    r*   r(   r    r        s\   - - 3 3 Xa09 )-$("&;D>
>
 ?	>

 +>
 U>
 .>
 &>
 ">
  >
 9>
 
>
N )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
T 1: )-$("&;D*
*
 	*

 .*
 &*
 "*
  *
 9*
 
*
` !*!* )3<!* )-$("&;DE
E
 	E

 E
 E
 1E
 E
 &E
 "E
  E
 9E
 
!E
\ )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
r*   c            
      F   e Zd Zedd       Zedd       Zeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z	eeeeeddded
		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ
ddded	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r!   c                    t        |       S r$   )AsyncMessagesWithRawResponser&   s    r(   r)   zAsyncMessages.with_raw_response3  s     ,D11r*   c                    t        |       S r,   )"AsyncMessagesWithStreamingResponser&   s    r(   r.   z%AsyncMessages.with_streaming_response=  s     2$77r*   Nr/   c          
        K   |st        d|      ddi|xs i }| j                  d| dt        ||||dt        j                         d{   t        ||||	      t        	       d{   S 7 $7 w)
r7   r8   r9   r:   r;   r<   r=   Nr@   rA   )rE   rF   r   r   rG   r   r   rH   s
             r(   rJ   zAsyncMessages.createF  s     X WXaWdeff&QM<ORQZZ	{),,& #. (	 &99  )+Q[el    
 
 	

s$   AA8A4
A8/A60A86A8r@   c          	        K   |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        ||||      t               d	{   S 7 w)
rL   r8   rM   r9   r:   r;   rN   r@   rO   NrP   rR   s          r(   rT   zAsyncMessages.retrieve  s     0 WXaWdeffXYcXfghh&QM<ORQYY	{*ZL9(+Q[el   
 
 	
 
   AA"A A"rU   c          
       K   |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        d|it        j                         d{   t        ||||	      t        
       d{   S 7 $7 w)rW   r8   rM   r9   r:   r;   rN   r1   Nr@   rA   )rE   rF   r   r   rX   r   r   rY   s           r(   rZ   zAsyncMessages.update  s     < WXaWdeffXYcXfghh&QM<ORQZZ	{*ZL9,j(-CEZEnEnoo(+Q[el    
 
 	
o
s$   ABB
B>B?BBr[   c       	            |st        d|      ddi|xs i }| j                  d| dt        t           t	        |||	|
t        |||||dt        j                              t              S rb   )rE   rf   r   r   r   r   r   rg   rh   s              r(   ri   zAsyncMessages.list  s    \ WXaWdeff&QM<ORQ!!	{), )(+'%%!&"(!&!&"( (99	  ' " 
 	
r*   c          	        K   |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        ||||      t               d	{   S 7 w)
rk   r8   rM   r9   r:   r;   rN   r@   rO   Nrl   rR   s          r(   rn   zAsyncMessages.delete  s     0 WXaWdeffXYcXfghh&QM<ORQ\\	{*ZL9(+Q[el # " 
 
 	
 
r   )ro   r   )ro   r   rp   rw   rx   )rI   rq   r\   ry   r]   ry   r^   rz   r_   r{   r`   ry   r2   rs   r3   rt   r4   ru   r5   rv   ro   z1AsyncPaginator[Message, AsyncCursorPage[Message]]r|   r}   r   r*   r(   r!   r!   2  s\   2 2 8 8 Xa09 )-$("&;D>
>
 ?	>

 +>
 U>
 .>
 &>
 ">
  >
 9>
 
>
N )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
T 1: )-$("&;D*
*
 	*

 .*
 &*
 "*
  *
 9*
 
*
` !*!* )3<!* )-$("&;DE
E
 	E

 E
 E
 1E
 E
 &E
 "E
  E
 9E
 
;E
\ )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
r*   c                      e Zd ZddZy)r%   c                z   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y N)	_messagesr	   to_raw_response_wrapperrJ   rT   rZ   ri   rn   r'   messagess     r(   __init__z MessagesWithRawResponse.__init__E  s    !&>>OO
 )@@
 '>>OO
 %<<MM
	 '>>OO
r*   Nr   r    ro   Noner~   r   r   r   r   r*   r(   r%   r%   D      
r*   r%   c                      e Zd ZddZy)r   c                z   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y r   )r   r	   async_to_raw_response_wrapperrJ   rT   rZ   ri   rn   r   s     r(   r   z%AsyncMessagesWithRawResponse.__init__Z  s    !&DDOO
 )FF
 'DDOO
 %BBMM
	 'DDOO
r*   Nr   r!   ro   r   r   r   r*   r(   r   r   Y  r   r*   r   c                      e Zd ZddZy)r-   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r   )r   r   rJ   rT   rZ   ri   rn   r   s     r(   r   z&MessagesWithStreamingResponse.__init__o  sr    !2OO
 5
 3OO
 1MM
	 3OO
r*   Nr   r   r   r*   r(   r-   r-   n  r   r*   r-   c                      e Zd ZddZy)r   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r   )r   r   rJ   rT   rZ   ri   rn   r   s     r(   r   z+AsyncMessagesWithStreamingResponse.__init__  sr    !8OO
 ;
 9OO
 7MM
	 9OO
r*   Nr   r   r   r*   r(   r   r     r   r*   r   )3
__future__r   typingr   r   r   typing_extensionsr   httpx r	   _typesr
   r   r   r   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   types.beta.threadsr   r   r   types.beta.threads.messager   "types.beta.threads.message_deletedr   -types.beta.threads.message_content_part_paramr   __all__r    r!   r%   r   r-   r   r   r*   r(   <module>r      s    # , , %  ! @ @ ( ; Z : e d 2 A U
'O
 O
dO
$ O
d
 
*
 
*
 
*
 
r*   