
    gr                       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Z1 G d de      Z2 G d de      Z3 G d d      Z4 G d d      Z5 G d d      Z6 G d d      Z7y)    )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                  P   e Zd Zedd       Zedd       Zedd       Zeeeeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZ	eeddded		 	 	 	 	 	 	 	 	 	 	 	 	 dd
Z
ddded	 	 	 	 	 	 	 	 	 	 	 ddZeeddded		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r&   c                ,    t        | j                        S N)r   _clientselfs    [/var/www/openai/venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/jobs.pycheckpointszJobs.checkpoints(   s    4<<((    c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return the
        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
        )JobsWithRawResponser,   s    r.   with_raw_responsezJobs.with_raw_response,   s     #4((r0   c                    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
        )JobsWithStreamingResponser,   s    r.   with_streaming_responsezJobs.with_streaming_response6   s     )..r0   N
hyperparametersintegrationsmethodseedsuffixvalidation_fileextra_headersextra_query
extra_bodytimeoutc                   | j                  dt        ||||||||dt        j                        t	        |	|
||      t
              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modeltraining_filer:   r;   r<   r=   r>   r?   r@   rA   rB   rC   bodyoptionscast_to)_postr   r"   JobCreateParamsr    r$   r-   rH   rI   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   s                r.   createzJobs.create?   sh    n zz "%2'6$0$ $'6	 "11 )+Q[el "%  
 	
r0   rJ   c          	     r    |st        d|      | j                  d| t        ||||      t              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/rJ   rM   rN   
ValueError_getr    r$   r-   fine_tuning_job_idr@   rA   rB   rC   s         r.   retrievezJobs.retrieve   sV    2 "`as`vwxxyy !3 45(+Q[el "  
 	
r0   afterlimitr@   rA   rB   rC   c                   | j                  dt        t           t        ||||t	        ||dt
        j                              t              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
        rF   r_   r`   r@   rA   rB   rC   querypagerM   rH   )_get_api_listr   r$   r    r   r!   JobListParamsr-   r_   r`   r@   rA   rB   rC   s          r.   listz	Jobs.list   s^    8 !!.(+'%%!&!& $11  ! " 
 	
r0   c          	     t    |st        d|      | j                  d| dt        ||||      t              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
        rU   rV   /cancelrJ   rW   rY   rO   r    r$   r[   s         r.   cancelzJobs.cancel   sX    . "`as`vwxxzz !3 4G<(+Q[el "  
 	
r0   c                   |st        d|      | j                  d| dt        t           t	        ||||t        ||dt        j                              t              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
        rU   rV   z/eventsrc   rd   rf   )rY   rh   r   r%   r    r   r#   JobListEventsParamsr-   r\   r_   r`   r@   rA   rB   rC   s           r.   list_eventszJobs.list_events  s    : "`as`vwxx!! !3 4G< 23(+'%%!&!& +>> %! " 
 	
r0   )returnr   )rv   r3   )rv   r7   rH   zQUnion[str, Literal['babbage-002', 'davinci-002', 'gpt-3.5-turbo', 'gpt-4o-mini']]rI   strr:   z,job_create_params.Hyperparameters | NotGivenr;   z<Optional[Iterable[job_create_params.Integration]] | NotGivenr<   z#job_create_params.Method | NotGivenr=   zOptional[int] | NotGivenr>   Optional[str] | NotGivenr?   ry   r@   Headers | NonerA   Query | NonerB   Body | NonerC   'float | httpx.Timeout | None | NotGivenrv   r$   r\   rx   r@   rz   rA   r{   rB   r|   rC   r}   rv   r$   )r_   str | NotGivenr`   int | NotGivenr@   rz   rA   r{   rB   r|   rC   r}   rv   zSyncCursorPage[FineTuningJob])r\   rx   r_   r   r`   r   r@   rz   rA   r{   rB   r|   rC   r}   rv   z"SyncCursorPage[FineTuningJobEvent]__name__
__module____qualname__r   r/   r4   r8   r
   rR   r]   rk   rp   ru    r0   r.   r&   r&   '   s`   ) ) ) ) / / IRU^6?)2+44= )-$("&;D!j
 aj
 	j

 Fj
 Sj
 4j
 'j
 )j
 2j
 &j
 "j
  j
  9!j
" 
#j
d )-$("&;D!
!
 &!
 "!
  !
 9!
 
!
L !* ) )-$("&;D-
 -
 	-
 &-
 "-
  -
 9-
 
'-
j )-$("&;D

 &
 "
  
 9
 

J !* ) )-$("&;D0
0
 	0

 0
 &0
 "0
  0
 90
 
,0
r0   c                  P   e Zd Zedd       Zedd       Zedd       Zeeeeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZ	eeddded		 	 	 	 	 	 	 	 	 	 	 	 	 dd
Z
ddded	 	 	 	 	 	 	 	 	 	 	 ddZeeddded		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r'   c                ,    t        | j                        S r*   )r   r+   r,   s    r.   r/   zAsyncJobs.checkpointsR  s    --r0   c                    t        |       S r2   )AsyncJobsWithRawResponser,   s    r.   r4   zAsyncJobs.with_raw_responseV  s     (--r0   c                    t        |       S r6   )AsyncJobsWithStreamingResponser,   s    r.   r8   z!AsyncJobs.with_streaming_response`  s     .d33r0   Nr9   c                  K   | j                  dt        ||||||||dt        j                         d{   t	        |	|
||      t
               d{   S 7 $7 w)rE   rF   rG   NrJ   rK   )rO   r   r"   rP   r    r$   rQ   s                r.   rR   zAsyncJobs.createi  s     n ZZ,"%2'6$0$ $'6	 "11  )+Q[el "%   
 
 	

s!   3AA
AAAArJ   c          	        K   |st        d|      | j                  d| t        ||||      t               d{   S 7 w)rT   rU   rV   rJ   rW   NrX   r[   s         r.   r]   zAsyncJobs.retrieve  sd     2 "`as`vwxxYY !3 45(+Q[el "  
 
 	
 
s   <AAAr^   c                   | j                  dt        t           t        ||||t	        ||dt
        j                              t              S rb   )rh   r   r$   r    r   r!   ri   rj   s          r.   rk   zAsyncJobs.list  s^    8 !! /(+'%%!&!& $11  ! " 
 	
r0   c          	        K   |st        d|      | j                  d| dt        ||||      t               d{   S 7 w)rm   rU   rV   rn   rJ   rW   Nro   r[   s         r.   rp   zAsyncJobs.cancel'  sf     . "`as`vwxxZZ !3 4G<(+Q[el "   
 
 	
 
s   =AA Ac                   |st        d|      | j                  d| dt        t           t	        ||||t        ||dt        j                              t              S rr   )rY   rh   r   r%   r    r   r#   rs   rt   s           r.   ru   zAsyncJobs.list_eventsH  s    : "`as`vwxx!! !3 4G< !34(+'%%!&!& +>> %! " 
 	
r0   )rv   r   )rv   r   )rv   r   rw   r~   )r_   r   r`   r   r@   rz   rA   r{   rB   r|   rC   r}   rv   z=AsyncPaginator[FineTuningJob, AsyncCursorPage[FineTuningJob]])r\   rx   r_   r   r`   r   r@   rz   rA   r{   rB   r|   rC   r}   rv   zGAsyncPaginator[FineTuningJobEvent, AsyncCursorPage[FineTuningJobEvent]]r   r   r0   r.   r'   r'   Q  sb   . . . . 4 4 IRU^6?)2+44= )-$("&;D!j
 aj
 	j

 Fj
 Sj
 4j
 'j
 )j
 2j
 &j
 "j
  j
  9!j
" 
#j
d )-$("&;D!
!
 &!
 "!
  !
 9!
 
!
L !* ) )-$("&;D-
 -
 	-
 &-
 "-
  -
 9-
 
G-
j )-$("&;D

 &
 "
  
 9
 

J !* ) )-$("&;D0
0
 	0

 0
 &0
 "0
  0
 90
 
Q0
r0   c                  &    e Zd ZddZedd       Zy)r3   c                z   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y r*   )_jobsr	   to_raw_response_wrapperrR   r]   rk   rp   ru   r-   jobss     r.   __init__zJobsWithRawResponse.__init__|  s    
&>>KK
 )@@MM
 %<<II
	 '>>KK
 ,CC
r0   c                @    t        | j                  j                        S r*   )r   r   r/   r,   s    r.   r/   zJobsWithRawResponse.checkpoints  s    )$***@*@AAr0   Nr   r&   rv   None)rv   r   r   r   r   r   r   r/   r   r0   r.   r3   r3   {  s    
& B Br0   r3   c                  &    e Zd ZddZedd       Zy)r   c                z   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y r*   )r   r	   async_to_raw_response_wrapperrR   r]   rk   rp   ru   r   s     r.   r   z!AsyncJobsWithRawResponse.__init__  s    
&DDKK
 )FFMM
 %BBII
	 'DDKK
 ,II
r0   c                @    t        | j                  j                        S r*   )r   r   r/   r,   s    r.   r/   z$AsyncJobsWithRawResponse.checkpoints  s    .tzz/E/EFFr0   Nr   r'   rv   r   )rv   r   r   r   r0   r.   r   r     s    
& G Gr0   r   c                  &    e Zd ZddZedd       Zy)r7   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r*   )r   r   rR   r]   rk   rp   ru   r   s     r.   r   z"JobsWithStreamingResponse.__init__  ss    
2KK
 5MM
 1II
	 3KK
 8
r0   c                @    t        | j                  j                        S r*   )r   r   r/   r,   s    r.   r/   z%JobsWithStreamingResponse.checkpoints  s    /

0F0FGGr0   Nr   )rv   r   r   r   r0   r.   r7   r7     s    
& H Hr0   r7   c                  &    e Zd ZddZedd       Zy)r   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r*   )r   r   rR   r]   rk   rp   ru   r   s     r.   r   z'AsyncJobsWithStreamingResponse.__init__  ss    
8KK
 ;MM
 7II
	 9KK
 >
r0   c                @    t        | j                  j                        S r*   )r   r   r/   r,   s    r.   r/   z*AsyncJobsWithStreamingResponse.checkpoints  s    4TZZ5K5KLLr0   Nr   )rv   r   r   r   r0   r.   r   r     s    
& M Mr0   r   )8
__future__r   typingr   r   r   typing_extensionsr   httpx r	   _typesr
   r   r   r   r   _utilsr   r   _compatr   r/   r   r   r   r   r   r   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r    types.fine_tuningr!   r"   r#   !types.fine_tuning.fine_tuning_jobr$   'types.fine_tuning.fine_tuning_job_eventr%   __all__r&   r'   r3   r   r7   r   r   r0   r.   <module>r      s    # , , %  ! @ @ (  < Z : ] \ ? J;
g
? g
T	g
  g
T	B B2G G2H H2M Mr0   