@@ -53,11 +53,11 @@ def __init__(
5353 def _setup_connections (self ):
5454 context = zmq .Context (2 )
5555 if self .remote_vit :
56- self .recv_from_remote_llm = context .socket (zmq .PULL )
57- self .recv_from_remote_llm .bind (f"tcp://*:{ self .args .remote_vit_port } " )
56+ self .vit_receiver = context .socket (zmq .PULL )
57+ self .vit_receiver .bind (f"tcp://*:{ self .args .remote_vit_port } " )
5858 else :
59- self .recv_from_httpserver = context .socket (zmq .PULL )
60- self .recv_from_httpserver .bind (f"{ self .args .zmq_mode } 127.0.0.1:{ self .visual_port } " )
59+ self .vit_receiver = context .socket (zmq .PULL )
60+ self .vit_receiver .bind (f"{ self .args .zmq_mode } 127.0.0.1:{ self .visual_port } " )
6161 self .send_to_next_module = context .socket (zmq .PUSH ) # router or audio server (if --enable_multimodal_audio)
6262 self .send_to_next_module .connect (f"{ self .args .zmq_mode } 127.0.0.1:{ self .next_module_port } " )
6363 self .cache_client = rpyc .connect ("localhost" , self .cache_port , config = {"allow_pickle" : True })
@@ -153,7 +153,7 @@ async def loop_for_fwd(self):
153153
154154 def _recv_reqs (self ):
155155 if self .remote_vit :
156- recv_req : GroupReqIndexes = self .recv_from_httpserver .recv_pyobj (zmq .NOBLOCK )
156+ recv_req : GroupReqIndexes = self .vit_receiver .recv_pyobj (zmq .NOBLOCK )
157157 for img in recv_req .multimodal_params .images :
158158 image_patch = self .tokenizer .get_image_patch_func (img )
159159 data = img ._preload_data
@@ -164,7 +164,7 @@ def _recv_reqs(self):
164164 self .cache_client .root .set_items_data ([md5 ])
165165 return recv_req
166166 else :
167- return self .recv_from_httpserver .recv_pyobj (zmq .NOBLOCK )
167+ return self .vit_receiver .recv_pyobj (zmq .NOBLOCK )
168168
169169 async def loop_for_netio_req (self ):
170170 if not hasattr (self , "visual_recv_max_count" ):
@@ -173,7 +173,7 @@ async def loop_for_netio_req(self):
173173 while True :
174174 try :
175175 for _ in range (self .visual_recv_max_count ):
176- recv_req : GroupReqIndexes = self ._recv_reqs ( )
176+ recv_req : GroupReqIndexes = self .vit_receiver . recv_pyobj ( zmq . NOBLOCK )
177177 if isinstance (recv_req , GroupReqIndexes ):
178178 self .waiting_reqs .append (recv_req )
179179 else :
@@ -182,6 +182,9 @@ async def loop_for_netio_req(self):
182182 except zmq .ZMQError :
183183 # 当队列已经开始清空的时候,将一次接受数量下调
184184 self .visual_recv_max_count = 64
185+ except Exception as e :
186+ logger .exception (f"Error in loop_for_netio_req: { e } " )
187+ raise e
185188 await asyncio .sleep (0.01 )
186189
187190 # code for visual only mode
@@ -249,9 +252,6 @@ def handle_exception(loop, context):
249252 loop = asyncio .new_event_loop ()
250253 loop .set_exception_handler (handle_exception )
251254 asyncio .set_event_loop (loop )
252- if args .run_mode == "visual" :
253- loop .create_task (visualserver .loop_for_fwd_visual_only ())
254- else :
255- loop .create_task (visualserver .loop_for_fwd ())
255+ create_forward_loop (args , visualserver , loop )
256256 loop .run_until_complete (visualserver .loop_for_netio_req ())
257257 return
0 commit comments