
    qix                       d dl mZ d dl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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l.m/Z/ ddgZ0 G d de      Z1 G d de      Z2 G d d      Z3 G d d      Z4 G d d      Z5 G d d      Z6y)    )annotationsN)UnionIterableOptional)Literal   )_legacy_response)BodyOmitQueryHeadersNotGivenomit	not_given)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)Metadata)MessageDeleted)MessageContentPartParamMessagesAsyncMessagesc                     e Zd ZdZedd       Zedd       Z ej                  d      e	e	ddde
d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ej                  d      ddde
d	 	 	 	 	 	 	 	 	 	 	 	 	 dd	       Z ej                  d      e	ddde
d
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ej                  d      e	e	e	e	e	ddde
d		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ej                  d      ddde
d	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zy)r#   4Build Assistants that can call models and use tools.c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return
        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    X/opt/pipecat/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.   >The Assistants API is deprecated in favor of the Responses APIN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, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

          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roler5   r6   r7   r8   r9   r:   bodyoptionscast_to)
ValueError_postr   r   MessageCreateParamsr   r   
r+   	thread_idrC   rD   r5   r6   r7   r8   r9   r:   s
             r,   createzMessages.create5   s    ^ WXaWdeff&QM<ORQzz	{), & #. (	 &99 )+Q[el   
 	
r.   rE   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
        r=   9Expected a non-empty value for `message_id` but received r>   r?   r@   
/messages/rE   rH   rI   rJ   _getr   r   r+   
message_idrN   r7   r8   r9   r:   s          r,   retrievezMessages.retrievex   s    2 WXaWdeffXYcXfghh&QM<ORQyy	{*ZL9(+Q[el   
 	
r.   r6   r7   r8   r9   r:   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, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

          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
        r=   rR   r>   r?   r@   rS   r6   rE   rF   )rJ   rK   r   r   MessageUpdateParamsr   r   r+   rX   rN   r6   r7   r8   r9   r:   s           r,   updatezMessages.update   s    B 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_idr7   r8   r9   r:   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
        r=   r>   r?   r@   rA   )ra   rb   rc   rd   re   )r7   r8   r9   r:   query)pagerH   model)rJ   _get_api_listr   r   r   r   r   MessageListParamsr+   rN   ra   rb   rc   rd   re   r7   r8   r9   r:   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
        r=   rR   r>   r?   r@   rS   rE   rT   rJ   _deleter   r!   rW   s          r,   deletezMessages.delete  s    2 WXaWdeffXYcXfghh&QM<ORQ||	{*ZL9(+Q[el #  
 	
r.   )returnr)   )rt   r1   rN   strrC   z-Union[str, Iterable[MessageContentPartParam]]rD   zLiteral['user', 'assistant']r5   z;Optional[Iterable[message_create_params.Attachment]] | Omitr6   Optional[Metadata] | Omitr7   Headers | Noner8   Query | Noner9   Body | Noner:   'float | httpx.Timeout | None | NotGivenrt   r   rX   rv   rN   rv   r7   rx   r8   ry   r9   rz   r:   r{   rt   r   rX   rv   rN   rv   r6   rw   r7   rx   r8   ry   r9   rz   r:   r{   rt   r   )rN   rv   ra   
str | Omitrb   r~   rc   
int | Omitrd   Literal['asc', 'desc'] | Omitre   r~   r7   rx   r8   ry   r9   rz   r:   r{   rt   zSyncCursorPage[Message]rX   rv   rN   rv   r7   rx   r8   ry   r9   rz   r:   r{   rt   r!   __name__
__module____qualname____doc__r   r-   r2   typing_extensions
deprecatedr   r   rO   rY   r_   rn   rs    r.   r,   r#   r#      s   >- - 3 3 "!!"bc TX.2 )-$("&;D@
@
 ?	@

 +@
 Q@
 ,@
 &@
 "@
  @
 9@
 
@
 d@
D "!!"bc )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
 d#
J "!!"bc /3 )-$("&;D,
,
 	,

 ,,
 &,
 ",
  ,
 9,
 
,
 d,
\ "!!"bc
 !! /3! )-$("&;DE
E
 	E

 E
 E
 -E
 E
 &E
 "E
  E
 9E
 
!E
 dE
N "!!"bc )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
 d#
r.   c                     e Zd ZdZedd       Zedd       Z ej                  d      e	e	ddde
d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ej                  d      ddde
d	 	 	 	 	 	 	 	 	 	 	 	 	 dd	       Z ej                  d      e	ddde
d
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ej                  d      e	e	e	e	e	ddde
d		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z ej                  d      ddde
d	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zy)r$   r&   c                    t        |       S r(   )AsyncMessagesWithRawResponser*   s    r,   r-   zAsyncMessages.with_raw_response?  s     ,D11r.   c                    t        |       S r0   )"AsyncMessagesWithStreamingResponser*   s    r,   r2   z%AsyncMessages.with_streaming_responseI  s     2$77r.   r3   Nr4   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)
r<   r=   r>   r?   r@   rA   rB   NrE   rF   )rJ   rK   r   r   rL   r   r   rM   s
             r,   rO   zAsyncMessages.createR  s     ^ WXaWdeff&QM<ORQZZ	{),,& #. (	 &99  )+Q[el    
 
 	

s$   AA8A4
A8/A60A86A8rE   c          	        K   |st        d|      |st        d|      ddi|xs i }| j                  d| d| t        ||||      t               d	{   S 7 w)
rQ   r=   rR   r>   r?   r@   rS   rE   rT   NrU   rW   s          r,   rY   zAsyncMessages.retrieve  s     2 WXaWdeffXYcXfghh&QM<ORQYY	{*ZL9(+Q[el   
 
 	
 
   AA"A A"rZ   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)r\   r=   rR   r>   r?   r@   rS   r6   NrE   rF   )rJ   rK   r   r   r]   r   r   r^   s           r,   r_   zAsyncMessages.update  s     B 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 rg   )rJ   rk   r   r   r   r   r   rl   rm   s              r,   rn   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)
rp   r=   rR   r>   r?   r@   rS   rE   rT   Nrq   rW   s          r,   rs   zAsyncMessages.delete2  s     2 WXaWdeffXYcXfghh&QM<ORQ\\	{*ZL9(+Q[el # " 
 
 	
 
r   )rt   r   )rt   r   ru   r|   r}   )rN   rv   ra   r~   rb   r~   rc   r   rd   r   re   r~   r7   rx   r8   ry   r9   rz   r:   r{   rt   z1AsyncPaginator[Message, AsyncCursorPage[Message]]r   r   r   r.   r,   r$   r$   <  s   >2 2 8 8 "!!"bc TX.2 )-$("&;D@
@
 ?	@

 +@
 Q@
 ,@
 &@
 "@
  @
 9@
 
@
 d@
D "!!"bc )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
 d#
J "!!"bc /3 )-$("&;D,
,
 	,

 ,,
 &,
 ",
  ,
 9,
 
,
 d,
\ "!!"bc
 !! /3! )-$("&;DE
E
 	E

 E
 E
 -E
 E
 &E
 "E
  E
 9E
 
;E
 dE
N "!!"bc )-$("&;D#
#
 	#
 &#
 "#
  #
 9#
 
#
 d#
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_wrapperrO   rY   r_   rn   rs   r+   messagess     r,   __init__z MessagesWithRawResponse.__init__Z  s    ! 44 	 44!! 	 44 	 44 		 44 	r.   Nr   r#   rt   Noner   r   r   r   r   r.   r,   r)   r)   Y      
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_wrapperrO   rY   r_   rn   rs   r   s     r,   r   z%AsyncMessagesWithRawResponse.__init__y  s    ! :: 	 ::!! 	 :: 	 :: 		 :: 	r.   Nr   r$   rt   r   r   r   r.   r,   r   r   x  r   r.   r   c                      e Zd ZddZy)r1   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r   )r   r   rO   rY   r_   rn   rs   r   s     r,   r   z&MessagesWithStreamingResponse.__init__  s    ! ) 	 )!! 	 ) 	 ) 		 ) 	r.   Nr   r   r   r.   r,   r1   r1     r   r.   r1   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   rO   rY   r_   rn   rs   r   s     r,   r   z+AsyncMessagesWithStreamingResponse.__init__  s    ! / 	 /!! 	 / 	 / 		 / 	r.   Nr   r   r   r.   r,   r   r     r   r.   r   )7
__future__r   r   typingr   r   r   r   httpx r	   _typesr
   r   r   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.shared_params.metadatar    "types.beta.threads.message_deletedr!   -types.beta.threads.message_content_part_paramr"   __all__r#   r$   r)   r   r1   r   r   r.   r,   <module>r      s    #  , , %  ! L L L = ' ; Z : e d 2 5 A U
'Z
 Z
zZ
$ Z
z
 
>
 
>
 
>
 
r.   