
    h)                     l    d dl mZmZmZmZmZ d dlZd dlmZm	Z	m
Z
mZ d dlmZ d dlmZ  G d d      Zy)    )Any	CoroutineOptionalUnioncastN)AsyncAzureOpenAIAsyncOpenAIAzureOpenAIOpenAI)verbose_logger)LiteLLMFineTuningJobc                       e Zd ZdZd fdZ	 	 	 	 ddee   dee   deee	j                  f   dee   dee   d	eeeeeef      d
edee   dee   deeeeeef      fdZdedeeef   defdZ	 dd
ededee   dee   dee   deee	j                  f   dee   dee   d	eeeeeef      deeeeeef   f   fdZdedeeef   defdZ	 dd
ededee   dee   dee   deee	j                  f   dee   dee   d	eeeeeef      deeeeeef   f   fdZ	 	 ddeeef   dee   dee   fdZ	 	 	 dd
edee   dee   dee   deee	j                  f   dee   dee   d	eeeeeef      dee   dee   fdZdedeeef   defdZ	 dd
ededee   dee   dee   deee	j                  f   dee   dee   d	eeeeeef      deeeeeef   f   fdZ xZS ) OpenAIFineTuningAPIz/
    OpenAI methods to support for batches
    returnc                 "    t         |           y N)super__init__)self	__class__s    c/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/openai/fine_tuning/handler.pyr   zOpenAIFineTuningAPI.__init__   s        api_keyapi_basetimeoutmax_retriesorganizationclient	_is_asyncapi_versionlitellm_paramsc
                     t               }
d }|]i }|
j                         D ]*  \  }}|dk(  s
|dk(  s|dk(  r|dk(  r|||d<   #|&|||<   , |du rt        di |}|S t        di |}|S |}|S )Nr   r   r   r   base_urlT )localsitemsr	   r   )r   r   r   r   r   r   r   r   r    r!   received_argsopenai_clientdatakvs                  r   get_openai_clientz%OpenAIFineTuningAPI.get_openai_client   s       	 >D%++-1;!x-13C*_'(D$]DG . D  + 3d 3 	 !'  #Mr   create_fine_tuning_job_datar(   c                    K    |j                   j                  j                  di | d {   }t        di |j	                         S 7 w)Nr$   )fine_tuningjobscreater   
model_dump)r   r-   r(   responses       r   acreate_fine_tuning_jobz+OpenAIFineTuningAPI.acreate_fine_tuning_job6   sQ     
 ?2277>> 
)
 
 $<h&9&9&;<<	
   *AA
Ac
           
         | j                  ||||||	||      }
|
t        d      |du r4t        |
t        t        f      st        d      | j                  ||
      S t        j                  d|        t        t        |
      j                  j                  j                  di |}t        di |j                         S )Nr   r   r   r   r   r   r   r    jOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment.T\OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client.)r-   r(   z"creating fine tuning job, args= %sr$   )r,   
ValueError
isinstancer	   r   r4   r   debugr   r   r/   r0   r1   r   r2   )r   r   r-   r   r   r    r   r   r   r   r(   r3   s               r   create_fine_tuning_jobz*OpenAIFineTuningAPI.create_fine_tuning_jobA   s      ""#%# # 	
 	  |  mk;K-LM r  //,G+ 0   	02M	
 G4.::??FF 
)
 $<h&9&9&;<<r   fine_tuning_job_idc                    K   |j                   j                  j                  |       d {   }t        di |j	                         S 7 wNr>   r$   )r/   r0   cancelr   r2   r   r>   r(   r3   s       r   acancel_fine_tuning_jobz+OpenAIFineTuningAPI.acancel_fine_tuning_jobq   sO     
 '2277>>1 ? 
 
 $<h&9&9&;<<
r5   c
           
         | j                  ||||||	||      }
|
t        d      |du r4t        |
t        t        f      st        d      | j                  ||
      S t        j                  d|       t        t        |
      j                  j                  j                  |      }t        di |j                         S )	Nr7   r8   Tr9   r>   r(   z#canceling fine tuning job, args= %srA   r$   )r,   r:   r;   r	   r   rD   r   r<   r   r   r/   r0   rB   r   r2   r   r   r>   r   r   r    r   r   r   r   r(   r3   s               r   cancel_fine_tuning_jobz*OpenAIFineTuningAPI.cancel_fine_tuning_job{   s      ""#%# # 	
 	  |  mk;K-LM r  //#5+ 0   	BDVW.::??FF1 G 
 $<h&9&9&;<<r   afterlimitc                 p   K   |j                   j                  j                  ||       d {   }|S 7 w)NrI   rJ   )r/   r0   list)r   r(   rI   rJ   r3   s        r   alist_fine_tuning_jobsz*OpenAIFineTuningAPI.alist_fine_tuning_jobs   s8      '2277<<5PU<VV Ws   +646c           
      @   | j                  ||||||||      }|t        d      |du r5t        |t        t        f      st        d      | j                  |	|
|      S t        j                  d|	|
       |j                  j                  j                  |	|
      }|S )Nr7   r8   Tr9   )rI   rJ   r(   z*list fine tuning job, after= %s, limit= %srL   )r,   r:   r;   r	   r   rN   r   r<   r/   r0   rM   )r   r   r   r   r    r   r   r   r   rI   rJ   r(   r3   s                r   list_fine_tuning_jobsz)OpenAIFineTuningAPI.list_fine_tuning_jobs   s    " ""#%# # 	
 	  |  mk;K-LM r  ..+ /  
 	I5RWX ,,1166U%6Pr   c                    K   |j                   j                  j                  |       d {   }t        di |j	                         S 7 wr@   )r/   r0   retriever   r2   rC   s       r   aretrieve_fine_tuning_jobz-OpenAIFineTuningAPI.aretrieve_fine_tuning_job   sP     
 '2277@@1 A 
 
 $<h&9&9&;<<
r5   c
           
      x   | j                  ||||||	||      }
|
t        d      |du r.t        |
t              st        d      | j	                  ||
      S t        j                  d|       t        t        |
      j                  j                  j                  |      }t        di |j                         S )	Nr7   r8   Tr9   rF   z"retrieving fine tuning job, id= %srA   r$   )r,   r:   r;   r	   rS   r   r<   r   r   r/   r0   rR   r   r2   rG   s               r   retrieve_fine_tuning_jobz,OpenAIFineTuningAPI.retrieve_fine_tuning_job   s      ""#%# # 	
 	  |  m[9 r  11#5+ 2   	ACUV.::??HH1 I 
 $<h&9&9&;<<r   )r   N)NFNNr   )NN)NNN)__name__
__module____qualname____doc__r   r   strr   floathttpxTimeoutintr   r	   r
   r   booldictr,   r   r4   r   r   r=   rD   rH   rN   rP   rS   rU   __classcell__)r   s   @r   r   r   
   s    %))-"#" 3-" uemm+,	"
 c]" sm" &+{4DDE
" " c]" !" 
%[:JKL	M"H	=%)	= [*::;	= 
		=. .=.= &*.= #	.=
 3-.= c].= uemm+,.= c].= sm.= &+{4DDE
.= 
#YsC9M/M%NN	O.=`== [*::;= 
	=, ,=,=  ,= #	,=
 3-,= c],= uemm+,,= c],= sm,= &+{4DDE
,= 
#YsC9M/M%NN	O,=b  $#	[*::; } }	( ##,, #, 3-	,
 c], uemm+,, c], sm, &+{4DDE
, }, },\== [*::;= 
	=, ,=,=  ,= #	,=
 3-,= c],= uemm+,,= c],= sm,= &+{4DDE
,= 
#YsC9M/M%NN	O,=r   r   )typingr   r   r   r   r   r\   openair   r	   r
   r   litellm._loggingr   litellm.types.utilsr   r   r$   r   r   <module>rf      s&    8 8  E E + 4L= L=r   