§
    &`ƒiæ  ã                   ó   — d dl Z d dlZd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZ erd dlmZ d dlmZ  ej        e¦  «        Ze G d„ d¦  «        ¦   «         Z G d„ d	¦  «        Ze G d
„ d¦  «        ¦   «         ZdS )é    N)Ú	dataclassÚfield)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚOptionalÚTupleÚTypeÚUnion)ÚNodeModelDownloadable)Ú	LLMConfigc                   óº   — e Zd ZU dZdZed         ed<   	 dZee         ed<   	 dZ	ee
eef                  ed<   	  ee¬¦  «        Ze
eef         ed<   	 d	Zeed
<   dS )ÚCallbackCtxzj
    Context object passed to all callback hooks.
    Callbacks can read and modify fields as needed.
    Nr   Úworker_node_download_modelÚplacement_groupÚruntime_env©Údefault_factoryÚcustom_dataTÚrun_init_node)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   Ú__annotations__r   r   r   r   Ústrr   Údictr   r   Úbool© ó    ú{/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/llm/_internal/common/callbacks/base.pyr   r      sº   € € € € € € ðð ð
 EIÐ Ð)@Ô AÐHÐHÑHðð &*€OX˜c”]Ð)Ð)Ñ)ðAà,0€K˜$˜s C˜xœ.Ô)Ð0Ð0Ñ0ðHà"' %¸Ð"=Ñ"=Ô"=€Kc˜3h”Ð=Ð=Ñ=ðNà€M4ÐÐÑð#ð #r!   r   c            
       ó´   — e Zd ZdZ	 	 ddddedeeeef                  fd„Z	dd
„Z
dd„Zdd„Zded	eeef         fd„Zdeded	dfd„Zded	dfd„Zded	dfd„ZdS )ÚCallbackBasez·Base class for custom initialization implementations.

    This class defines the interface for custom initialization logic
    for LLMEngine to be called in node_initialization.
    TNÚ
llm_configr   Úraise_error_on_callbackÚ
ctx_kwargsc                 óZ   — || _         || _        || _        |pi }t          di |¤Ž| _        d S )Nr    )r&   Úkwargsr%   r   Úctx)Úselfr%   r&   r'   r)   s        r"   Ú__init__zCallbackBase.__init__.   s?   € ð (?ˆÔ$ØˆŒØ$ˆŒð  Ð% 2ˆ
ÝÐ,Ð, Ð,Ð,ˆŒˆˆr!   Úreturnc              ƒ   ó
   K  — dS )z)Called before node initialization begins.Nr    ©r+   s    r"   Úon_before_node_initz CallbackBase.on_before_node_init=   ó   è è € àˆr!   c              ƒ   ó
   K  — dS )z+Called after node initialization completes.Nr    r/   s    r"   Úon_after_node_initzCallbackBase.on_after_node_initA   r1   r!   c                 ó   — dS )z6Called before model files are downloaded on each node.Nr    r/   s    r"   Ú*on_before_download_model_files_distributedz7CallbackBase.on_before_download_model_files_distributedE   s   € àˆr!   Úmethod_namec                 óÖ   — t          | |¦  «        s(t          dt          | ¦  «        j        › d|› d¦  «        ‚t	          | |¦  «        t          j        t	          | |¦  «        ¦  «        fS )zGet a callback method.z	Callback z does not have method 'ú')ÚhasattrÚAttributeErrorÚtyper   ÚgetattrÚinspectÚiscoroutinefunction)r+   r6   s     r"   Ú_get_methodzCallbackBase._get_methodI   sz   € åt˜[Ñ)Ô)ð 	Ý ØVD ™JœJÔ/ÐVÐVÈÐVÐVÐVñô ð õ t˜[Ñ)Ô)­7Ô+FÝD˜+Ñ&Ô&ñ,
ô ,
ð 
ð 	
r!   Úec           
      ó  — | j         r8t          d|› dt          | ¦  «        j        › dt	          |¦  «        › ¦  «        |‚t
                               d|› dt          | ¦  «        j        › dt	          |¦  «        › ¦  «         d S )NzError running callback method 'z' on z: )r&   Ú	Exceptionr;   r   r   ÚloggerÚerror)r+   r6   r@   s      r"   Ú_handle_callback_errorz#CallbackBase._handle_callback_errorS   s    € ØÔ'ð 	ÝØc°+ÐcÐcÅDÈÁJÄJÔDWÐcÐcÕ[^Ð_`Ñ[aÔ[aÐcÐcñô àðõ LŠLØc°+ÐcÐcÅDÈÁJÄJÔDWÐcÐcÕ[^Ð_`Ñ[aÔ[aÐcÐcñô ð ð ð r!   c              ƒ   óÔ   K  — |                       |¦  «        \  }}	 |r |¦   «         ƒ d{V —† dS  |¦   «          dS # t          $ r!}|                      ||¦  «         Y d}~dS d}~ww xY w)zÀRun a callback method either synchronously or asynchronously.

        Args:
            method_name: The name of the method to call on the callback

        Returns:
            None
        N)r?   rB   rE   )r+   r6   ÚmethodÚis_asyncr@   s        r"   Úrun_callbackzCallbackBase.run_callback]   sž   è è € ð  ×+Ò+¨KÑ8Ô8Ñˆð	8Øð Øf‘h”hà‘”øÝð 	8ð 	8ð 	8Ø×'Ò'¨°QÑ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7øøøøð	8øøøs   œ< °
< ¼
A'ÁA"Á"A'c                 ól  — |                       |¦  «        \  }}	 |r`	 t          j        ¦   «         }|                      |¦   «         ¦  «         dS # t          $ r  t          j         |¦   «         ¦  «         Y dS w xY w |¦   «          dS # t          $ r!}|                      ||¦  «         Y d}~dS d}~ww xY w)z¥Run a callback method synchronously

        Args:
            method_name: The name of the method to call on the callback
        Returns:
            None
        N)r?   ÚasyncioÚget_running_loopÚrun_until_completeÚRuntimeErrorÚrunrB   rE   )r+   r6   rG   rH   Úloopr@   s         r"   Úrun_callback_synczCallbackBase.run_callback_syncp   sî   € ð  ×+Ò+¨KÑ8Ô8Ñˆð
	8Øð ð*Ý"Ô3Ñ5Ô5DØ×+Ò+¨F¨F©H¬HÑ5Ô5Ð5Ð5Ð5øÝ#ð *ð *ð *Ý”K  ¡¤Ñ)Ô)Ð)Ð)Ð)Ð)ð*øøøð ‘”øÝð 	8ð 	8ð 	8Ø×'Ò'¨°QÑ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7øøøøð	8øøøs4   šB 0A Á&A9Á5B Á8A9Á9B Â
B3ÂB.Â.B3)TN)r-   N)r   r   r   r   r   r	   r   r   r   r,   r0   r3   r5   r
   r   r?   rB   rE   rI   rQ   r    r!   r"   r$   r$   '   s<  € € € € € ðð ð )-Ø/3ð	-ð -àð-ð "&ð-ð ˜T # s (œ^Ô,ð	-ð -ð -ð -ðð ð ð ðð ð ð ðð ð ð ð
 sð 
¨u°X¸t°^Ô/Dð 
ð 
ð 
ð 
ð°#ð ¸)ð Èð ð ð ð ð8¨cð 8°dð 8ð 8ð 8ð 8ð&8¨Sð 8°Tð 8ð 8ð 8ð 8ð 8ð 8r!   r$   c                   ó‚   — e Zd ZU dZeZeeee         f         e	d<   	  e
e¬¦  «        Zeeef         e	d<   	 dZee	d<   dS )ÚCallbackConfigz6Configuration for the callback to be used in LLMConfigÚcallback_classr   Úcallback_kwargsTr&   N)r   r   r   r   r$   rT   r   r   r   r   r   r   rU   r   r   r&   r   r    r!   r"   rS   rS   ‡   ss   € € € € € € à@Ð@à5A€NE˜#˜t LÔ1Ð1Ô2ÐAÐAÑAØIØ&+ e¸DÐ&AÑ&AÔ&A€OT˜#˜s˜(”^ÐAÐAÑAØJØ$(Ð˜TÐ(Ð(Ñ(Ø?Ð?r!   rS   )rK   r=   ÚloggingÚdataclassesr   r   Útypingr   r   r   r   r	   r
   r   r   Ú-ray.llm._internal.common.utils.download_utilsr   Ú/ray.llm._internal.serve.core.configs.llm_configr   Ú	getLoggerr   rC   r   r$   rS   r    r!   r"   ú<module>r\      s`  ðØ €€€Ø €€€Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sàð JØSÐSÐSÐSÐSÐSØIÐIÐIÐIÐIÐIà	ˆÔ	˜8Ñ	$Ô	$€ð ð#ð #ð #ð #ð #ñ #ô #ñ „ð#ð0]8ð ]8ð ]8ð ]8ð ]8ñ ]8ô ]8ð ]8ð@ ð@ð @ð @ð @ð @ñ @ô @ñ „ð@ð @ð @r!   