zhangqian
2024-11-19 9c632dc526dec3c9366ed749e11bf2fc17101ced
增加对话表保存basic的agent会话,会话列表支持basic会话查询
1个文件已修改
1个文件已添加
35 ■■■■■ 已修改文件
app/api/agent.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/models/session_model.py 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/agent.py
@@ -10,6 +10,7 @@
from app.config.config import settings
from app.models.agent_model import AgentType, AgentModel
from app.models.base_model import get_db
from app.models.session_model import SessionModel
from app.models.user_model import UserModel
from app.service.bisheng import BishengService
from app.service.dialog import get_session_history
@@ -57,6 +58,12 @@
            raise HTTPException(status_code=500, detail=str(e))
        return ResponseList(code=200, msg="", data=result)
    elif agent.agent_type == AgentType.BASIC:
        offset = (page - 1) * limit
        records = db.query(SessionModel).filter(SessionModel.agent_id == agent_id).offset(offset).limit(limit).all()
        result = [item.to_dict() for item in records]
        return ResponseList(code=200, msg="", data=result)
    else:
        return ResponseList(code=200, msg="Unsupported agent type")
app/models/session_model.py
New file
@@ -0,0 +1,28 @@
import json
from datetime import datetime
from enum import IntEnum
from sqlalchemy import Column, String, Enum as SQLAlchemyEnum, Integer, DateTime
from app.models import AgentType
from app.models.base_model import Base
class SessionModel(Base):
    __tablename__ = "sessions"
    id = Column(String(255), primary_key=True)
    name = Column(String(255))
    agent_id = Column(String(255))
    agent_type = Column(SQLAlchemyEnum(AgentType), nullable=False)  # 目前只存basic的,ragflow和bisheng的调接口获取
    create_date = Column(DateTime)  # 创建时间
    update_date = Column(DateTime)  # 更新时间
    # to_dict 方法
    def to_dict(self):
        return {
            'id': self.id,
            'name': self.name,
            'agent_type': self.agent_type,
            'agent_id': self.agent_id,
            'create_date': self.create_date,
            'update_date': self.update_date,
        }