o
    پic                     @   sh   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZ g dZG dd deZdS )    N)kill_process_tree)DEFAULT_DRAFT_MODEL_EAGLEDEFAULT_TARGET_MODEL_EAGLE!DEFAULT_TIMEOUT_FOR_SERVER_LAUNCHDEFAULT_URL_FOR_TESTCustomTestCasepopen_launch_server)z[INST] <<SYS>>\nYou are a helpful assistant.\n<</SYS>>\nToday is a sunny day and I like[/INST][INST] <<SYS>>\nYou are a helpful assistant.\n<</SYS>>\nWhat are the mental triggers in Jeff Walker's Product Launch Formula and "Launch" book?[/INST]zt[INST] <<SYS>>\nYou are a helpful assistant.\n<</SYS>>\nSummarize Russell Brunson's Perfect Webinar Script...[/INST]zK[INST] <<SYS>>\nYou are a helpful assistant.\n<</SYS>>\nwho are you?[/INST]zR[INST] <<SYS>>\nYou are a helpful assistant.\n<</SYS>>\nwhere are you from?[/INST]c                   @   s\   e Zd ZeZeZdZdZdZ	dZ
dZg Zedd Zedd	 Zd
d Zdd Zdd ZdS )EagleServerBaseEAGLE      @   ffffff?c                 C   sb   t | _t| j| jtd| j d| j d| j d| j d| j	 d| j
 g| j d| _d S )Nz--speculative-algorithm=z--speculative-draft-model-path=z--speculative-num-steps=z--speculative-eagle-topk=z--speculative-num-draft-tokens=z--mem-fraction-static=)timeout
other_args)r   base_urlr   target_modelr   	spec_algodraft_model
spec_steps	spec_topkspec_tokensmem_fraction_static
extra_argsprocesscls r   ]/home/ubuntu/.local/lib/python3.10/site-packages/sglang/test/server_fixtures/eagle_fixture.py
setUpClass$   s   





zEagleServerBase.setUpClassc                 C   s   t | jj d S )N)r   r   pidr   r   r   r   tearDownClass6   s   zEagleServerBase.tearDownClassc                 C   sV   t tdd tD ]}| jd }|dddd}tj||d}|jdks(J qd S )	Nr      	/generate   temperaturemax_new_tokens)textsampling_paramsjson   )	timesleeprandomuniformPROMPTSr   requestspoststatus_code)selfprompturldataresponser   r   r   send_request:   s   
zEagleServerBase.send_requestc                 C   s|   t D ]9}z!ttdd | jd }d|dddd}tj||dd	 W q ty; } z
t	| W Y d }~qd }~ww d S )
Nr   r"   r#   baser$   r%   )modelr(   r)      )r+   r   )
r1   r-   r.   r/   r0   r   r2   r3   	Exceptionprint)r5   r6   r7   r8   er   r   r   send_requests_abortH   s"   
	z#EagleServerBase.send_requests_abortc              	   C   sj   d}d}d}d}t j| jd dd|dd||||d	d
d}| |jd tt|  td d S )NTr   r=   r#   z6Human: Write a travel blog post to Hawaii.

Assistant:0   r   )r'   nr&   r   )r(   r)   return_logprobtop_logprobs_numreturn_text_in_logprobslogprob_start_lenr*   r,   zd====================================================================================================)r2   r3   r   assertEqualr4   r?   r+   dumps)r5   r)   rD   rE   return_textrC   r9   r   r   r   
run_decode[   s,   zEagleServerBase.run_decodeN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   classmethodr   r!   r:   rA   rK   r   r   r   r   r	      s     

r	   )r+   r/   r-   r2   sglang.srt.utils.commonr   sglang.test.test_utilsr   r   r   r   r   r   r1   r	   r   r   r   r   <module>   s     		