o
    r)iB                     @  sL  d dl mZ d dlZd dl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$ 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Z-G dd dZ.G dd dZ/dS )    )annotationsN)List)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)step_list_paramsstep_retrieve_params)RunStep)RunStepIncludeSteps
AsyncStepsc                   @  x   e Zd ZdZed(ddZed)d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+d&d'Zd
S ),r   4Build Assistants that can call models and use tools.returnStepsWithRawResponsec                 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'   l/var/www/html/voicebot/backend/venv/lib/python3.10/site-packages/openai/resources/beta/threads/runs/steps.pywith_raw_response      zSteps.with_raw_responseStepsWithStreamingResponsec                 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Steps.with_streaming_response>The Assistants API is deprecated in favor of the Responses APINincludeextra_headersextra_query
extra_bodytimeoutstep_idstr	thread_idrun_idr1   List[RunStepInclude] | Omitr2   Headers | Noner3   Query | Noner4   Body | Noner5   'float | httpx.Timeout | None | NotGivenr   c          	   
   C  s   |s	t d||st d||st d|ddi|p!i }| jd| d| d| t||||td	|itjd
tdS )  
        Retrieves a run step.

        Args:
          include: A list of additional fields to include in the response. Currently the only
              supported value is `step_details.tool_calls[*].file_search.results[*].content`
              to fetch the file search result content.

              See the
              [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
              for more information.

          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 5Expected a non-empty value for `run_id` but received 6Expected a non-empty value for `step_id` but received OpenAI-Betaassistants=v2	/threads//runs//steps/r1   r2   r3   r4   r5   queryoptionscast_to)
ValueError_getr   r   r   StepRetrieveParamsr   	r&   r6   r8   r9   r1   r2   r3   r4   r5   r'   r'   r(   retrieve0   s$   #zSteps.retrieve	afterbeforer1   limitorderr2   r3   r4   r5   rS   
str | OmitrT   rU   
int | OmitrV   Literal['asc', 'desc'] | OmitSyncCursorPage[RunStep]c       
         C  z   |s	t d||st d|ddi|pi }| jd| d| dtt t||	|
|t|||||dtjd	td
S a  
        Returns a list of run steps belonging to a run.

        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.

          include: A list of additional fields to include in the response. Currently the only
              supported value is `step_details.tool_calls[*].file_search.results[*].content`
              to fetch the file search result content.

              See the
              [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
              for more information.

          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.

          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@   rA   rC   rD   rE   rF   z/steps)rS   rT   r1   rU   rV   rH   )pagerK   model)rM   _get_api_listr   r   r   r   r   StepListParamsr&   r9   r8   rS   rT   r1   rU   rV   r2   r3   r4   r5   r'   r'   r(   listf   2   6z
Steps.list)r!   r"   )r!   r+   r6   r7   r8   r7   r9   r7   r1   r:   r2   r;   r3   r<   r4   r=   r5   r>   r!   r   )r9   r7   r8   r7   rS   rW   rT   rW   r1   r:   rU   rX   rV   rY   r2   r;   r3   r<   r4   r=   r5   r>   r!   rZ   __name__
__module____qualname____doc__r   r)   r-   typing_extensions
deprecatedr   r   rQ   rb   r'   r'   r'   r(   r      0    	5c                   @  r   ),r   r    r!   AsyncStepsWithRawResponsec                 C  r#   r$   )rm   r%   r'   r'   r(   r)      r*   zAsyncSteps.with_raw_responseAsyncStepsWithStreamingResponsec                 C  r#   r,   )rn   r%   r'   r'   r(   r-      r.   z"AsyncSteps.with_streaming_responser/   Nr0   r6   r7   r8   r9   r1   r:   r2   r;   r3   r<   r4   r=   r5   r>   r   c          	   
     s   |s
t d||st d||st d|ddi|p"i }| jd| d| d| t||||td	|itjI d
H dtdI d
H S )r?   r@   rA   rB   rC   rD   rE   rF   rG   r1   NrH   rJ   )rM   rN   r   r   r   rO   r   rP   r'   r'   r(   rQ      s&   #zAsyncSteps.retrieverR   rS   rW   rT   rU   rX   rV   rY   1AsyncPaginator[RunStep, AsyncCursorPage[RunStep]]c       
         C  r[   r\   )rM   r_   r   r   r   r   r   r`   ra   r'   r'   r(   rb     rc   zAsyncSteps.list)r!   rm   )r!   rn   rd   )r9   r7   r8   r7   rS   rW   rT   rW   r1   r:   rU   rX   rV   rY   r2   r;   r3   r<   r4   r=   r5   r>   r!   ro   re   r'   r'   r'   r(   r      rl   c                   @     e Zd ZdddZdS )	r"   stepsr   r!   Nonec                 C  &   || _ t|j| _t|j| _d S N)_stepsr   to_raw_response_wrapperrQ   rb   r&   rq   r'   r'   r(   __init__W     zStepsWithRawResponse.__init__Nrq   r   r!   rr   rf   rg   rh   rx   r'   r'   r'   r(   r"   V      r"   c                   @  rp   )	rm   rq   r   r!   rr   c                 C  rs   rt   )ru   r   async_to_raw_response_wrapperrQ   rb   rw   r'   r'   r(   rx   g  ry   z"AsyncStepsWithRawResponse.__init__Nrq   r   r!   rr   r{   r'   r'   r'   r(   rm   f  r|   rm   c                   @  rp   )	r+   rq   r   r!   rr   c                 C  "   || _ t|j| _t|j| _d S rt   )ru   r   rQ   rb   rw   r'   r'   r(   rx   w     z#StepsWithStreamingResponse.__init__Nrz   r{   r'   r'   r'   r(   r+   v  r|   r+   c                   @  rp   )	rn   rq   r   r!   rr   c                 C  r   rt   )ru   r   rQ   rb   rw   r'   r'   r(   rx     r   z(AsyncStepsWithStreamingResponse.__init__Nr~   r{   r'   r'   r'   r(   rn     r|   rn   )0
__future__r   rj   typingr   r   httpx r   _typesr   r   r	   r
   r   r   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   types.beta.threads.runsr   r    types.beta.threads.runs.run_stepr   (types.beta.threads.runs.run_step_includer   __all__r   r   r"   rm   r+   rn   r'   r'   r'   r(   <module>   s2   $  