
    Pi                     r    d dl Z d dlZd dlZd dlZd dlZd dlZd Zd Zd Zd Z	e
dk    r e	             dS dS )    Nc                 \    	 t          j        | dgdd           dS # t          $ r Y dS w xY w)Nz	--versionTF)capture_outputcheck)
subprocessrunFileNotFoundError)cmds    `/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vieneu/serve.pycheck_commandr      sJ    [)$eLLLLt   uus    
++c                  F    	 t          j        d          j        S #  Y dS xY w)Nzhttps://api.ipify.orgzyour-server-ip)requestsgettext     r
   get_public_ipr      s-     |34499 s     c                    t          d           t          d| j                    ddd| j        dddt          | j                  d	t          | j                  d
t          | j                  d| j        g}| j        r)|                    dt          | j                  g           t          dd	                    |                      t          j        |          }t          d| j         d           d}d}| j        r>t          d          rt          d           ddt          | j                  ddg}t          j        |t          j        t          j        d          }t!          j                    }t!          j                    |z
  dk     rw|j                                        }d|v r@|                    d          d                                         }t          d|            nt!          j                    |z
  dk     wnst          d           t          dt+                       d| j                    n=t          d | j                    t          d!t+                       d| j                    t          d"           |rd#| nd#t+                       d| j         }t          d$           t          d%| d&| j         d'           t          d(           	 |                                 dS # t.          $ r@ t          d)           |                                 |r|                                 Y dS Y dS w xY w)*z)
    Starts the LMDeploy API server.
    u)   🚀 Starting VieNeu-TTS Remote Server...u   📦 Model: lmdeployserve
api_serverz--server-namez0.0.0.0z--server-port--tpz--cache-max-entry-count--model-name--quant-policyu   🛠️ Command:  u-   ⏳ Waiting for server to initialize on port z...Nboreu"   🌐 Starting tunnel via 'bore'...localz--tozbore.pubT)stdoutstderrr   
   zlistening atu   ✅ Public URL: http://u\   ⚠️ 'bore' not found. Please install it to use --tunnel (https://github.com/ekzhang/bore)u!   📍 Using local address: http://:u.   ✅ Server running locally at: http://0.0.0.0:u(   📍 Public access (if enabled): http://u%   
💡 To use this server in your SDK:zhttp://z   from vieneu import Vieneuz)   tts = Vieneu(mode='remote', api_base='z/v1', model_name='z') u   
🛑 Stopping server...)printmodelstrporttpmemory_util
model_namequant_policyextendjoinr   Popentunnelr   PIPESTDOUTtimer   readlinesplitstripr   waitKeyboardInterrupt	terminate)	argsr	   server_processtunnel_process
public_url
tunnel_cmd
start_timelinesdk_urls	            r
   
run_serverr@      s    

6777	
%
%
%&&& 	G\
TYDG!3t'7#8#8C  ?

$c$*;&<&<=>>>	
-chhsmm
-
-...  %c**N 

H$)
H
H
HIII NJ{ X   	U6777 '3ty>>6:NJ'-jYcYjquvvvN J)++
*R//%,5577!T))!%N!;!;B!?!E!E!G!GJ@J@@AAA )++
*R// pqqqSmooSS	SSTTTTJtyJJKKKVVV49VVWWW	
2333(2_$
$$$8_-//8_8_TXT]8_8_G	
)***	
dg
d
dQUQ`
d
d
deee	"III' ' ' ')***  """ 	'$$&&&&&&	' 	' 	''s   (K> >AMMc                     t          j        d          } |                     dt          dd           |                     dt          dd           |                     d	t          d
d           |                     dt          dd           |                     dt
          dd           |                     dt          dd           |                     ddd           |                                 }|j        dk    r|j        dk    r|j        |_        t          d          s2t          d           t          d           t          j        d           t          |           d S )NzVieNeu-TTS Remote Server CLI)descriptionz--modelzpnnbao-ump/VieNeu-TTSz"HuggingFace model ID or local path)typedefaulthelpr   zModel name for API mappingz--porti%[  zServer portr      zTensor parallel sizez--memory-utilg333333?z GPU memory utilization (0.0-1.0)r   r   zKV cache quantization (0, 4, 8)z--tunnel
store_truez,Automatically expose the server via bore.pub)actionrE   r   u   ❌ 'lmdeploy' not found!z3   Please install it using: pip install vieneu[gpu])argparseArgumentParseradd_argumentr%   intfloat
parse_argsr$   r)   r   r#   sysexitr@   )parserr8   s     r
   mainrR   X   sp   $1OPPPF
	5LSwxxx
S:QXtuuu
sENNN
S!:PQQQ
eSGijjj
(sADefff

<>lmmmD z,,,D[1[1[* $$ )***CDDDtr   __main__)rI   osr   rO   r1   r   r   r   r@   rR   __name__r   r   r
   <module>rV      s     				     



         A' A' A'F  0 zDFFFFF r   