o
    iO                    @   s^  d dl 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 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 e 3e j4dZ5G dd dZ6G dd  d Z7dS )!    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)jsonable_encoder)RequestOptions)'convert_and_respect_annotation_metadata)construct_type)BadRequestError)ForbiddenError)InternalServerError)NotFoundError)ServiceUnavailableError)UnauthorizedError   )CreateFinetunedModelResponse)DeleteFinetunedModelResponse)FinetunedModel)GetFinetunedModelResponse)ListEventsResponse)ListFinetunedModelsResponse)ListTrainingStepMetricsResponse)Settings)Status)UpdateFinetunedModelResponse.c                   @     e Zd ZdefddZddddddeje deje deje d	eje	 d
e
e f
ddZddded	eje	 d
e
e fddZddded	eje	 d
e
e fddZddded	eje	 d
e
e fddZedddedededeje d	eje	 d
e
e fddZddddddedeje deje deje d	eje	 d
e
e fddZdddddedeje deje d	eje	 d
e
e f
d d!ZdS )"RawFinetuningClientclient_wrapperc                C   
   || _ d S N_client_wrapperselfr     r'   b/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/cohere/finetuning/raw_client.py__init__#      
zRawFinetuningClient.__init__N	page_size
page_tokenorder_byrequest_optionsr,   r-   r.   r/   returnc             	   C   s*  | j jjdd|||d|d}zd|j  krdk r0n ntttt| d}t	||dW S |jd	krPt
t|jttjtj ttjtj | dd
|jdkrptt|jttjtj ttjtj | dd
|jdkrtt|jttjtj ttjtj | dd
|jdkrtt|jttjtj ttjtj | dd
|jdkrtt|jttjtj ttjtj | dd
|jdkrtt|jttjtj ttjtj | dd
| }W n ty	   t|jt|j|jdw t|jt|j|d)a  
        Returns a list of fine-tuned models that the user has access to.

        Parameters
        ----------
        page_size : typing.Optional[int]
            Maximum number of results to be returned by the server. If 0, defaults to
            50.

        page_token : typing.Optional[str]
            Request a specific page of the list results.

        order_by : typing.Optional[str]
            Comma separated list of fields. For example: "created_at,name". The default
            sorting order is ascending. To specify descending order for a field, append
            " desc" to the field name. For example: "created_at desc,name".

            Supported sorting fields:
              - created_at (default)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[ListFinetunedModelsResponse]
            A successful response.
        v1/finetuning/finetuned-modelsGETr,   r-   r.   methodparamsr/      ,  type_object_responsedata  headersbody          status_coderA   rB   )r$   httpx_clientrequestrI   typingcastr   r   jsonr   r   dictrA   OptionalAnyr   r   r   r   r   r   r   textr&   r,   r-   r.   r/   	_response_data_response_jsonr'   r'   r(   list_finetuned_models&   s   $
























z)RawFinetuningClient.list_finetuned_modelsr/   rK   c             	   C   s4  | j jjddt|tddddi|td}zd|j  kr d	k r5n ntt	t
t	| d
}t||dW S |jdkrUtt|jttjtj t
tjtj | d
d|jdkrutt|jttjtj t
tjtj | d
d|jdkrtt|jttjtj t
tjtj | d
d|jdkrtt|jttjtj t
tjtj | d
d|jdkrtt|jttjtj t
tjtj | d
d|jdkrtt|jttjtj t
tjtj | d
d| }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Creates a new fine-tuned model. The model will be trained on the dataset specified in the request body. The training process may take some time, and the model will be available once the training is complete.

        Parameters
        ----------
        request : FinetunedModel

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[CreateFinetunedModelResponse]
            A successful response.
        r1   POSTwriter;   
annotation	directioncontent-typeapplication/jsonr5   rN   rA   r/   omitr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r   r   OMITrI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   r&   rK   r/   rT   rU   rV   r'   r'   r(   create_finetuned_model   s   
























z*RawFinetuningClient.create_finetuned_modelidc             	   C   *  | j jjdt| d|d}zd|j  krdk r0n ntttt|	 d}t
||dW S |jdkrPtt|jttjtj ttjtj |	 dd	|jd
krptt|jttjtj ttjtj |	 dd	|jdkrtt|jttjtj ttjtj |	 dd	|jdkrtt|jttjtj ttjtj |	 dd	|jdkrtt|jttjtj ttjtj |	 dd	|jdkrtt|jttjtj ttjtj |	 dd	|	 }W n ty	   t|jt|j|jdw t|jt|j|d)ap  
        Retrieve a fine-tuned model by its ID.

        Parameters
        ----------
        id : str
            The fine-tuned model ID.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[GetFinetunedModelResponse]
            A successful response.
        v1/finetuning/finetuned-models/r2   r5   r/   r7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   r&   re   r/   rT   rU   rV   r'   r'   r(   get_finetuned_model  s   























z'RawFinetuningClient.get_finetuned_modelc             	   C   rf   )a  
        Deletes a fine-tuned model. The model will be removed from the system and will no longer be available for use.
        This operation is irreversible.

        Parameters
        ----------
        id : str
            The fine-tuned model ID.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[DeleteFinetunedModelResponse]
            A successful response.
        rg   DELETErh   r7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   ri   r'   r'   r(   delete_finetuned_model{  s   























z*RawFinetuningClient.delete_finetuned_modelstatusr/   namesettingsrn   c          	   	   C   sF  | j jjdt| d|t|tdd|dddi|td}zd	|j  kr)d
k r>n nt	t
tt
| d}t||dW S |jdkr^tt|jt	tjtj ttjtj | dd|jdkr~tt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd| }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Updates the fine-tuned model with the given ID. The model will be updated with the new settings and name provided in the request body.

        Parameters
        ----------
        id : str
            FinetunedModel ID.

        name : str
            FinetunedModel name (e.g. `foobar`).

        settings : Settings
            FinetunedModel settings such as dataset, hyperparameters...

        status : typing.Optional[Status]
            Current stage in the life-cycle of the fine-tuned model.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[UpdateFinetunedModelResponse]
            A successful response.
        rg   PATCHrZ   r[   ro   rp   rn   r^   r_   r`   r7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   r   r   rb   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   	r&   re   ro   rp   rn   r/   rT   rU   rV   r'   r'   r(   update_finetuned_model  s   "























z*RawFinetuningClient.update_finetuned_modelfinetuned_model_idc          	   	   C   s6  | j jjdt| dd|||d|d}zd|j  kr!dk r6n ntttt|	 d}t
||d	W S |jd
krVtt|jttjtj ttjtj |	 dd|jdkrvtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|	 }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Returns a list of events that occurred during the life-cycle of the fine-tuned model.
        The events are ordered by creation time, with the most recent event first.
        The list can be paginated using `page_size` and `page_token` parameters.

        Parameters
        ----------
        finetuned_model_id : str
            The parent fine-tuned model ID.

        page_size : typing.Optional[int]
            Maximum number of results to be returned by the server. If 0, defaults to
            50.

        page_token : typing.Optional[str]
            Request a specific page of the list results.

        order_by : typing.Optional[str]
            Comma separated list of fields. For example: "created_at,name". The default
            sorting order is ascending. To specify descending order for a field, append
            " desc" to the field name. For example: "created_at desc,name".

            Supported sorting fields:
              - created_at (default)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[ListEventsResponse]
            A successful response.
        rg   /eventsr2   r3   r4   r7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   	r&   ru   r,   r-   r.   r/   rT   rU   rV   r'   r'   r(   list_eventsh  s   *
























zRawFinetuningClient.list_eventsr,   r-   r/   c             	   C   s4  | j jjdt| dd||d|d}zd|j  kr dk r5n ntttt|	 d}t
||d	W S |jd
krUtt|jttjtj ttjtj |	 dd|jdkrutt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|jdkrtt|jttjtj ttjtj |	 dd|	 }W n ty   t|jt|j|jdw t|jt|j|d)aJ  
        Returns a list of metrics measured during the training of a fine-tuned model.
        The metrics are ordered by step number, with the most recent step first.
        The list can be paginated using `page_size` and `page_token` parameters.

        Parameters
        ----------
        finetuned_model_id : str
            The parent fine-tuned model ID.

        page_size : typing.Optional[int]
            Maximum number of results to be returned by the server. If 0, defaults to
            50.

        page_token : typing.Optional[str]
            Request a specific page of the list results.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[ListTrainingStepMetricsResponse]
            A successful response.
        rg   /training-step-metricsr2   r,   r-   r4   r7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   r&   ru   r,   r-   r/   rT   rU   rV   r'   r'   r(   list_training_step_metrics  s   !	























z.RawFinetuningClient.list_training_step_metrics)__name__
__module____qualname__r   r)   rL   rP   intstrr
   r   r   rW   r   r   rd   r   rj   r   rl   rb   r   r   r   rt   r   rx   r   r}   r'   r'   r'   r(   r   "       
 
n
j
p
 
 
r   c                   @   r   )"AsyncRawFinetuningClientr    c                C   r!   r"   r#   r%   r'   r'   r(   r)   j  r*   z!AsyncRawFinetuningClient.__init__Nr+   r,   r-   r.   r/   r0   c             	      s2  | j jjdd|||d|dI dH }zd|j  krdk r4n ntttt| d}t	||d	W S |jd
krTt
t|jttjtj ttjtj | dd|jdkrttt|jttjtj ttjtj | dd|jdkrtt|jttjtj ttjtj | dd|jdkrtt|jttjtj ttjtj | dd|jdkrtt|jttjtj ttjtj | dd|jdkrtt|jttjtj ttjtj | dd| }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Returns a list of fine-tuned models that the user has access to.

        Parameters
        ----------
        page_size : typing.Optional[int]
            Maximum number of results to be returned by the server. If 0, defaults to
            50.

        page_token : typing.Optional[str]
            Request a specific page of the list results.

        order_by : typing.Optional[str]
            Comma separated list of fields. For example: "created_at,name". The default
            sorting order is ascending. To specify descending order for a field, append
            " desc" to the field name. For example: "created_at desc,name".

            Supported sorting fields:
              - created_at (default)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[ListFinetunedModelsResponse]
            A successful response.
        r1   r2   r3   r4   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   rS   r'   r'   r(   rW   m  s   $
























z.AsyncRawFinetuningClient.list_finetuned_modelsrX   rK   c             	      s<  | j jjddt|tddddi|tdI dH }zd	|j  kr$d
k r9n ntt	t
t	| d}t||dW S |jdkrYtt|jttjtj t
tjtj | dd|jdkrytt|jttjtj t
tjtj | dd|jdkrtt|jttjtj t
tjtj | dd|jdkrtt|jttjtj t
tjtj | dd|jdkrtt|jttjtj t
tjtj | dd|jdkrtt|jttjtj t
tjtj | dd| }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Creates a new fine-tuned model. The model will be trained on the dataset specified in the request body. The training process may take some time, and the model will be available once the training is complete.

        Parameters
        ----------
        request : FinetunedModel

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[CreateFinetunedModelResponse]
            A successful response.
        r1   rY   rZ   r[   r^   r_   r`   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r   r   rb   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   rc   r'   r'   r(   rd     s   
























z/AsyncRawFinetuningClient.create_finetuned_modelre   c             	      2  | j jjdt| d|dI dH }zd|j  krdk r4n ntttt|	 d}t
||dW S |jd	krTtt|jttjtj ttjtj |	 dd
|jdkrttt|jttjtj ttjtj |	 dd
|jdkrtt|jttjtj ttjtj |	 dd
|jdkrtt|jttjtj ttjtj |	 dd
|jdkrtt|jttjtj ttjtj |	 dd
|jdkrtt|jttjtj ttjtj |	 dd
|	 }W n ty   t|jt|j|jdw t|jt|j|d)au  
        Retrieve a fine-tuned model by its ID.

        Parameters
        ----------
        id : str
            The fine-tuned model ID.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[GetFinetunedModelResponse]
            A successful response.
        rg   r2   rh   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   ri   r'   r'   r(   rj   Y  s   























z,AsyncRawFinetuningClient.get_finetuned_modelc             	      r   )a  
        Deletes a fine-tuned model. The model will be removed from the system and will no longer be available for use.
        This operation is irreversible.

        Parameters
        ----------
        id : str
            The fine-tuned model ID.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[DeleteFinetunedModelResponse]
            A successful response.
        rg   rk   rh   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   ri   r'   r'   r(   rl     s   























z/AsyncRawFinetuningClient.delete_finetuned_modelrm   ro   rp   rn   c          	   	      sP  | j jjdt| d|t|tdd|dddi|tdI d	H }zd
|j  kr-dk rBn nt	t
tt
| d}t||dW S |jdkrbtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd|jdkrtt|jt	tjtj ttjtj | dd| }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Updates the fine-tuned model with the given ID. The model will be updated with the new settings and name provided in the request body.

        Parameters
        ----------
        id : str
            FinetunedModel ID.

        name : str
            FinetunedModel name (e.g. `foobar`).

        settings : Settings
            FinetunedModel settings such as dataset, hyperparameters...

        status : typing.Optional[Status]
            Current stage in the life-cycle of the fine-tuned model.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[UpdateFinetunedModelResponse]
            A successful response.
        rg   rq   rZ   r[   rr   r^   r_   r`   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   r   r   rb   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   rs   r'   r'   r(   rt   ,  s   "






















z/AsyncRawFinetuningClient.update_finetuned_modelru   c          	   	      s>  | j jjdt| dd|||d|dI dH }zd|j  kr%dk r:n ntttt|	 d	}t
||d
W S |jdkrZtt|jttjtj ttjtj |	 d	d|jdkrztt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|	 }W n ty   t|jt|j|jdw t|jt|j|d)a  
        Returns a list of events that occurred during the life-cycle of the fine-tuned model.
        The events are ordered by creation time, with the most recent event first.
        The list can be paginated using `page_size` and `page_token` parameters.

        Parameters
        ----------
        finetuned_model_id : str
            The parent fine-tuned model ID.

        page_size : typing.Optional[int]
            Maximum number of results to be returned by the server. If 0, defaults to
            50.

        page_token : typing.Optional[str]
            Request a specific page of the list results.

        order_by : typing.Optional[str]
            Comma separated list of fields. For example: "created_at,name". The default
            sorting order is ascending. To specify descending order for a field, append
            " desc" to the field name. For example: "created_at desc,name".

            Supported sorting fields:
              - created_at (default)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[ListEventsResponse]
            A successful response.
        rg   rv   r2   r3   r4   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   rw   r'   r'   r(   rx     s   *
























z$AsyncRawFinetuningClient.list_eventsry   c             	      s<  | j jjdt| dd||d|dI dH }zd|j  kr$dk r9n ntttt|	 d	}t
||d
W S |jdkrYtt|jttjtj ttjtj |	 d	d|jdkrytt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|jdkrtt|jttjtj ttjtj |	 d	d|	 }W n ty   t|jt|j|jdw t|jt|j|d)aO  
        Returns a list of metrics measured during the training of a fine-tuned model.
        The metrics are ordered by step number, with the most recent step first.
        The list can be paginated using `page_size` and `page_token` parameters.

        Parameters
        ----------
        finetuned_model_id : str
            The parent fine-tuned model ID.

        page_size : typing.Optional[int]
            Maximum number of results to be returned by the server. If 0, defaults to
            50.

        page_token : typing.Optional[str]
            Request a specific page of the list results.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[ListTrainingStepMetricsResponse]
            A successful response.
        rg   rz   r2   r{   r4   Nr7   r8   r9   r<   r?   r@   rC   rD   rE   rF   rG   rH   )r$   rJ   rK   r	   rI   rL   rM   r   r   rN   r   r   rO   rA   rP   rQ   r   r   r   r   r   r   r   rR   r|   r'   r'   r(   r}   4  s   !	























z3AsyncRawFinetuningClient.list_training_step_metrics)r~   r   r   r   r)   rL   rP   r   r   r
   r   r   rW   r   r   rd   r   rj   r   rl   rb   r   r   r   rt   r   rx   r   r}   r'   r'   r'   r(   r   i  r   r   )8rL   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r   core.jsonable_encoderr	   core.request_optionsr
   core.serializationr   core.unchecked_base_modelr   errors.bad_request_errorr   errors.forbidden_errorr   errors.internal_server_errorr   errors.not_found_errorr    errors.service_unavailable_errorr   errors.unauthorized_errorr   0finetuning.types.create_finetuned_model_responser   0finetuning.types.delete_finetuned_model_responser    finetuning.types.finetuned_modelr   -finetuning.types.get_finetuned_model_responser   %finetuning.types.list_events_responser   /finetuning.types.list_finetuned_models_responser   4finetuning.types.list_training_step_metrics_responser   finetuning.types.settingsr   finetuning.types.statusr   0finetuning.types.update_finetuned_model_responser   rM   rQ   rb   r   r   r'   r'   r'   r(   <module>   sD         M