File size: 602 Bytes
0632cd1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from fastapi import WebSocket, WebSocketDisconnect

from . import ws_router
from ..bot.openai_backend import SearchBot
from ..database import get_async_session


@ws_router.websocket("/ws/{client_id}")
async def websocket_endpoint(websocket: WebSocket, client_id: str):
    await websocket.accept()
    chatbot = SearchBot()
    session = await get_async_session()
    try:
        while True:
            data = await websocket.receive_json()
            await chatbot.ask_and_send(data, websocket, session)
    except WebSocketDisconnect:
        await session.commit()
        await session.close()