o
    {$ff                     @  sT  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 deZ-G dd deZ.G dd dZ/G dd dZ0G dd dZ1G dd dZ2dS )    )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                
   @     e Zd Zed5ddZed6ddZeeddded	d7ddZdddedd8d!d"Zeddded#d9d$d%Z	eeeeeddded&	d:d0d1Z
dddedd;d3d4ZdS )<r   returnMessagesWithRawResponsec                 C     t | S N)r#   self r(   \/var/www/html/dev/env/lib/python3.10/site-packages/openai/resources/beta/threads/messages.pywith_raw_response!      zMessages.with_raw_responseMessagesWithStreamingResponsec                 C  r$   r%   )r,   r&   r(   r(   r)   with_streaming_response%   r+   z Messages.with_streaming_responseNattachmentsmetadataextra_headersextra_query
extra_bodytimeout	thread_idstrcontent-Union[str, Iterable[MessageContentPartParam]]roleLiteral['user', 'assistant']r/   ?Optional[Iterable[message_create_params.Attachment]] | NotGivenr0   Optional[object] | NotGivenr1   Headers | Noner2   Query | Noner3   Body | Noner4   'float | httpx.Timeout | None | NotGivenr   c          
   	   C  sZ   |s	t d|ddi|pi }| jd| dt||||dtjt||||	dtd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 maxium 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r7   r9   r/   r0   r1   r2   r3   r4   bodyoptionscast_to)
ValueError_postr   r   MessageCreateParamsr   r   
r'   r5   r7   r9   r/   r0   r1   r2   r3   r4   r(   r(   r)   create)   s$   ,
	zMessages.createrH   
message_idc                C  \   |s	t d||st d|ddi|pi }| jd| d| t||||dtd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
        rB   9Expected a non-empty value for `message_id` but received rC   rD   rE   
/messages/rH   rK   rL   rM   _getr   r   r'   rR   r5   r1   r2   r3   r4   r(   r(   r)   retrievei      zMessages.retriever0   r1   r2   r3   r4   c             	   C  sj   |s	t d||st d|ddi|pi }| jd| d| td|itjt||||dtd	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 maxium 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
        rB   rU   rC   rD   rE   rV   r0   rH   rI   )rM   rN   r   r   MessageUpdateParamsr   r   r'   rR   r5   r0   r1   r2   r3   r4   r(   r(   r)   update   s   zMessages.update	afterbeforelimitorderrun_idr1   r2   r3   r4   rc   str | NotGivenrd   re   int | NotGivenrf   !Literal['asc', 'desc'] | NotGivenrg   SyncCursorPage[Message]c       	         C  b   |s	t d|ddi|pi }| jd| dtt t|||	|
t|||||dtjdtdS 	af  
        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,
              ending 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
        rB   rC   rD   rE   rF   )rc   rd   re   rf   rg   )r1   r2   r3   r4   query)pagerK   model)rM   _get_api_listr   r   r   r   r   MessageListParamsr'   r5   rc   rd   re   rf   rg   r1   r2   r3   r4   r(   r(   r)   list   .   .
zMessages.listr   c                C  rS   )	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
        rB   rU   rC   rD   rE   rV   rH   rW   rM   _deleter   r   rZ   r(   r(   r)   delete  r\   zMessages.delete)r"   r#   )r"   r,   r5   r6   r7   r8   r9   r:   r/   r;   r0   r<   r1   r=   r2   r>   r3   r?   r4   r@   r"   r   rR   r6   r5   r6   r1   r=   r2   r>   r3   r?   r4   r@   r"   r   rR   r6   r5   r6   r0   r<   r1   r=   r2   r>   r3   r?   r4   r@   r"   r   )r5   r6   rc   rh   rd   rh   re   ri   rf   rj   rg   rh   r1   r=   r2   r>   r3   r?   r4   r@   r"   rk   rR   r6   r5   r6   r1   r=   r2   r>   r3   r?   r4   r@   r"   r   __name__
__module____qualname__r   r*   r-   r	   rQ   r[   ra   rt   ry   r(   r(   r(   r)   r       L    	G*0Nc                
   @  r!   )<r    r"   AsyncMessagesWithRawResponsec                 C  r$   r%   )r   r&   r(   r(   r)   r*   (  r+   zAsyncMessages.with_raw_response"AsyncMessagesWithStreamingResponsec                 C  r$   r%   )r   r&   r(   r(   r)   r-   ,  r+   z%AsyncMessages.with_streaming_responseNr.   r5   r6   r7   r8   r9   r:   r/   r;   r0   r<   r1   r=   r2   r>   r3   r?   r4   r@   r   c          
   	     sh   |s
t d|ddi|pi }| jd| dt||||dtjI dH t||||	dtd	I dH S )
rA   rB   rC   rD   rE   rF   rG   NrH   rI   )rM   rN   r   r   rO   r   r   rP   r(   r(   r)   rQ   0  s&   ,
	zAsyncMessages.createrH   rR   c                  d   |s
t d||st d|ddi|pi }| jd| d| t||||dtdI d	H S )
rT   rB   rU   rC   rD   rE   rV   rH   rW   NrX   rZ   r(   r(   r)   r[   p     zAsyncMessages.retriever]   c             	     sx   |s
t d||st d|ddi|pi }| jd| d| td|itjI dH t||||d	td
I dH S )r^   rB   rU   rC   rD   rE   rV   r0   NrH   rI   )rM   rN   r   r   r_   r   r   r`   r(   r(   r)   ra     s   zAsyncMessages.updaterb   rc   rh   rd   re   ri   rf   rj   rg   1AsyncPaginator[Message, AsyncCursorPage[Message]]c       	         C  rl   rm   )rM   rq   r   r   r   r   r   rr   rs   r(   r(   r)   rt     ru   zAsyncMessages.listr   c                  r   )
rv   rB   rU   rC   rD   rE   rV   rH   rW   Nrw   rZ   r(   r(   r)   ry     r   zAsyncMessages.delete)r"   r   )r"   r   rz   r{   r|   )r5   r6   rc   rh   rd   rh   re   ri   rf   rj   rg   rh   r1   r=   r2   r>   r3   r?   r4   r@   r"   r   r}   r~   r(   r(   r(   r)   r    '  r   c                   @     e Zd ZdddZdS )	r#   messagesr   r"   Nonec                 C  P   || _ t|j| _t|j| _t|j| _t|j| _t|j| _d S r%   )	_messagesr   to_raw_response_wrapperrQ   r[   ra   rt   ry   r'   r   r(   r(   r)   __init__/      
z MessagesWithRawResponse.__init__Nr   r   r"   r   r   r   r   r   r(   r(   r(   r)   r#   .      r#   c                   @  r   )	r   r   r    r"   r   c                 C  r   r%   )r   r   async_to_raw_response_wrapperrQ   r[   ra   rt   ry   r   r(   r(   r)   r   D  r   z%AsyncMessagesWithRawResponse.__init__Nr   r    r"   r   r   r(   r(   r(   r)   r   C  r   r   c                   @  r   )	r,   r   r   r"   r   c                 C  F   || _ t|j| _t|j| _t|j| _t|j| _t|j| _d S r%   )r   r   rQ   r[   ra   rt   ry   r   r(   r(   r)   r   Y      
z&MessagesWithStreamingResponse.__init__Nr   r   r(   r(   r(   r)   r,   X  r   r,   c                   @  r   )	r   r   r    r"   r   c                 C  r   r%   )r   r   rQ   r[   ra   rt   ry   r   r(   r(   r)   r   n  r   z+AsyncMessagesWithStreamingResponse.__init__Nr   r   r(   r(   r(   r)   r   m  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(   r)   <module>   s6     	  	