
    2ic                       d dl mZ d dlmZ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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l0m1Z1 ddl2m3Z3 ddl4m5Z5 ddgZ6 G d de!          Z7 G d de"          Z8 G d d          Z9 G d d          Z: G d d          Z; G d d          Z<dS )     )annotations)DictUnionIterableOptional)LiteralN   )_legacy_response)BodyOmitQueryHeadersNotGivenomit	not_given)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)Metadata)FineTuningJob)FineTuningJobEventJobs	AsyncJobsc                      e Zd ZdZed7d            Zed8d            Zed9d            Zeeeeeeed	d	d	e	d
d:d%Z
d	d	d	e	d&d;d(Zeeed	d	d	e	d)d<d0Zd	d	d	e	d&d;d1Zeed	d	d	e	d2d=d4Zd	d	d	e	d&d;d5Zd	d	d	e	d&d;d6Zd	S )>r*   IManage fine-tuning jobs to tailor a model to your specific training data.returnr   c                *    t          | j                  S r-   )r   _clientselfs    m/root/.openclaw/workspace/.venv-openai/lib/python3.11/site-packages/openai/resources/fine_tuning/jobs/jobs.pycheckpointszJobs.checkpoints(   s     4<(((    JobsWithRawResponsec                     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
        )r7   r2   s    r4   with_raw_responsezJobs.with_raw_response-   s     #4(((r6   JobsWithStreamingResponsec                     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
        )r;   r2   s    r4   with_streaming_responsezJobs.with_streaming_response7   s     )...r6   Nhyperparametersintegrationsmetadatamethodseedsuffixvalidation_fileextra_headersextra_query
extra_bodytimeoutmodelQUnion[str, Literal['babbage-002', 'davinci-002', 'gpt-3.5-turbo', 'gpt-4o-mini']]training_filestrr@   (job_create_params.Hyperparameters | OmitrA   8Optional[Iterable[job_create_params.Integration]] | OmitrB   Optional[Metadata] | OmitrC   job_create_params.Method | OmitrD   Optional[int] | OmitrE   Optional[str] | OmitrF   rG   Headers | NonerH   Query | NonerI   Body | NonerJ   'float | httpx.Timeout | None | NotGivenr(   c                   |                      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/model-optimization)

        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/model-optimization)
              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.

          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.

          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/model-optimization)
              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	rK   rM   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   bodyoptionscast_to)_postr   r%   JobCreateParamsr#   r(   r3   rK   rM   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   s                 r4   createzJobs.create@   s    B zz "%2'6$0 ($ $'6
 
 "1  )+Q[el   "'  
 
 	
r6   r]   fine_tuning_job_idc          	         |st          d|          |                     d| t          ||||          t                    S )  
        Get info about a fine-tuning job.

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

        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/r]   r`   ra   
ValueError_getr#   r(   r3   rf   rG   rH   rI   rJ   s         r4   retrievezJobs.retrieve   sn    2 " 	ywaswwxxxyy5!355(+Q[el   "  
 
 	
r6   afterlimitrB   rG   rH   rI   rJ   rr   
str | Omitrs   
int | OmitOptional[Dict[str, str]] | OmitSyncCursorPage[FineTuningJob]c                   |                      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.

          metadata: Optional metadata filter. To filter, use the syntax `metadata[k]=v`.
              Alternatively, set `metadata=null` to indicate no metadata.

          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[   )rr   rs   rB   rG   rH   rI   rJ   querypager`   rK   )_get_api_listr    r(   r#   r   r$   JobListParamsr3   rr   rs   rB   rG   rH   rI   rJ   s           r4   listz	Jobs.list   sx    @ !!.(+'%%!&!&$, 
 $1     # " 
 
 	
r6   c          	         |st          d|          |                     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
        ri   rj   /cancelr]   rk   rm   rb   r#   r(   ro   s         r4   cancelzJobs.cancel  q    . " 	ywaswwxxxzz<!3<<<(+Q[el   "  
 
 	
r6   rr   rs   rG   rH   rI   rJ   "SyncCursorPage[FineTuningJobEvent]c                   |st          d|          |                     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
        ri   rj   z/events)rr   rs   rz   r|   )rm   r~   r    r)   r#   r   r&   JobListEventsParamsr3   rf   rr   rs   rG   rH   rI   rJ   s           r4   list_eventszJobs.list_events/  s    : " 	ywaswwxxx!!<!3<<< 23(+'%%!&!&  +>    %! " 
 
 	
r6   c          	         |st          d|          |                     d| dt          ||||          t                    S )J  
        Pause 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
        ri   rj   /pauser]   rk   r   ro   s         r4   pausez
Jobs.pausea  sq    . " 	ywaswwxxxzz;!3;;;(+Q[el   "  
 
 	
r6   c          	         |st          d|          |                     d| dt          ||||          t                    S )K  
        Resume 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
        ri   rj   /resumer]   rk   r   ro   s         r4   resumezJobs.resume  r   r6   )r.   r   )r.   r7   )r.   r;   rK   rL   rM   rN   r@   rO   rA   rP   rB   rQ   rC   rR   rD   rS   rE   rT   rF   rT   rG   rU   rH   rV   rI   rW   rJ   rX   r.   r(   rf   rN   rG   rU   rH   rV   rI   rW   rJ   rX   r.   r(   )rr   rt   rs   ru   rB   rv   rG   rU   rH   rV   rI   rW   rJ   rX   r.   rw   )rf   rN   rr   rt   rs   ru   rG   rU   rH   rV   rI   rW   rJ   rX   r.   r   __name__
__module____qualname____doc__r   r5   r:   r>   r   r   re   rp   r   r   r   r   r    r6   r4   r*   r*   %   s       SS) ) ) _) ) ) ) _) / / / _/ EIQU.226%)'+04 )-$("&;D#u
 u
 u
 u
 u
 u
z )-$("&;D!
 !
 !
 !
 !
 !
L ! 48 )-$("&;D2
 2
 2
 2
 2
 2
t )-$("&;D
 
 
 
 
 
J !  )-$("&;D0
 0
 0
 0
 0
 0
p )-$("&;D
 
 
 
 
 
N )-$("&;D
 
 
 
 
 
 
 
r6   c                      e Zd ZdZed7d            Zed8d            Zed9d            Zeeeeeeed	d	d	e	d
d:d%Z
d	d	d	e	d&d;d(Zeeed	d	d	e	d)d<d0Zd	d	d	e	d&d;d1Zeed	d	d	e	d2d=d4Zd	d	d	e	d&d;d5Zd	d	d	e	d&d;d6Zd	S )>r+   r-   r.   r   c                *    t          | j                  S r0   )r   r1   r2   s    r4   r5   zAsyncJobs.checkpoints  s      ---r6   AsyncJobsWithRawResponsec                     t          |           S r9   )r   r2   s    r4   r:   zAsyncJobs.with_raw_response  s     (---r6   AsyncJobsWithStreamingResponsec                     t          |           S r=   )r   r2   s    r4   r>   z!AsyncJobs.with_streaming_response  s     .d333r6   Nr?   rK   rL   rM   rN   r@   rO   rA   rP   rB   rQ   rC   rR   rD   rS   rE   rT   rF   rG   rU   rH   rV   rI   rW   rJ   rX   r(   c                  K   |                      dt          |||||||||	d	t          j                   d{V t	          |
|||          t
                     d{V S )rZ   r[   r\   Nr]   r^   )rb   r   r%   rc   r#   r(   rd   s                 r4   re   zAsyncJobs.create  s      B ZZ,"%2'6$0 ($ $'6
 
 "1        )+Q[el   "'   
 
 
 
 
 
 
 
 	
r6   r]   rf   c          	        K   |st          d|          |                     d| t          ||||          t                     d{V S )rh   ri   rj   r]   rk   Nrl   ro   s         r4   rp   zAsyncJobs.retrieve6  s      2 " 	ywaswwxxxYY5!355(+Q[el   "  
 
 
 
 
 
 
 
 	
r6   rq   rr   rt   rs   ru   rv   =AsyncPaginator[FineTuningJob, AsyncCursorPage[FineTuningJob]]c                   |                      dt          t                   t          ||||t	          |||dt
          j                            t                    S ry   )r~   r!   r(   r#   r   r$   r   r   s           r4   r   zAsyncJobs.listY  sx    @ !! /(+'%%!&!&$, 
 $1     # " 
 
 	
r6   c          	        K   |st          d|          |                     d| dt          ||||          t                     d{V S )r   ri   rj   r   r]   rk   Nr   ro   s         r4   r   zAsyncJobs.cancel        . " 	ywaswwxxxZZ<!3<<<(+Q[el   "   
 
 
 
 
 
 
 
 	
r6   r   GAsyncPaginator[FineTuningJobEvent, AsyncCursorPage[FineTuningJobEvent]]c                   |st          d|          |                     d| dt          t                   t	          ||||t          ||dt          j                            t                    S r   )rm   r~   r!   r)   r#   r   r&   r   r   s           r4   r   zAsyncJobs.list_events  s    : " 	ywaswwxxx!!<!3<<< !34(+'%%!&!&  +>    %! " 
 
 	
r6   c          	        K   |st          d|          |                     d| dt          ||||          t                     d{V S )r   ri   rj   r   r]   rk   Nr   ro   s         r4   r   zAsyncJobs.pause  s      . " 	ywaswwxxxZZ;!3;;;(+Q[el   "   
 
 
 
 
 
 
 
 	
r6   c          	        K   |st          d|          |                     d| dt          ||||          t                     d{V S )r   ri   rj   r   r]   rk   Nr   ro   s         r4   r   zAsyncJobs.resume  r   r6   )r.   r   )r.   r   )r.   r   r   r   )rr   rt   rs   ru   rB   rv   rG   rU   rH   rV   rI   rW   rJ   rX   r.   r   )rf   rN   rr   rt   rs   ru   rG   rU   rH   rV   rI   rW   rJ   rX   r.   r   r   r   r6   r4   r+   r+     s       SS. . . _. . . . _. 4 4 4 _4 EIQU.226%)'+04 )-$("&;D#u
 u
 u
 u
 u
 u
z )-$("&;D!
 !
 !
 !
 !
 !
L ! 48 )-$("&;D2
 2
 2
 2
 2
 2
t )-$("&;D
 
 
 
 
 
J !  )-$("&;D0
 0
 0
 0
 0
 0
p )-$("&;D
 
 
 
 
 
N )-$("&;D
 
 
 
 
 
 
 
r6   c                  .    e Zd Zd	dZed
d            ZdS )r7   jobsr*   r.   Nonec                   || _         t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j	                  | _	        d S N)
_jobsr
   to_raw_response_wrapperre   rp   r   r   r   r   r   r3   r   s     r4   __init__zJobsWithRawResponse.__init__$  s    
&>K
 
 )@M
 
 %<I
 
	 '>K
 
 ,C
 
 &=J
 

 '>K
 
r6   r   c                4    t          | j        j                  S r0   )r   r   r5   r2   s    r4   r5   zJobsWithRawResponse.checkpoints=  s     *$**@AAAr6   Nr   r*   r.   r   )r.   r   r   r   r   r   r   r5   r   r6   r4   r7   r7   #  sN        
 
 
 
2 B B B _B B Br6   r7   c                  .    e Zd Zd	dZed
d            ZdS )r   r   r+   r.   r   c                   || _         t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j                  | _        t          j        |j	                  | _	        d S r   )
r   r
   async_to_raw_response_wrapperre   rp   r   r   r   r   r   r   s     r4   r   z!AsyncJobsWithRawResponse.__init__D  s    
&DK
 
 )FM
 
 %BI
 
	 'DK
 
 ,I
 
 &CJ
 

 'DK
 
r6   r   c                4    t          | j        j                  S r0   )r   r   r5   r2   s    r4   r5   z$AsyncJobsWithRawResponse.checkpoints]  s     /tz/EFFFr6   Nr   r+   r.   r   )r.   r   r   r   r6   r4   r   r   C  sN        
 
 
 
2 G G G _G G Gr6   r   c                  .    e Zd Zd	dZed
d            ZdS )r;   r   r*   r.   r   c                r   || _         t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        d S r   )	r   r   re   rp   r   r   r   r   r   r   s     r4   r   z"JobsWithStreamingResponse.__init__d  s    
2K
 
 5M
 
 1I
 
	 3K
 
 8
 
 2J
 

 3K
 
r6   r   c                4    t          | j        j                  S r0   )r   r   r5   r2   s    r4   r5   z%JobsWithStreamingResponse.checkpoints}  s     0
0FGGGr6   Nr   )r.   r   r   r   r6   r4   r;   r;   c  sN        
 
 
 
2 H H H _H H Hr6   r;   c                  .    e Zd Zd	dZed
d            ZdS )r   r   r+   r.   r   c                r   || _         t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        t          |j                  | _        d S r   )	r   r   re   rp   r   r   r   r   r   r   s     r4   r   z'AsyncJobsWithStreamingResponse.__init__  s    
8K
 
 ;M
 
 7I
 
	 9K
 
 >
 
 8J
 

 9K
 
r6   r   c                4    t          | j        j                  S r0   )r   r   r5   r2   s    r4   r5   z*AsyncJobsWithStreamingResponse.checkpoints  s     5TZ5KLLLr6   Nr   )r.   r   r   r   r6   r4   r   r     sN        
 
 
 
2 M M M _M M Mr6   r   )=
__future__r   typingr   r   r   r   typing_extensionsr   httpx r
   _typesr   r   r   r   r   r   r   _utilsr   r   _compatr   r5   r   r   r   r   r   r   	_resourcer   r   	_responser   r   
paginationr    r!   _base_clientr"   r#   types.fine_tuningr$   r%   r&   types.shared_params.metadatar'   !types.fine_tuning.fine_tuning_jobr(   'types.fine_tuning.fine_tuning_job_eventr)   __all__r*   r+   r7   r   r;   r   r   r6   r4   <module>r      s#   # " " " " " 2 2 2 2 2 2 2 2 2 2 2 2 % % % % % %  ! ! ! ! ! ! L L L L L L L L L L L L L L L L L L = = = = = = = = ' ' ' ' ' '                < ; ; ; ; ; ; ; Z Z Z Z Z Z Z Z : : : : : : : :        ] \ \ \ \ \ \ \ \ \ 5 5 5 5 5 5 ? ? ? ? ? ? J J J J J J;
|
 |
 |
 |
 |
? |
 |
 |
~|
 |
 |
 |
 |
  |
 |
 |
~B B B B B B B B@G G G G G G G G@H H H H H H H H@M M M M M M M M M Mr6   