o
    $iJx                     @  sp  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Z0G dd deZ1G dd deZ2G dd dZ3G dd dZ4G dd dZ5G dd dZ6dS )    )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ed6ddZed7ddZedeed	d	d	e	d
d8ddZ
edd	d	d	e	d d9d"d#Zeded	d	d	e	d$d:d%d&Zedeeeeed	d	d	e	d'	d;d1d2Zedd	d	d	e	d d<d4d5Zd	S )=r"   returnMessagesWithRawResponsec                 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
        )r&   self r+   f/var/www/html/flask_server/venv/lib/python3.10/site-packages/openai/resources/beta/threads/messages.pywith_raw_response       zMessages.with_raw_responseMessagesWithStreamingResponsec                 C  r'   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
        )r/   r)   r+   r+   r,   with_streaming_response*      z Messages.with_streaming_response>The Assistants API is deprecated in favor of the Responses APINattachmentsmetadataextra_headersextra_query
extra_bodytimeout	thread_idstrcontent-Union[str, Iterable[MessageContentPartParam]]roleLiteral['user', 'assistant']r5   ;Optional[Iterable[message_create_params.Attachment]] | Omitr6   Optional[Metadata] | Omitr7   Headers | Noner8   Query | Noner9   Body | Noner:   '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, 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r=   r?   r5   r6   r7   r8   r9   r:   bodyoptionscast_to)
ValueError_postr   r   MessageCreateParamsr   r   
r*   r;   r=   r?   r5   r6   r7   r8   r9   r:   r+   r+   r,   create3   s$   /
	zMessages.createrN   
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
        rH   9Expected a non-empty value for `message_id` but received rI   rJ   rK   
/messages/rN   rQ   rR   rS   _getr   r   r*   rX   r;   r7   r8   r9   r:   r+   r+   r,   retrievev      zMessages.retriever6   r7   r8   r9   r:   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, 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
        rH   r[   rI   rJ   rK   r\   r6   rN   rO   )rS   rT   r   r   MessageUpdateParamsr   r   r*   rX   r;   r6   r7   r8   r9   r:   r+   r+   r,   update   s   !zMessages.update	afterbeforelimitorderrun_idr7   r8   r9   r:   ri   
str | Omitrj   rk   
int | Omitrl   Literal['asc', 'desc'] | Omitrm   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 	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
        rH   rI   rJ   rK   rL   )ri   rj   rk   rl   rm   )r7   r8   r9   r:   query)pagerQ   model)rS   _get_api_listr   r   r   r   r   MessageListParamsr*   r;   ri   rj   rk   rl   rm   r7   r8   r9   r:   r+   r+   r,   list   .   /
zMessages.listr    c                C  rY   )	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
        rH   r[   rI   rJ   rK   r\   rN   r]   rS   _deleter   r    r`   r+   r+   r,   delete  rb   zMessages.delete)r%   r&   )r%   r/   r;   r<   r=   r>   r?   r@   r5   rA   r6   rB   r7   rC   r8   rD   r9   rE   r:   rF   r%   r   rX   r<   r;   r<   r7   rC   r8   rD   r9   rE   r:   rF   r%   r   rX   r<   r;   r<   r6   rB   r7   rC   r8   rD   r9   rE   r:   rF   r%   r   )r;   r<   ri   rn   rj   rn   rk   ro   rl   rp   rm   rn   r7   rC   r8   rD   r9   rE   r:   rF   r%   rq   rX   r<   r;   r<   r7   rC   r8   rD   r9   rE   r:   rF   r%   r    __name__
__module____qualname__r   r-   r1   typing_extensions
deprecatedr   r   rW   ra   rg   rz   r   r+   r+   r+   r,   r"      V    	B%.Gc                   @  r$   )=r#   r%   AsyncMessagesWithRawResponsec                 C  r'   r(   )r   r)   r+   r+   r,   r-   ;  r.   zAsyncMessages.with_raw_response"AsyncMessagesWithStreamingResponsec                 C  r'   r0   )r   r)   r+   r+   r,   r1   E  r2   z%AsyncMessages.with_streaming_responser3   Nr4   r;   r<   r=   r>   r?   r@   r5   rA   r6   rB   r7   rC   r8   rD   r9   rE   r:   rF   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 )
rG   rH   rI   rJ   rK   rL   rM   NrN   rO   )rS   rT   r   r   rU   r   r   rV   r+   r+   r,   rW   N  s&   /
	zAsyncMessages.createrN   rX   c                  d   |s
t d||st d|ddi|pi }| jd| d| t||||dtdI d	H S )
rZ   rH   r[   rI   rJ   rK   r\   rN   r]   Nr^   r`   r+   r+   r,   ra        zAsyncMessages.retrieverc   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 )rd   rH   r[   rI   rJ   rK   r\   r6   NrN   rO   )rS   rT   r   r   re   r   r   rf   r+   r+   r,   rg     s   !zAsyncMessages.updaterh   ri   rn   rj   rk   ro   rl   rp   rm   1AsyncPaginator[Message, AsyncCursorPage[Message]]c       	         C  rr   rs   )rS   rw   r   r   r   r   r   rx   ry   r+   r+   r,   rz     r{   zAsyncMessages.listr    c                  r   )
r|   rH   r[   rI   rJ   rK   r\   rN   r]   Nr}   r`   r+   r+   r,   r   .  r   zAsyncMessages.delete)r%   r   )r%   r   r   r   r   )r;   r<   ri   rn   rj   rn   rk   ro   rl   rp   rm   rn   r7   rC   r8   rD   r9   rE   r:   rF   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 N)	_messagesr   to_raw_response_wrapperrW   ra   rg   rz   r   r*   r   r+   r+   r,   __init__V  *   z MessagesWithRawResponse.__init__Nr   r"   r%   r   r   r   r   r   r+   r+   r+   r,   r&   U      r&   c                   @  r   )	r   r   r#   r%   r   c                 C  r   r   )r   r   async_to_raw_response_wrapperrW   ra   rg   rz   r   r   r+   r+   r,   r   u  r   z%AsyncMessagesWithRawResponse.__init__Nr   r#   r%   r   r   r+   r+   r+   r,   r   t  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   rW   ra   rg   rz   r   r   r+   r+   r,   r     *   z&MessagesWithStreamingResponse.__init__Nr   r   r+   r+   r+   r,   r/     r   r/   c                   @  r   )	r   r   r#   r%   r   c                 C  r   r   )r   r   rW   ra   rg   rz   r   r   r+   r+   r,   r     r   z+AsyncMessagesWithStreamingResponse.__init__Nr   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   r/   r   r+   r+   r+   r,   <module>   s:   $    