From 519930bc1112cdf7881fecce907381ce6374e74c Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期二, 14 一月 2025 13:37:56 +0800
Subject: [PATCH] 文档出卷-未上传文件提示
---
app/service/session.py | 54 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 33 insertions(+), 21 deletions(-)
diff --git a/app/service/session.py b/app/service/session.py
index 6341414..e00bd3e 100644
--- a/app/service/session.py
+++ b/app/service/session.py
@@ -1,7 +1,10 @@
+import json
+from typing import Type
+
from sqlalchemy.orm import Session
from Log import logger
-from app.models import AgentType
+from app.models import AgentType, current_time
from app.models.session_model import SessionModel
@@ -9,7 +12,8 @@
def __init__(self, db: Session):
self.db = db
- def create_session(self, session_id: str, name: str, agent_id: str, agent_type: AgentType, user_id: int) -> SessionModel:
+ def create_session(self, session_id: str, name: str, agent_id: str, agent_type: AgentType, user_id: int) -> Type[
+ SessionModel] | SessionModel:
"""
鍒涘缓涓�涓柊鐨勪細璇濊褰曘��
@@ -22,27 +26,28 @@
杩斿洖:
SessionModel: 鏂板垱寤虹殑浼氳瘽妯″瀷瀹炰緥锛屽鏋滀細璇滻D宸插瓨鍦ㄥ垯杩斿洖None銆�
"""
- logger.error("-------------xieru")
existing_session = self.get_session_by_id(session_id)
if existing_session:
- message=existing_session.message
- message.append({"role": "user", "content": name})
- self.update_session(session_id, message=message)
- logger.error("-------------xieru------------1")
+ existing_session.add_message({"role": "user", "content": name})
+ existing_session.update_date = current_time()
+ self.db.commit()
+ self.db.refresh(existing_session)
+ return existing_session
+
new_session = SessionModel(
id=session_id,
- name=name[0:200],
+ name=name[0:50],
agent_id=agent_id,
agent_type=agent_type,
- tenant_id = user_id,
- message=[{"role": "user", "content": name}]
+ tenant_id=user_id,
+ message=json.dumps([{"role": "user", "content": name}])
)
self.db.add(new_session)
self.db.commit()
self.db.refresh(new_session)
return new_session
- def get_session_by_id(self, session_id: str) -> SessionModel:
+ def get_session_by_id(self, session_id: str) -> Type[SessionModel] | None:
"""
鏍规嵁浼氳瘽ID鑾峰彇浼氳瘽璁板綍銆�
@@ -52,9 +57,12 @@
杩斿洖:
SessionModel: 鏌ユ壘鍒扮殑浼氳瘽妯″瀷瀹炰緥锛屽鏋滄湭鎵惧埌鍒欒繑鍥濶one銆�
"""
- return self.db.query(SessionModel).filter_by(id=session_id).first()
+ session = self.db.query(SessionModel).filter_by(id=session_id).first()
+ if session and session.message is None:
+ session.message = '[]'
+ return session
- def update_session(self, session_id: str, **kwargs) -> SessionModel:
+ def update_session(self, session_id: str, **kwargs) -> Type[SessionModel] | None:
"""
鏇存柊浼氳瘽璁板綍銆�
@@ -66,18 +74,22 @@
SessionModel: 鏇存柊鍚庣殑浼氳瘽妯″瀷瀹炰緥銆�
"""
logger.error("鏇存柊鏁版嵁---------------------------")
- session = self.db.query(SessionModel).filter_by(id=session_id).first()
+ self.db.commit()
+ session = self.get_session_by_id(session_id)
if session:
if "message" in kwargs:
- message = session.message
- logger.error(kwargs)
- message.append(kwargs["message"])
- session.message = message
- logger.error("鏇存柊鏁版嵁--------------------------11111111-")
- logger.error(message)
+ session.add_message(kwargs["message"])
+ # 鏇挎崲鍏朵粬瀛楁
+ for key, value in kwargs.items():
+ if key != "message":
+ setattr(session, key, value)
+ session.update_date = current_time()
+ try:
self.db.commit()
self.db.refresh(session)
- logger.error("鏇存柊鏁版嵁瀹屾垚--------------------------1111111122222222-")
+ except Exception as e:
+ logger.error(e)
+ self.db.rollback()
return session
def delete_session(self, session_id: str) -> None:
--
Gitblit v1.8.0