Daniel Marques commited on
Commit
fa05bba
1 Parent(s): 3532e4c

fix: add redis cache

Browse files
Files changed (1) hide show
  1. main.py +10 -11
main.py CHANGED
@@ -6,7 +6,7 @@ import shutil
6
  import subprocess
7
  import redis
8
  import torch
9
- import threading
10
 
11
  from fastapi import FastAPI, HTTPException, UploadFile, WebSocket, WebSocketDisconnect
12
  from fastapi.staticfiles import StaticFiles
@@ -69,13 +69,6 @@ QA = RetrievalQA.from_chain_type(
69
  },
70
  )
71
 
72
- async def pubsub_listener(websocket, client_id):
73
- pubsub = redisClient.pubsub()
74
- pubsub.subscribe(f'{client_id}')
75
-
76
- while True:
77
- message = pubsub.listen()
78
- await websocket.send_text(f'{message}')
79
 
80
  app = FastAPI(title="homepage-app")
81
  api_app = FastAPI(title="api app")
@@ -230,11 +223,17 @@ async def websocket_endpoint(websocket: WebSocket, client_id: int):
230
  try:
231
  while True:
232
  prompt = await websocket.receive_text()
 
 
 
 
 
233
 
234
- pubsub_thread = threading.Thread(target=pubsub_listener(websocket, client_id))
235
- pubsub_thread.start()
 
 
236
 
237
- QA(inputs=prompt, return_only_outputs=True, callbacks=[MyCustomSyncHandler()], tags=f'{client_id}', include_run_info=True)
238
 
239
  except WebSocketDisconnect:
240
  print('disconnect')
 
6
  import subprocess
7
  import redis
8
  import torch
9
+ import concurrent.futures
10
 
11
  from fastapi import FastAPI, HTTPException, UploadFile, WebSocket, WebSocketDisconnect
12
  from fastapi.staticfiles import StaticFiles
 
69
  },
70
  )
71
 
 
 
 
 
 
 
 
72
 
73
  app = FastAPI(title="homepage-app")
74
  api_app = FastAPI(title="api app")
 
223
  try:
224
  while True:
225
  prompt = await websocket.receive_text()
226
+ pubsub = redisClient.pubsub()
227
+ pubsub.subscribe(f'{client_id}')
228
+
229
+ with concurrent.futures.ThreadPoolExecutor() as executor:
230
+ executor.submit(QA(inputs=prompt, return_only_outputs=True, callbacks=[MyCustomSyncHandler()], tags=f'{client_id}', include_run_info=True))
231
 
232
+ for item in pubsub.listen():
233
+ print(item)
234
+ if item['type'] == 'message':
235
+ await websocket.send_text(f'{item["data"]}')
236
 
 
237
 
238
  except WebSocketDisconnect:
239
  print('disconnect')