
    ^h                     `    S SK JrJrJrJr  S SKrS SKJrJr  S SK	J
r
  S SKJr   " S S5      rg)    )Any	CoroutineOptionalUnionN)AsyncOpenAIOpenAI)FineTuningJob)verbose_loggerc                     ^  \ rS rSrSrSU 4S jjr  SS\\   S\\   S\\	\
R                  4   S\\   S	\\   S
\\\\4      S\S\\\\4      4S jjrS\S\S\4S jr SS\S\S\\   S\\   S\\	\
R                  4   S\\   S	\\   S
\\\\4      S\\\\\\4   4   4S jjrS\S\S\4S jr SS\S\S\\   S\\   S\\	\
R                  4   S\\   S	\\   S
\\\\4      4S jjr  SS\S\\   S\\   4S jjr   SS\S\\   S\\   S\\	\
R                  4   S\\   S	\\   S
\\\\4      S\\   S\\   4S jjrSrU =r$ )OpenAIFineTuningAPI
   z'
OpenAI methods to support for batches
returnc                 "   > [         TU ]  5         g N)super__init__)self	__class__s    a/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/openai/fine_tuning/handler.pyr   OpenAIFineTuningAPI.__init__   s        api_keyapi_basetimeoutmax_retriesorganizationclient	_is_asyncc                     [        5       nS n	Ucg  0 n
UR                  5        H1  u  pUS:X  d  US:X  d  US:X  a  M  US:X  a	  Ub  XS'   M(  Uc  M-  XU'   M3     USL a  [        S0 U
D6n	U	$ [        S0 U
D6n	 U	$ Un	U	$ )Nr   r   r   r   base_urlT )localsitemsr   r   )r   r   r   r   r   r   r   r   received_argsopenai_clientdatakvs                r   get_openai_client%OpenAIFineTuningAPI.get_openai_client   s     >B>D%++-;!x-13C*_'($]G . D  + 3d 3 	 !'  #Mr   create_fine_tuning_job_datar%   c                 n   #    UR                   R                  R                  " S0 UD6I S h  vN nU$  N7f)Nr!   )fine_tuningjobscreate)r   r+   r%   responses       r   acreate_fine_tuning_job+OpenAIFineTuningAPI.acreate_fine_tuning_job0   s<     
 '2277>> 
)
 
 
s   *535c	           
      0   U R                  UUUUUUUS9n	U	c  [        S5      eUSL a0  [        U	[        5      (       d  [        S5      eU R	                  UU	S9$ [
        R                  " SU5        U	R                  R                  R                  " S0 UD6n
U
$ )N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   r1   r
   debugr-   r.   r/   )r   r   r+   r   r   r   r   r   r   r%   r0   s              r   create_fine_tuning_job*OpenAIFineTuningAPI.create_fine_tuning_job:   s     ?C>T>T#% ?U ?
  |  m[99 r  //,G+ 0   	02M	
 !,,1188W;VWr   fine_tuning_job_idc                 h   #    UR                   R                  R                  US9I S h  vN nU$  N7f)Nr<   )r-   r.   cancel)r   r<   r%   r0   s       r   acancel_fine_tuning_job+OpenAIFineTuningAPI.acancel_fine_tuning_jobb   s<     
 '2277>>1 ? 
 
 
   '202c	           
      *   U R                  UUUUUUUS9n	U	c  [        S5      eUSL a0  [        U	[        5      (       d  [        S5      eU R	                  UU	S9$ [
        R                  " SU5        U	R                  R                  R                  US9n
U
$ )Nr4   r5   Tr6   )r<   r%   z#canceling fine tuning job, args= %sr>   )
r)   r7   r8   r   r@   r
   r9   r-   r.   r?   )r   r   r<   r   r   r   r   r   r   r%   r0   s              r   cancel_fine_tuning_job*OpenAIFineTuningAPI.cancel_fine_tuning_jobl   s     ?C>T>T#% ?U ?
  |  m[99 r  //#5+ 0   	BDVW ,,11881 9 
 r   afterlimitc                 h   #    UR                   R                  R                  X#S9I S h  vN nU$  N7f)NrF   rG   )r-   r.   list)r   r%   rF   rG   r0   s        r   alist_fine_tuning_jobs*OpenAIFineTuningAPI.alist_fine_tuning_jobs   s4      '2277<<5<VV WrB   c
           
      ,   U R                  UUUUUUUS9n
U
c  [        S5      eUSL a1  [        U
[        5      (       d  [        S5      eU R	                  UU	U
S9$ [
        R                  " SX5        U
R                  R                  R                  XS9nU$ )Nr4   r5   Tr6   )rF   rG   r%   z*list fine tuning job, after= %s, limit= %srI   )
r)   r7   r8   r   rK   r
   r9   r-   r.   rJ   )r   r   r   r   r   r   r   r   rF   rG   r%   r0   s               r   list_fine_tuning_jobs)OpenAIFineTuningAPI.list_fine_tuning_jobs   s     ?C>T>T#% ?U ?
  |  m[99 r  ..+ /  
 	I5X ,,1166U6Pr   r!   )r   N)NFr   )NN)NNN)__name__
__module____qualname____firstlineno____doc__r   r   strr   floathttpxTimeoutintr   r   boolr)   dictr	   r1   r   r   r:   r@   rD   rK   rN   __static_attributes____classcell__)r   s   @r   r   r   
   s    8<# 3- uemm+,	
 c] sm v{234  
%+,	-<%) # 
	& 8<&& &*& #	&
 3-& uemm+,& c]& sm& v{234& 
}iS-(?@@	A&P # 
	& 8<&&  & #	&
 3-& uemm+,& c]& sm& v{234&V  $#	" } }	" 8<##'' #' 3-	'
 uemm+,' c]' sm' v{234' }' }' 'r   r   )typingr   r   r   r   rW   openair   r   openai.types.fine_tuningr	   litellm._loggingr
   r   r!   r   r   <module>rb      s#    2 2  & 2 +z zr   