o
    $ivQ                     @  sD  d dl m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 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# ddl$m%Z%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 )    )annotations)Optional)LiteralN   )_legacy_response)batch_list_paramsbatch_create_params)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)Batch)AsyncPaginatormake_request_options)MetadataBatchesAsyncBatchesc                   @     e Zd Zed-ddZed.ddZeeddded	d/ddZdddedd0d!d"Z	eeddded#d1d)d*Z
dddedd0d+d,ZdS )2r   returnBatchesWithRawResponsec                 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&   X/var/www/html/flask_server/venv/lib/python3.10/site-packages/openai/resources/batches.pywith_raw_response      zBatches.with_raw_responseBatchesWithStreamingResponsec                 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Batches.with_streaming_responseNmetadataoutput_expires_afterextra_headersextra_query
extra_bodytimeoutcompletion_windowLiteral['24h']endpointULiteral['/v1/responses', '/v1/chat/completions', '/v1/embeddings', '/v1/completions']input_file_idstrr/   Optional[Metadata] | Omitr0   -batch_create_params.OutputExpiresAfter | Omitr1   Headers | Noner2   Query | Noner3   Body | Noner4   'float | httpx.Timeout | None | NotGivenr   c       	   
   	   C  s2   | j dt|||||dtjt||||	dtdS )  
        Creates and executes a batch from an uploaded file of requests

        Args:
          completion_window: The time frame within which the batch should be processed. Currently only `24h`
              is supported.

          endpoint: The endpoint to be used for all requests in the batch. Currently
              `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, and `/v1/completions`
              are supported. Note that `/v1/embeddings` batches are also restricted to a
              maximum of 50,000 embedding inputs across all requests in the batch.

          input_file_id: The ID of an uploaded file that contains requests for the new batch.

              See [upload file](https://platform.openai.com/docs/api-reference/files/create)
              for how to upload a file.

              Your input file must be formatted as a
              [JSONL file](https://platform.openai.com/docs/api-reference/batch/request-input),
              and must be uploaded with the purpose `batch`. The file can contain up to 50,000
              requests, and can be up to 200 MB in size.

          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.

          output_expires_after: The expiration policy for the output and/or error file that are generated for a
              batch.

          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
        /batchesr5   r7   r9   r/   r0   r1   r2   r3   r4   bodyoptionscast_to)_postr   r   BatchCreateParamsr   r   
r%   r5   r7   r9   r/   r0   r1   r2   r3   r4   r&   r&   r'   create-   s    7
zBatches.createrD   batch_idc                C  s4   |s	t d|| jd| t||||dtdS )F  
        Retrieves a batch.

        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
        7Expected a non-empty value for `batch_id` but received 	/batches/rD   rG   rH   
ValueError_getr   r   r%   rM   r1   r2   r3   r4   r&   r&   r'   retrievev   s   zBatches.retrieveafterlimitr1   r2   r3   r4   rX   
str | OmitrY   
int | OmitSyncCursorPage[Batch]c                C  2   | j dtt t||||t||dtjdtdS a,  List your organization's batches.

        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.

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

          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   )rX   rY   )r1   r2   r3   r4   query)pagerG   model)_get_api_listr   r   r   r   r   BatchListParamsr%   rX   rY   r1   r2   r3   r4   r&   r&   r'   list   "   !zBatches.listc                C  s6   |s	t d|| jd| dt||||dtdS )
  Cancels an in-progress batch.

        The batch will be in status `cancelling` for up to
        10 minutes, before changing to `cancelled`, where it will have partial results
        (if any) available in the output file.

        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
        rO   rP   /cancelrD   rQ   rS   rI   r   r   rU   r&   r&   r'   cancel   s   
zBatches.cancel)r    r!   )r    r*   r5   r6   r7   r8   r9   r:   r/   r;   r0   r<   r1   r=   r2   r>   r3   r?   r4   r@   r    r   rM   r:   r1   r=   r2   r>   r3   r?   r4   r@   r    r   )rX   rZ   rY   r[   r1   r=   r2   r>   r3   r?   r4   r@   r    r\   __name__
__module____qualname__r   r(   r,   r   r   rL   rV   re   rj   r&   r&   r&   r'   r      :    	O$:c                   @  r   )2r   r    AsyncBatchesWithRawResponsec                 C  r"   r#   )rr   r$   r&   r&   r'   r(      r)   zAsyncBatches.with_raw_response!AsyncBatchesWithStreamingResponsec                 C  r"   r+   )rs   r$   r&   r&   r'   r,      r-   z$AsyncBatches.with_streaming_responseNr.   r5   r6   r7   r8   r9   r:   r/   r;   r0   r<   r1   r=   r2   r>   r3   r?   r4   r@   r   c       	   
   	     s@   | j dt|||||dtjI dH t||||	dtdI dH S )rA   rB   rC   NrD   rE   )rI   r   r   rJ   r   r   rK   r&   r&   r'   rL     s"   7
zAsyncBatches.createrD   rM   c                  s<   |s
t d|| jd| t||||dtdI dH S )rN   rO   rP   rD   rQ   NrR   rU   r&   r&   r'   rV   M  s   zAsyncBatches.retrieverW   rX   rZ   rY   r[   -AsyncPaginator[Batch, AsyncCursorPage[Batch]]c                C  r]   r^   )rb   r   r   r   r   r   rc   rd   r&   r&   r'   re   n  rf   zAsyncBatches.listc                  s>   |s
t d|| jd| dt||||dtdI dH S )rg   rO   rP   rh   rD   rQ   Nri   rU   r&   r&   r'   rj     s   
zAsyncBatches.cancel)r    rr   )r    rs   rk   rl   )rX   rZ   rY   r[   r1   r=   r2   r>   r3   r?   r4   r@   r    rt   rm   r&   r&   r&   r'   r      rq   c                   @     e Zd ZdddZdS )	r!   batchesr   r    Nonec                 C  B   || _ t|j| _t|j| _t|j| _t|j| _d S N)_batchesr   to_raw_response_wrapperrL   rV   re   rj   r%   rv   r&   r&   r'   __init__     
zBatchesWithRawResponse.__init__Nrv   r   r    rw   rn   ro   rp   r}   r&   r&   r&   r'   r!         r!   c                   @  ru   )	rr   rv   r   r    rw   c                 C  rx   ry   )rz   r   async_to_raw_response_wrapperrL   rV   re   rj   r|   r&   r&   r'   r}     r~   z$AsyncBatchesWithRawResponse.__init__Nrv   r   r    rw   r   r&   r&   r&   r'   rr     r   rr   c                   @  ru   )	r*   rv   r   r    rw   c                 C  :   || _ t|j| _t|j| _t|j| _t|j| _d S ry   )rz   r   rL   rV   re   rj   r|   r&   r&   r'   r}        
z%BatchesWithStreamingResponse.__init__Nr   r   r&   r&   r&   r'   r*     r   r*   c                   @  ru   )	rs   rv   r   r    rw   c                 C  r   ry   )rz   r   rL   rV   re   rj   r|   r&   r&   r'   r}     r   z*AsyncBatchesWithStreamingResponse.__init__Nr   r   r&   r&   r&   r'   rs     r   rs   )0
__future__r   typingr   typing_extensionsr   httpx r   typesr   r   _typesr	   r
   r   r   r   r   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   types.batchr   _base_clientr   r   types.shared_params.metadatar   __all__r   r   r!   rr   r*   rs   r&   r&   r&   r'   <module>   s0   $ X X