大改,未验证
This commit is contained in:
@@ -58,11 +58,49 @@ class WorkOrder(Base):
|
||||
# 关联处理过程记录
|
||||
process_history = relationship("WorkOrderProcessHistory", back_populates="work_order", order_by="WorkOrderProcessHistory.process_time")
|
||||
|
||||
class ChatSession(Base):
|
||||
"""对话会话模型 — 将多轮对话组织为一个会话"""
|
||||
__tablename__ = "chat_sessions"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
session_id = Column(String(100), unique=True, nullable=False) # 唯一会话标识
|
||||
user_id = Column(String(100), nullable=True) # 用户标识
|
||||
work_order_id = Column(Integer, ForeignKey("work_orders.id"), nullable=True)
|
||||
title = Column(String(200), nullable=True) # 会话标题(取首条消息摘要)
|
||||
status = Column(String(20), default="active") # active, ended
|
||||
message_count = Column(Integer, default=0) # 消息轮数
|
||||
source = Column(String(50), nullable=True) # 来源:websocket, api, feishu
|
||||
ip_address = Column(String(45), nullable=True)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now)
|
||||
ended_at = Column(DateTime, nullable=True)
|
||||
|
||||
# 关联消息
|
||||
messages = relationship("Conversation", back_populates="chat_session", order_by="Conversation.timestamp")
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'id': self.id,
|
||||
'session_id': self.session_id,
|
||||
'user_id': self.user_id,
|
||||
'work_order_id': self.work_order_id,
|
||||
'title': self.title,
|
||||
'status': self.status,
|
||||
'message_count': self.message_count,
|
||||
'source': self.source,
|
||||
'ip_address': self.ip_address,
|
||||
'created_at': self.created_at.isoformat() if self.created_at else None,
|
||||
'updated_at': self.updated_at.isoformat() if self.updated_at else None,
|
||||
'ended_at': self.ended_at.isoformat() if self.ended_at else None,
|
||||
}
|
||||
|
||||
|
||||
class Conversation(Base):
|
||||
"""对话记录模型"""
|
||||
__tablename__ = "conversations"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
session_id = Column(String(100), ForeignKey("chat_sessions.session_id"), nullable=True) # 关联会话
|
||||
work_order_id = Column(Integer, ForeignKey("work_orders.id"))
|
||||
user_message = Column(Text, nullable=False)
|
||||
assistant_response = Column(Text, nullable=False)
|
||||
@@ -79,6 +117,7 @@ class Conversation(Base):
|
||||
cpu_usage = Column(Float) # CPU使用率
|
||||
|
||||
work_order = relationship("WorkOrder", back_populates="conversations")
|
||||
chat_session = relationship("ChatSession", back_populates="messages")
|
||||
|
||||
class KnowledgeEntry(Base):
|
||||
"""知识库条目模型"""
|
||||
|
||||
Reference in New Issue
Block a user