a
    _gr                     @  sh  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mZmZ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*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddgZ1G dd deZ2G dd deZ3G dd dZ4G dd dZ5G dd dZ6G dd dZ7dS )    )annotations)UnionIterableOptional)LiteralN   )_legacy_response)	NOT_GIVENBodyQueryHeadersNotGiven)maybe_transformasync_maybe_transform)cached_property   )CheckpointsAsyncCheckpointsCheckpointsWithRawResponseAsyncCheckpointsWithRawResponse CheckpointsWithStreamingResponse%AsyncCheckpointsWithStreamingResponse)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncCursorPageAsyncCursorPage)AsyncPaginatormake_request_options)job_list_paramsjob_create_paramsjob_list_events_params)FineTuningJob)FineTuningJobEventJobs	AsyncJobsc                   @  s  e Zd ZeddddZeddddZeddd	d
Zeeeeeeddded
ddddddddddddddddZdddeddddddddddZ	eeddded d!d"ddddd#d$d%d&Z
dddeddddddddd'd(Zeeddded dd!d"ddddd)d*d+d,ZdS )-r%   r   returnc                 C  s
   t | jS N)r   _clientself r-   t/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/openai/resources/fine_tuning/jobs/jobs.pycheckpoints(   s    zJobs.checkpointsJobsWithRawResponsec                 C  s   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
        )r0   r+   r-   r-   r.   with_raw_response,   s    zJobs.with_raw_responseJobsWithStreamingResponsec                 C  s   t | S 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
        )r3   r+   r-   r-   r.   with_streaming_response6   s    zJobs.with_streaming_responseN
hyperparametersintegrationsmethodseedsuffixvalidation_fileextra_headersextra_query
extra_bodytimeoutQUnion[str, Literal['babbage-002', 'davinci-002', 'gpt-3.5-turbo', 'gpt-4o-mini']]str,job_create_params.Hyperparameters | NotGiven<Optional[Iterable[job_create_params.Integration]] | NotGiven#job_create_params.Method | NotGivenOptional[int] | NotGivenOptional[str] | NotGivenHeaders | NoneQuery | NoneBody | None'float | httpx.Timeout | None | NotGivenr#   modeltraining_filer7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r(   c                C  s8   | j dt||||||||dtjt|	|
||dtdS )  
        Creates a fine-tuning job which begins the process of creating a new model from
        a given dataset.

        Response includes details of the enqueued job including job status and the name
        of the fine-tuned models once complete.

        [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)

        Args:
          model: The name of the model to fine-tune. You can select one of the
              [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).

          training_file: The ID of an uploaded file that contains training data.

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

              Your dataset must be formatted as a JSONL file. Additionally, you must upload
              your file with the purpose `fine-tune`.

              The contents of the file should differ depending on if the model uses the
              [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input),
              [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)
              format, or if the fine-tuning method uses the
              [preference](https://platform.openai.com/docs/api-reference/fine-tuning/preference-input)
              format.

              See the [fine-tuning guide](https://platform.openai.com/docs/guides/fine-tuning)
              for more details.

          hyperparameters: The hyperparameters used for the fine-tuning job. This value is now deprecated
              in favor of `method`, and should be passed in under the `method` parameter.

          integrations: A list of integrations to enable for your fine-tuning job.

          method: The method used for fine-tuning.

          seed: The seed controls the reproducibility of the job. Passing in the same seed and
              job parameters should produce the same results, but may differ in rare cases. If
              a seed is not specified, one will be generated for you.

          suffix: A string of up to 64 characters that will be added to your fine-tuned model
              name.

              For example, a `suffix` of "custom-model-name" would produce a model name like
              `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`.

          validation_file: The ID of an uploaded file that contains validation data.

              If you provide this file, the data is used to generate validation metrics
              periodically during fine-tuning. These metrics can be viewed in the fine-tuning
              results file. The same data should not be present in both train and validation
              files.

              Your dataset must be formatted as a JSONL file. You must upload your file with
              the purpose `fine-tune`.

              See the [fine-tuning guide](https://platform.openai.com/docs/guides/fine-tuning)
              for more details.

          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
        /fine_tuning/jobsrM   rN   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   bodyoptionscast_to)_postr   r!   JobCreateParamsr   r#   r,   rM   rN   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r-   r-   r.   create?   s&    W
zJobs.createrR   fine_tuning_job_idr=   r>   r?   r@   r(   c                C  s4   |st d|| jd| t||||dtdS )  
        Get info about a fine-tuning job.

        [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)

        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
        AExpected a non-empty value for `fine_tuning_job_id` but received /fine_tuning/jobs/rR   rU   rV   
ValueError_getr   r#   r,   r\   r=   r>   r?   r@   r-   r-   r.   retrieve   s    zJobs.retrieveafterlimitr=   r>   r?   r@   str | NotGivenint | NotGivenzSyncCursorPage[FineTuningJob]rg   rh   r=   r>   r?   r@   r(   c                C  s2   | j dtt t||||t||dtjdtdS a  
        List your organization's fine-tuning jobs

        Args:
          after: Identifier for the last job from the previous pagination request.

          limit: Number of fine-tuning jobs to retrieve.

          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
        rP   rg   rh   r=   r>   r?   r@   querypagerU   rM   )_get_api_listr   r#   r   r   r    JobListParamsr,   rg   rh   r=   r>   r?   r@   r-   r-   r.   list   s"    z	Jobs.listc                C  s6   |st d|| jd| dt||||dtdS )W  
        Immediately cancel a fine-tune job.

        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
        r^   r_   /cancelrR   r`   rb   rW   r   r#   rd   r-   r-   r.   cancel   s    
zJobs.cancelz"SyncCursorPage[FineTuningJobEvent]r\   rg   rh   r=   r>   r?   r@   r(   c                C  sL   |st d|| jd| dtt t||||t||dtjdtdS a  
        Get status updates for a fine-tuning job.

        Args:
          after: Identifier for the last event from the previous pagination request.

          limit: Number of events to retrieve.

          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^   r_   z/eventsrm   rn   rp   )rb   rr   r   r$   r   r   r"   JobListEventsParamsr,   r\   rg   rh   r=   r>   r?   r@   r-   r-   r.   list_events  s&    
zJobs.list_events__name__
__module____qualname__r   r/   r2   r5   r	   rZ   re   ru   ry   r~   r-   r-   r-   r.   r%   '   sR   	*r&5%c                   @  s  e Zd ZeddddZeddddZeddd	d
Zeeeeeeddded
ddddddddddddddddZdddeddddddddddZ	eeddded d!d"ddddd#d$d%d&Z
dddeddddddddd'd(Zeeddded dd!d"ddddd)d*d+d,ZdS )-r&   r   r'   c                 C  s
   t | jS r)   )r   r*   r+   r-   r-   r.   r/   R  s    zAsyncJobs.checkpointsAsyncJobsWithRawResponsec                 C  s   t | S r1   )r   r+   r-   r-   r.   r2   V  s    zAsyncJobs.with_raw_responseAsyncJobsWithStreamingResponsec                 C  s   t | S r4   )r   r+   r-   r-   r.   r5   `  s    z!AsyncJobs.with_streaming_responseNr6   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r#   rL   c                  sD   | j dt||||||||dtjI dH t|	|
||dtdI dH S )rO   rP   rQ   NrR   rS   )rW   r   r!   rX   r   r#   rY   r-   r-   r.   rZ   i  s&    W
zAsyncJobs.createrR   r[   c                  s:   |st d|| jd| t||||dtdI dH S )r]   r^   r_   rR   r`   Nra   rd   r-   r-   r.   re     s    zAsyncJobs.retrieverf   ri   rj   z=AsyncPaginator[FineTuningJob, AsyncCursorPage[FineTuningJob]]rk   c                C  s2   | j dtt t||||t||dtjdtdS rl   )rr   r   r#   r   r   r    rs   rt   r-   r-   r.   ru     s"    zAsyncJobs.listc                  s<   |st d|| jd| dt||||dtdI dH S )rv   r^   r_   rw   rR   r`   Nrx   rd   r-   r-   r.   ry   '  s    
zAsyncJobs.cancelzGAsyncPaginator[FineTuningJobEvent, AsyncCursorPage[FineTuningJobEvent]]rz   c                C  sL   |st d|| jd| dtt t||||t||dtjdtdS r{   )rb   rr   r   r$   r   r   r"   r|   r}   r-   r-   r.   r~   H  s&    
zAsyncJobs.list_eventsr   r-   r-   r-   r.   r&   Q  sR   	*r&5%c                   @  s.   e Zd ZdddddZedddd	Zd
S )r0   r%   Nonejobsr(   c                 C  sP   || _ t|j| _t|j| _t|j| _t|j| _t|j| _d S r)   )_jobsr   Zto_raw_response_wrapperrZ   re   ru   ry   r~   r,   r   r-   r-   r.   __init__|  s     zJobsWithRawResponse.__init__r   r'   c                 C  s   t | jjS r)   )r   r   r/   r+   r-   r-   r.   r/     s    zJobsWithRawResponse.checkpointsNr   r   r   r   r   r/   r-   r-   r-   r.   r0   {  s   r0   c                   @  s.   e Zd ZdddddZedddd	Zd
S )r   r&   r   r   c                 C  sP   || _ t|j| _t|j| _t|j| _t|j| _t|j| _d S r)   )r   r   Zasync_to_raw_response_wrapperrZ   re   ru   ry   r~   r   r-   r-   r.   r     s     z!AsyncJobsWithRawResponse.__init__r   r'   c                 C  s   t | jjS r)   )r   r   r/   r+   r-   r-   r.   r/     s    z$AsyncJobsWithRawResponse.checkpointsNr   r-   r-   r-   r.   r     s   r   c                   @  s.   e Zd ZdddddZedddd	Zd
S )r3   r%   r   r   c                 C  sF   || _ t|j| _t|j| _t|j| _t|j| _t|j| _d S r)   )r   r   rZ   re   ru   ry   r~   r   r-   r-   r.   r     s     z"JobsWithStreamingResponse.__init__r   r'   c                 C  s   t | jjS r)   )r   r   r/   r+   r-   r-   r.   r/     s    z%JobsWithStreamingResponse.checkpointsNr   r-   r-   r-   r.   r3     s   r3   c                   @  s.   e Zd ZdddddZedddd	Zd
S )r   r&   r   r   c                 C  sF   || _ t|j| _t|j| _t|j| _t|j| _t|j| _d S r)   )r   r   rZ   re   ru   ry   r~   r   r-   r-   r.   r     s     z'AsyncJobsWithStreamingResponse.__init__r   r'   c                 C  s   t | jjS r)   )r   r   r/   r+   r-   r-   r.   r/     s    z*AsyncJobsWithStreamingResponse.checkpointsNr   r-   r-   r-   r.   r     s   r   )8
__future__r   typingr   r   r   Ztyping_extensionsr   Zhttpx r   _typesr	   r
   r   r   r   _utilsr   r   Z_compatr   r/   r   r   r   r   r   r   Z	_resourcer   r   	_responser   r   Z
paginationr   r   Z_base_clientr   r   Ztypes.fine_tuningr    r!   r"   Z!types.fine_tuning.fine_tuning_jobr#   Z'types.fine_tuning.fine_tuning_job_eventr$   __all__r%   r&   r0   r   r3   r   r-   r-   r-   r.   <module>   s4      ,  ,