Ë
    uPêj3!  ã                   ó�   — d dl mZ d dl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 d dlmZmZ d dlmZ  G d	„ d
ee«      Zy)é    )Ú	Coroutine)ÚAnyÚFinalÚcastN)ÚAsyncAzureOpenAIÚAsyncOpenAIÚAzureOpenAIÚOpenAI)Úverbose_logger)ÚBaseAzureLLM)ÚOpenAIFineTuningAPIÚ&_litellm_fine_tuning_job_from_response)ÚLiteLLMFineTuningJobc                   óì  — e Zd ZdZedeeef   ddfd„«       Zdede	e
z  defd„Zdede	e
z  defd	„Zdede	e
z  defd
„Z	 ddedededz  dedz  dedz  deej$                  z  dedz  dedz  dee	z  ez  e
z  dz  deeeeef   z  fd„Z	 ddedededz  dedz  dedz  deej$                  z  dedz  dedz  dee	z  ez  e
z  dz  deeeeef   z  fd„Z	 ddedededz  dedz  dedz  deej$                  z  dedz  dedz  dee	z  ez  e
z  dz  deeeeef   z  fd„Z	 	 	 	 ddedz  dedz  deej$                  z  dedz  dedz  dee	z  ez  e
z  dz  dededz  dedz  dee	z  ez  e
z  dz  fd„Zy)ÚAzureOpenAIFineTuningAPIzX
    AzureOpenAI methods to support fine tuning, inherits from OpenAIFineTuningAPI.
    Úcreate_fine_tuning_job_dataÚreturnNc                 ó´   — | j                  d«      xs i }t        |t        «      si }|j                  d«      € d|d<   || d<   t        j                  d«       yy)zb
        Azure requires trainingType in extra_body. Default to 1 (supervised) if omitted.
        Ú
extra_bodyÚtrainingTypeNé   z9Azure fine-tuning: defaulting trainingType=1 (supervised))ÚgetÚ
isinstanceÚdictr   Údebug)r   r   s     úk/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/azure/fine_tuning/handler.pyÚ_ensure_training_typez.AzureOpenAIFineTuningAPI._ensure_training_type   s`   € ð
 1×4Ñ4°\ÓBÒHÀbˆ
Ü˜*¤dÔ+ØˆJØ�>‰>˜.Ó)Ð1Ø)*ˆJ�~Ñ&Ø8BÐ'¨Ñ5Ü× Ñ Ð!\Õ]ð 2ó    Úopenai_clientc              ƒ   ó„   K  —  |j                   j                  j                  di |¤Žƒ d {  –—† }t        |d¬«      S 7 Œ­w)NT©Úis_azure© )Úfine_tuningÚjobsÚcreater   )Úselfr   r   Úresponses       r   Úacreate_fine_tuning_jobz0AzureOpenAIFineTuningAPI.acreate_fine_tuning_job"   sA   è ø€ ð
 !F × 9Ñ 9× >Ñ >× EÑ EÑ dÐHcÑ d×dˆÜ5°hÈÔNÐNð eúó   ‚*A ¬>­A Úfine_tuning_job_idc              ƒ   ó„   K  — |j                   j                  j                  |¬«      ƒ d {  –—† }t        |d¬«      S 7 Œ­w©N©r+   Tr!   )r$   r%   Úcancelr   ©r'   r+   r   r(   s       r   Úacancel_fine_tuning_jobz0AzureOpenAIFineTuningAPI.acancel_fine_tuning_job*   s>   è ø€ ð
 !.× 9Ñ 9× >Ñ >× EÑ EÐYkÐ EÓ l×lˆÜ5°hÈÔNÐNð múr*   c              ƒ   ó„   K  — |j                   j                  j                  |¬«      ƒ d {  –—† }t        |d¬«      S 7 Œ­wr-   )r$   r%   Úretriever   r0   s       r   Úaretrieve_fine_tuning_jobz2AzureOpenAIFineTuningAPI.aretrieve_fine_tuning_job2   s>   è ø€ ð
 !.× 9Ñ 9× >Ñ >× GÑ GÐ[mÐ GÓ n×nˆÜ5°hÈÔNÐNð oúr*   Ú	_is_asyncÚapi_keyÚapi_baseÚapi_versionÚtimeoutÚmax_retriesÚorganizationÚclientc
           
      óŽ  — | j                  |«       | 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¬«      S )	N©r6   r7   r9   r:   r;   r<   r5   r8   úoAzure OpenAI client is not initialized. Make sure api_key is passed or AZURE_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#   )r   Úget_openai_clientÚ
ValueErrorr   r   r   r)   r   r   r   r
   r$   r%   r&   r   )r'   r5   r   r6   r7   r8   r9   r:   r;   r<   r   r(   s               r   Úcreate_fine_tuning_jobz/AzureOpenAIFineTuningAPI.create_fine_tuning_job:   sò   € ð 	×"Ñ"Ð#>Ô?à]a×]sÑ]sØØØØ#Ø%ØØØ#ð ^tó 	^
ˆð Ð Üð Bóð ð ˜ÑÜ˜m¬kÔ;KÐ-LÔMÜ Øróð ð ×/Ñ/Ø,GØ+ð 0ó ð ô
 	×ÑÐAÐC^Ô_ØMœ$œv }Ó5×AÑA×FÑF×MÑMÑlÐPkÑlˆÜ5°hÈÔNÐNr   c
           
      ó@  — | j                  ||||||	||¬«      }
|
€t        d«      ‚|du r4t        |
t        t        f«      st        d«      ‚| j                  ||
¬«      S t        t        |
«      j                  j                  j                  |¬«      }t        |d¬«      S ©Nr>   r?   Tr@   )r+   r   r.   r!   )rA   rB   r   r   r   r1   r   r
   r$   r%   r/   r   ©r'   r5   r+   r6   r7   r8   r9   r:   r;   r<   r   r(   s               r   Úcancel_fine_tuning_jobz/AzureOpenAIFineTuningAPI.cancel_fine_tuning_jobe   sÑ   € ð ^b×]sÑ]sØØØØ#Ø%ØØØ#ð ^tó 	^
ˆð Ð Üð Bóð ð ˜ÑÜ˜m¬kÔ;KÐ-LÔMÜ Øróð ð ×/Ñ/Ø#5Ø+ð 0ó ð ô
 œv }Ó5×AÑA×FÑF×MÑMÐasÐMÓtˆÜ5°hÈÔNÐNr   c
           
      ó@  — | j                  ||||||	||¬«      }
|
€t        d«      ‚|du r4t        |
t        t        f«      st        d«      ‚| j                  ||
¬«      S t        t        |
«      j                  j                  j                  |¬«      }t        |d¬«      S rE   )rA   rB   r   r   r   r4   r   r
   r$   r%   r3   r   rF   s               r   Úretrieve_fine_tuning_jobz1AzureOpenAIFineTuningAPI.retrieve_fine_tuning_job�   sÑ   € ð ^b×]sÑ]sØØØØ#Ø%ØØØ#ð ^tó 	^
ˆð Ð Üð Bóð ð ˜ÑÜ˜m¬kÔ;KÐ-LÔMÜ Øróð ð ×1Ñ1Ø#5Ø+ð 2ó ð ô
 œv }Ó5×AÑA×FÑF×OÑOÐcuÐOÓvˆÜ5°hÈÔNÐNr   Úlitellm_paramsc
                 ó|   — t        |t        «      st        |t        «      rd }| j                  |	xs i |||||¬«      S )N)rJ   r6   r7   r8   r<   r5   )r   r
   r   Úget_azure_openai_client)
r'   r6   r7   r9   r:   r;   r<   r5   r8   rJ   s
             r   rA   z*AzureOpenAIFineTuningAPI.get_openai_clientµ   sK   € ô �fœfÔ%¬°F¼KÔ)HØˆFà×+Ñ+Ø)Ò/¨RØØØ#ØØð ,ó 
ð 	
r   )N)NFNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   Ústrr   r   r   r   r   r)   r1   r4   ÚboolÚfloatÚhttpxÚTimeoutÚintr
   r	   r   rC   rG   rI   rA   r#   r   r   r   r      s²  „ ñð ð
^¸4ÀÀSÀ¹>ð 
^Èdò 
^ó ð
^ðOà%)ðOð #Ð%5Ñ5ðOð 
ó	OðOàðOð #Ð%5Ñ5ðOð 
ó	OðOàðOð #Ð%5Ñ5ðOð 
ó	Oð$ PTñ)Oàð)Oð &*ð)Oð �t‘ð	)Oð
 ˜‘*ð)Oð ˜4‘Zð)Oð ˜Ÿ™Ñ&ð)Oð ˜4‘Zð)Oð ˜D‘jð)Oð ˜Ñ$ {Ñ2Ð5EÑEÈÑLð)Oð 
 	¨#¨sÐ4HÐ*HÑ IÑ	Ió)Oðj PTñ&Oàð&Oð  ð&Oð �t‘ð	&Oð
 ˜‘*ð&Oð ˜4‘Zð&Oð ˜Ÿ™Ñ&ð&Oð ˜4‘Zð&Oð ˜D‘jð&Oð ˜Ñ$ {Ñ2Ð5EÑEÈÑLð&Oð 
 	¨#¨sÐ4HÐ*HÑ IÑ	Ió&Oðd PTñ&Oàð&Oð  ð&Oð �t‘ð	&Oð
 ˜‘*ð&Oð ˜4‘Zð&Oð ˜Ÿ™Ñ&ð&Oð ˜4‘Zð&Oð ˜D‘jð&Oð ˜Ñ$ {Ñ2Ð5EÑEÈÑLð&Oð 
 	¨#¨sÐ4HÐ*HÑ IÑ	Ió&Oð^ PTØØ"&Ø&*ñ
à�t‘ð
ð ˜‘*ð
ð ˜Ÿ™Ñ&ð	
ð
 ˜4‘Zð
ð ˜D‘jð
ð ˜Ñ$ {Ñ2Ð5EÑEÈÑLð
ð ð
ð ˜4‘Zð
ð ˜t™ð
ð 
�+Ñ	 Ñ	+Ð.>Ñ	>ÀÑ	Eô
r   r   )Úcollections.abcr   Útypingr   r   r   rU   Úopenair   r   r	   r
   Úlitellm._loggingr   Úlitellm.llms.azure.common_utilsr   Ú'litellm.llms.openai.fine_tuning.handlerr   r   Úlitellm.types.utilsr   r   r#   r   r   ú<module>r_      s8   ðÝ %ß #Ñ #ã ß EÓ Eå +Ý 8÷õ 5ô|
Ð2°Lõ |
r   