o
    پi                  0   @   s  d 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mZmZmZmZmZmZmZmZmZ 	dUdee d	ee fd
dZdd Zdd Zde
fddZdVdee
 fddZdVdee
 fddZ																							dWdee  dee dee dee deee ee  f  deee  deee ee  f  dee! dee! d ee d!ee! d"ee! d#ee! d$ee" d%ee" d&ee d'ee d(ee" d)eee#e f  d*eee   d+ee d,ee  d-ee  f.d.d/Z$																	dXdee  dee dee deee ee  f  deee  deee ee  f  dee! dee! d ee d!ee! d"ee! d#ee! d$ee" d%ee" d&ee d'ee d(ee" f"d0d1Z%																	dXdee  dee dee deee ee  f  deee  deee ee  f  dee! dee! d ee d!ee! d"ee! d#ee! d$ee" d%ee" d&ee d'ee d(ee" f"d2d3Z&d4efd5d6Z'd7e d8efd9d:Z(ddd;efdee  d*eee   de!d+efd<d=Z)dVde d4ee fd>d?Z*dVd4ee fd@dAZ+dVd4ee fdBdCZ,dVd4ee fdDdEZ-dFdG Z.dHdI Z/dJdK Z0dLdM Z1dNdO Z2dPdQ Z3	dUd4ee dRee  fdSdTZ4dS )YzPublic APIs of the language.    N)CallableListOptionalUnion)global_config)BaseBackend)ChoicesSamplingMethodtoken_length_normalized)
SglExprSglExprListSglFunctionSglGenSglImageSglRoleBegin
SglRoleEnd	SglSelectSglSeparateReasoningSglVideofuncnum_api_spec_tokensc                    s    | rt |  dS  fdd}|S )Nr   c                    s   t |  dS )Nr   r   )r   r    C/home/ubuntu/.local/lib/python3.10/site-packages/sglang/lang/api.py	decorator   s   zfunction.<locals>.decoratorr   )r   r   r   r   r   r   function   s   r   c                  O      ddl m} || i |S )Nr   )Runtime)$sglang.lang.backend.runtime_endpointr   )argskwargsr   r   r   r   r   #      r   c                  O   r   )Nr   )Engine)sglang.srt.entrypoints.enginer"   )r   r    r"   r   r   r   r"   *   r!   r"   backendc                 C   s
   | t _d S N)r   default_backendr$   r   r   r   set_default_backend1      
r(   c                 C   s.   | pt j} | d u rdS t| dr| j} |  S )NFendpoint)r   r&   hasattrr*   flush_cacher'   r   r   r   r,   5      

r,   c                 C   s.   | pt j} | d u rd S t| dr| j} |  S )Nr*   )r   r&   r+   r*   get_server_infor'   r   r   r   r.   @   r-   r.   name
max_tokens
min_tokensnstopstop_token_ids
stop_regextemperaturetop_ptop_kmin_pfrequency_penaltypresence_penalty
ignore_eosreturn_logproblogprob_start_lentop_logprobs_numreturn_text_in_logprobsdtypechoiceschoices_methodregexjson_schemac                 C   s   |rt | ||du rdn||du rtS |S |dur1zt| W n tjy0 } z|d}~ww t| |||||||||	|
||||||||||S )z_Call the model to generate. See the meaning of the arguments in docs/backend/sampling_params.mdN        )r   r	   recompileerrorr   )r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   er   r   r   genK   sN   
rK   c                 C   .   t | |d ||||||||	|
||||||td S r%   )r   intr/   r0   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r   r   r   gen_int   ,   rO   c                 C   rL   r%   )r   strrN   r   r   r   
gen_string   rP   rR   exprc                 C   s   t | S r%   )r   rS   r   r   r   image      rU   path
num_framesc                 C   s
   t | |S r%   )r   )rW   rX   r   r   r   video   r)   rY   rF   c                 C   s   |d usJ t | |||S r%   )r   )r/   rB   r6   rC   r   r   r   select   s   rZ   c                 C   s2   |d u rt t| t| gS t t| |t| gS r%   )r   r   r   )r/   rS   r   r   r   _role_common   s   r[   c                 C   
   t d| S Nsystemr[   rT   r   r   r   r^      r)   r^   c                 C   r\   Nuserr_   rT   r   r   r   ra     r)   ra   c                 C   r\   N	assistantr_   rT   r   r   r   rc     r)   rc   c                   C      t dS r]   r   r   r   r   r   system_begin	  rV   rf   c                   C   rd   r]   r   r   r   r   r   
system_end  rV   rh   c                   C   rd   r`   re   r   r   r   r   
user_begin  rV   ri   c                   C   rd   r`   rg   r   r   r   r   user_end  rV   rj   c                   C   rd   rb   re   r   r   r   r   assistant_begin  rV   rk   c                   C   rd   rb   rg   r   r   r   r   assistant_end  rV   rl   
model_typec                 C   s   t | t|| dgS )NrT   )r   r   )rS   rm   r   r   r   separate_reasoning!  s   rn   )NNr%   )NNNNNNNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNN)5__doc__rG   typingr   r   r   r   sglang.global_configr    sglang.lang.backend.base_backendr   sglang.lang.choicesr   r	   sglang.lang.irr
   r   r   r   r   r   r   r   r   r   rM   r   r   r"   r(   r,   r.   rQ   floatbooltyperK   rO   rR   rU   rY   rZ   r[   r^   ra   rc   rf   rh   ri   rj   rk   rl   rn   r   r   r   r   <module>   s   0

	


D
	

,
	

+


