tmp
zhaoqingang
2025-02-11 2bed9e0f6fc8fd1971cc6861bc3f731534c021ae
app/service/session.py
@@ -1,3 +1,4 @@
import json
from typing import Type
from sqlalchemy.orm import Session
@@ -11,7 +12,7 @@
    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) -> Type[
    def create_session(self, session_id: str, name: str, agent_id: str, agent_type: AgentType, user_id: int, message: dict = None, workflow_type: int = 0) -> Type[
                                                                                                                    SessionModel] | SessionModel:
        """
        创建一个新的会话记录。
@@ -27,7 +28,8 @@
        """
        existing_session = self.get_session_by_id(session_id)
        if existing_session:
            existing_session.add_message({"role": "user", "content": name})
            # existing_session.add_message({"role": "user", "content": name})
            existing_session.add_message(message)
            existing_session.update_date = current_time()
            self.db.commit()
            self.db.refresh(existing_session)
@@ -38,8 +40,10 @@
            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}])
            workflow = workflow_type,
            message = json.dumps([message])
        )
        self.db.add(new_session)
        self.db.commit()
@@ -57,7 +61,7 @@
            SessionModel: 查找到的会话模型实例,如果未找到则返回None。
        """
        session = self.db.query(SessionModel).filter_by(id=session_id).first()
        if session.message is None:
        if  session and session.message is None:
            session.message = '[]'
        return session
@@ -87,6 +91,7 @@
                self.db.commit()
                self.db.refresh(session)
            except Exception as e:
                logger.error(e)
                self.db.rollback()
        return session