5
5
import ctypes
6
6
import os
7
7
import argparse
8
- import json , sys , time , asyncio
8
+ import json , sys , time , asyncio , socket
9
9
from aiohttp import web
10
10
from concurrent .futures import ThreadPoolExecutor
11
11
@@ -255,8 +255,8 @@ def run_blocking():
255
255
256
256
try :
257
257
return res
258
- except :
259
- print ("Generate: Error while generating" )
258
+ except Exception as e :
259
+ print (f "Generate: Error while generating { e } " )
260
260
261
261
262
262
async def send_sse_event (self , response , event , data ):
@@ -273,7 +273,6 @@ async def handle_sse_stream(self, request):
273
273
event_data = {"token" : token }
274
274
event_str = json .dumps (event_data )
275
275
await self .send_sse_event (response , "message" , event_str )
276
- print (event_str )
277
276
278
277
await asyncio .sleep (0 )
279
278
@@ -288,7 +287,6 @@ async def handle_request(self, request, genparams, newprompt, stream_flag):
288
287
289
288
generate_task = asyncio .create_task (self .generate_text (newprompt , genparams ))
290
289
tasks .append (generate_task )
291
- #tasks.append(self.generate_text(newprompt, genparams))
292
290
293
291
try :
294
292
await asyncio .gather (* tasks )
@@ -344,7 +342,7 @@ async def handle_post(self, request):
344
342
body = await request .content .read ()
345
343
basic_api_flag = False
346
344
kai_api_flag = False
347
- kai_sse_stream_flag = True
345
+ kai_sse_stream_flag = False
348
346
path = request .path .rstrip ('/' )
349
347
print (request )
350
348
@@ -382,10 +380,10 @@ async def handle_post(self, request):
382
380
383
381
gen = await self .handle_request (request , genparams , newprompt , kai_sse_stream_flag )
384
382
385
- if not kai_sse_stream_flag :
386
- return web .Response (body = gen )
387
-
388
383
modelbusy = False
384
+
385
+ if not kai_sse_stream_flag :
386
+ return web .Response (body = json .dumps (gen ).encode ())
389
387
return web .Response ();
390
388
391
389
return web .Response (status = 404 )
@@ -398,14 +396,19 @@ async def handle_head(self):
398
396
399
397
async def start_server (self ):
400
398
399
+ sock = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
400
+ sock .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
401
+ sock .bind ((self .addr , self .port ))
402
+ sock .listen (5 )
403
+
401
404
self .app .router .add_route ('GET' , '/{tail:.*}' , self .handle_get )
402
405
self .app .router .add_route ('POST' , '/{tail:.*}' , self .handle_post )
403
406
self .app .router .add_route ('OPTIONS' , '/' , self .handle_options )
404
407
self .app .router .add_route ('HEAD' , '/' , self .handle_head )
405
408
406
409
runner = web .AppRunner (self .app )
407
410
await runner .setup ()
408
- site = web .TCPSite (runner , self . addr , self . port )
411
+ site = web .SockSite (runner , sock )
409
412
await site .start ()
410
413
411
414
# Keep Alive
@@ -415,7 +418,11 @@ async def start_server(self):
415
418
except KeyboardInterrupt :
416
419
await runner .cleanup ()
417
420
await site .stop ()
418
- await exit (1 )
421
+ await sys .exit (0 )
422
+ finally :
423
+ await runner .cleanup ()
424
+ await site .stop ()
425
+ await sys .exit (0 )
419
426
420
427
async def run_server (addr , port , embedded_kailite = None ):
421
428
handler = ServerRequestHandler (addr , port , embedded_kailite )
0 commit comments