o
    ÔÙ¾iª  ã                   @   s6   d dl mZ d dlmZ d dlmZ G dd„ dƒZdS )é    )Úenvs)ÚForwardMode)Ú
ServerArgsc                   @   s:   e Zd Zedefdd„ƒZdefdd„Zdefdd„Zd	S )
ÚSchedulerRecvSkipperÚserver_argsc                 C   s   | j dkrd S t| ƒS )Né   )Úscheduler_recv_intervalr   )r   © r	   ú^/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/managers/scheduler_recv_skipper.pyÚmaybe_create   s   
z!SchedulerRecvSkipper.maybe_createc                 C   sP   |j rJ ‚d| _|j| _tj ¡ | _tj	tj
 ¡ tjtj ¡ d tj ¡ i| _d S )Nr   )Úenable_dp_attentionÚ_counterr   Ú
_thresholdr   Ú,SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DEFAULTÚgetÚ_default_weightr   ÚDECODEÚ+SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DECODEÚTARGET_VERIFYÚ2SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_TARGET_VERIFYÚ)SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_NONEÚ_weight_of_forward_mode)Úselfr   r	   r	   r
   Ú__init__   s   


ýzSchedulerRecvSkipper.__init__Úlast_forward_modec                 C   s<   d}| j  || j¡}|  j|7  _| j| jkrd| _d}|S )NFr   T)r   r   r   r   r   )r   r   Úshould_recvÚlast_weightr	   r	   r
   Úhandle   s   ÿzSchedulerRecvSkipper.handleN)	Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r	   r	   r	   r
   r      s
    r   N)Úsglang.srt.environr   Ú,sglang.srt.model_executor.forward_batch_infor   Úsglang.srt.server_argsr   r   r	   r	   r	   r
   Ú<module>   s    