From 78452a6e489084e2b240607bea0cffb68121e059 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 30 十月 2024 16:38:42 +0800
Subject: [PATCH] 临时给太初的提交
---
app/api/report.py | 30 +++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/app/api/report.py b/app/api/report.py
index 386dcf1..c0748a4 100644
--- a/app/api/report.py
+++ b/app/api/report.py
@@ -4,7 +4,7 @@
import asyncio
import websockets
from sqlalchemy.orm import Session
-from app.api import get_current_user_websocket, ResponseList, get_current_user
+from app.api import get_current_user_websocket, ResponseList, get_current_user, format_file_url, process_files
from app.config.config import settings
from app.models.agent_model import AgentModel, AgentType
from app.models.base_model import get_db
@@ -35,7 +35,7 @@
return websocket.send_json(ret)
token = get_bisheng_token(db, current_user.id)
- service_uri = f"{settings.bisheng_websocket_url}/api/v1/chat/{agent_id}?type=L1&t=&chat_id={chat_id}"
+ service_uri = f"{settings.sgb_websocket_url}/api/v1/chat/{agent_id}?type=L1&t=&chat_id={chat_id}"
headers = {'cookie': f"access_token_cookie={token};"}
await websocket.accept()
@@ -63,12 +63,14 @@
data = json.loads(message)
files = data.get("files", [])
steps = data.get("intermediate_steps", "")
- if len(files) != 0 or steps != "" or data["type"] == "close":
+
+ if len(files) != 0 or steps or data["type"] == "close":
if data["type"] == "close":
t = "close"
else:
t = "stream"
- result = {"step_message": steps, "type": t, "files": files}
+ process_files(files, agent_id)
+ result = {"step_message": steps, "type": t, "files": files}
await websocket.send_json(result)
print(f"Forwarded to client, {chat_id}: {result}")
@@ -87,8 +89,22 @@
except asyncio.CancelledError:
pass
- except WebSocketDisconnect:
- print(f"Client {chat_id} disconnected")
+ except WebSocketDisconnect as e:
+ print(f"WebSocket connection closed with code {e.code}: {e.reason}")
+ await websocket.close()
+ await service_websocket.close()
+ except Exception as e:
+ print(f"Exception occurred: {e}")
+ finally:
+ print("Cleaning up resources of bisheng report")
+ # 鍙栨秷鎵�鏈変换鍔�
+ for task in tasks:
+ if not task.done():
+ task.cancel()
+ try:
+ await task
+ except asyncio.CancelledError:
+ pass
@router.get("/variables/list", response_model=ResponseList)
@@ -96,7 +112,7 @@
agent = db.query(AgentModel).filter(AgentModel.id == agent_id).first()
if not agent:
return ResponseList(code=404, msg="Agent not found")
- bisheng_service = BishengService(base_url=settings.bisheng_base_url)
+ bisheng_service = BishengService(base_url=settings.sgb_base_url)
try:
token = get_bisheng_token(db, current_user.id)
result = await bisheng_service.variable_list(token, agent_id)
--
Gitblit v1.8.0