o
    ÔÙ¾i‡  ã                   @  sf   d dl mZ d dlZd dlmZmZ d dlmZ er d dlm	Z	 G dd„ de
ejƒZG dd	„ d	ƒZdS )
é    )ÚannotationsN)ÚTYPE_CHECKINGÚOptional)Ú
DllmConfig)ÚReqc                   @  s   e Zd ZdZdZdZdZdS )ÚDllmReqPhaseÚstaging_prefillÚstaging_decodeÚincoming_prefillÚincoming_decodeN)Ú__name__Ú
__module__Ú__qualname__ÚSTAGING_PREFILLÚSTAGING_DECODEÚINCOMING_PREFILLÚINCOMING_DECODE© r   r   úM/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/dllm/mixin/req.pyr      s
    r   c                   @  s>   e Zd Zddd„Zdd	d
„Zddd„Zddd„Zddd„ZdS )ÚReqDllmMixinÚselfr   Údllm_configr   c                 C  sP   d | _ g | _d| _|| _| jd ur&t| jƒ| jjk r tj| _ d S tj	| _ d S d S )Nr   )
Ú
dllm_phaseÚdllm_idsÚdllm_block_offsetr   ÚlenÚorigin_input_idsÚ
block_sizer   r   r   )r   r   r   r   r   Úinit_diffusion_llm   s   
üzReqDllmMixin.init_diffusion_llmÚreturnÚboolc                 C  s
   | j d uS ©N)r   ©r   r   r   r   Úis_dllm    s   
zReqDllmMixin.is_dllmc                 C  s   | j tjtjfv S r!   )r   r   r   r   r"   r   r   r   Úis_dllm_prefill#   s   þzReqDllmMixin.is_dllm_prefillc                 C  s^   t | jƒ}|| jj }t | jƒ|k rd S | j||… }| jj|v}|r)tj| _d S tj	| _d S r!   )
r   Úprefix_indicesr   r   Úfill_idsÚmask_idr   r   r   r   )r   Úprefix_lengthÚmin_required_lengthÚinput_blockÚis_prefill_phaser   r   r   Údetermine_dllm_phase)   s   
z!ReqDllmMixin.determine_dllm_phasec                 C  s\   | j s| j| jjg| jj  | _ n|  j| jj7  _|  j | jjg| jj 7  _ | j | _d S r!   )r   r   r   r'   r   r   r&   r"   r   r   r   Ú_init_fill_ids_for_dllm9   s   ÿÿz$ReqDllmMixin._init_fill_ids_for_dllmN)r   r   r   r   )r   r   r   r    )r   r   )r   r   r   r   r#   r$   r,   r-   r   r   r   r   r      s    



r   )Ú
__future__r   ÚenumÚtypingr   r   Úsglang.srt.dllm.configr   Ú"sglang.srt.managers.schedule_batchr   ÚstrÚEnumr   r   r   r   r   r   Ú<module>   s    