o
    i,                     @  s  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 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 )    )annotationsN   )_legacy_response)BodyQueryHeadersNotGiven	not_given)path_template)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncPage	AsyncPage)Model)AsyncPaginatormake_request_options)ModelDeletedModelsAsyncModelsc                   @  n   e Zd ZdZedddZedddZd	d	d	ed
d ddZd	d	d	ed
d!ddZ	d	d	d	ed
d"ddZ
d	S )#r   :List and describe the various models available in the API.returnModelsWithRawResponsec                 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    Q/home/kim/smarthome/.venv/lib/python3.10/site-packages/openai/resources/models.pywith_raw_response      zModels.with_raw_responseModelsWithStreamingResponsec                 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Models.with_streaming_responseNextra_headersextra_query
extra_bodytimeoutmodelstrr)   Headers | Noner*   Query | Noner+   Body | Noner,   'float | httpx.Timeout | None | NotGivenr   c                C  6   |s	t d|| jtd|dt||||dtdS )  
        Retrieves a model instance, providing basic information about the model such as
        the owner and permissioning.

        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
        4Expected a non-empty value for `model` but received /models/{model}r-   r(   optionsZcast_to
ValueError_getr
   r   r   r   r-   r)   r*   r+   r,   r    r    r!   retrieve.   s   
zModels.retrieveSyncPage[Model]c             	   C  "   | j dtt t||||dtdS z
        Lists the currently available models, and provides basic information about each
        one such as the owner and availability.
        z/modelsr(   )pager9   r-   )_get_api_listr   r   r   r   r)   r*   r+   r,   r    r    r!   listP      zModels.listr   c                C  r3   )  Delete a fine-tuned model.

        You must have the Owner role in your organization to
        delete a model.

        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
        r5   r6   r7   r(   r8   r;   _deleter
   r   r   r=   r    r    r!   deleteg   s   
zModels.delete)r   r   )r   r$   r-   r.   r)   r/   r*   r0   r+   r1   r,   r2   r   r   )
r)   r/   r*   r0   r+   r1   r,   r2   r   r?   r-   r.   r)   r/   r*   r0   r+   r1   r,   r2   r   r   __name__
__module____qualname____doc__r   r"   r&   r	   r>   rE   rJ   r    r    r    r!   r      *    	'c                   @  r   )#r   r   r   AsyncModelsWithRawResponsec                 C  r   r   )rS   r   r    r    r!   r"      r#   zAsyncModels.with_raw_response AsyncModelsWithStreamingResponsec                 C  r   r%   )rT   r   r    r    r!   r&      r'   z#AsyncModels.with_streaming_responseNr(   r-   r.   r)   r/   r*   r0   r+   r1   r,   r2   r   c                  >   |s
t d|| jtd|dt||||dtdI dH S )r4   r5   r6   r7   r(   r8   Nr:   r=   r    r    r!   r>      s   
zAsyncModels.retrieve'AsyncPaginator[Model, AsyncPage[Model]]c             	   C  r@   rA   )rC   r   r   r   rD   r    r    r!   rE      rF   zAsyncModels.listr   c                  rU   )rG   r5   r6   r7   r(   r8   NrH   r=   r    r    r!   rJ      s   
zAsyncModels.delete)r   rS   )r   rT   rK   )
r)   r/   r*   r0   r+   r1   r,   r2   r   rV   rL   rM   r    r    r    r!   r      rR   c                   @     e Zd ZdddZdS )	r   modelsr   r   Nonec                 C  4   || _ t|j| _t|j| _t|j| _d S N)_modelsr   Zto_raw_response_wrapperr>   rE   rJ   r   rX   r    r    r!   __init__      
zModelsWithRawResponse.__init__NrX   r   r   rY   rN   rO   rP   r^   r    r    r    r!   r          r   c                   @  rW   )	rS   rX   r   r   rY   c                 C  rZ   r[   )r\   r   Zasync_to_raw_response_wrapperr>   rE   rJ   r]   r    r    r!   r^     r_   z#AsyncModelsWithRawResponse.__init__NrX   r   r   rY   ra   r    r    r    r!   rS     rb   rS   c                   @  rW   )	r$   rX   r   r   rY   c                 C  .   || _ t|j| _t|j| _t|j| _d S r[   )r\   r   r>   rE   rJ   r]   r    r    r!   r^        
z$ModelsWithStreamingResponse.__init__Nr`   ra   r    r    r    r!   r$     rb   r$   c                   @  rW   )	rT   rX   r   r   rY   c                 C  rd   r[   )r\   r   r>   rE   rJ   r]   r    r    r!   r^   ,  re   z)AsyncModelsWithStreamingResponse.__init__Nrc   ra   r    r    r    r!   rT   +  rb   rT   )&
__future__r   Zhttpx r   _typesr   r   r   r   r	   Z_utilsr
   Z_compatr   Z	_resourcer   r   	_responser   r   Z
paginationr   r   Ztypes.modelr   Z_base_clientr   r   Ztypes.model_deletedr   __all__r   r   r   rS   r$   rT   r    r    r    r!   <module>   s&   ss