From f28ac0166536a2a4b68cac685a41ea667f60f7e9 Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 03 九月 2025 14:43:03 +0800 Subject: [PATCH] 兼容企业微信 --- app/models/conversation.py | 47 ++++++++++++++++++++++++++++++----------------- 1 files changed, 30 insertions(+), 17 deletions(-) diff --git a/app/models/conversation.py b/app/models/conversation.py index f153429..eb646c5 100644 --- a/app/models/conversation.py +++ b/app/models/conversation.py @@ -1,38 +1,51 @@ """ 瀵硅瘽璁板綍妯″瀷 """ -from sqlalchemy import Column, String, Integer, DateTime, Text, Boolean + +from sqlalchemy import Column, String, Integer, DateTime, Text, Boolean, UniqueConstraint from sqlalchemy.sql import func from .database import Base class Conversation(Base): """瀵硅瘽璁板綍琛�""" + __tablename__ = "conversations" - + id = Column(Integer, primary_key=True, index=True, autoincrement=True) - user_conversation_key = Column(String(200), unique=True, index=True, nullable=False, - comment="鐢ㄦ埛瀵硅瘽鍞竴閿�(fromUser+conversation_id)") - from_user = Column(String(100), index=True, nullable=False, comment="鍙戦�佺敤鎴峰井淇D") + from_user = Column( + String(100), index=True, nullable=False, comment="鍙戦�佺敤鎴峰井淇D" + ) conversation_id = Column(String(100), nullable=False, comment="Dify瀵硅瘽ID") - - # 鐢ㄦ埛闂 - user_question = Column(Text, nullable=False, comment="鐢ㄦ埛鎻愰棶鍐呭") - - # AI鍥炵瓟 - ai_answer = Column(Text, nullable=True, comment="AI鍥炵瓟鍐呭") - + group = Column(String(100), nullable=False, comment="缇ょ粍ID") + hour = Column(String(20), nullable=False, comment="灏忔椂鏍囪瘑(YYYYMMDD_HH)") + + # 瀵硅瘽鍐呭锛圝SON鏍煎紡锛� + content = Column( + Text, + nullable=True, + comment='瀵硅瘽鍐呭JSON鏍煎紡锛屽[{"user":"浣犲ソ","ai":"浣犲ソ鏈変粈涔堣兘甯姪浣犵殑"}]', + ) + # 娑堟伅鐘舵�� is_processed = Column(Boolean, default=False, comment="鏄惁宸插鐞�") is_sent = Column(Boolean, default=False, comment="鏄惁宸插彂閫佸洖澶�") - + # 鏃堕棿鎴� question_time = Column(DateTime, default=func.now(), comment="鎻愰棶鏃堕棿") answer_time = Column(DateTime, nullable=True, comment="鍥炵瓟鏃堕棿") sent_time = Column(DateTime, nullable=True, comment="鍙戦�佹椂闂�") - + created_at = Column(DateTime, default=func.now(), comment="鍒涘缓鏃堕棿") - updated_at = Column(DateTime, default=func.now(), onupdate=func.now(), comment="鏇存柊鏃堕棿") - + updated_at = Column( + DateTime, default=func.now(), onupdate=func.now(), comment="鏇存柊鏃堕棿" + ) + + # 娣诲姞鍥涘瓧娈电粍鍚堢殑鍞竴鎬х害鏉� + __table_args__ = ( + UniqueConstraint('from_user', 'conversation_id', 'group', 'hour', + name='uq_conversation_key'), + ) + def __repr__(self): - return f"<Conversation(from_user='{self.from_user}', conversation_id='{self.conversation_id}')>" + return f"<Conversation(from_user='{self.from_user}', conversation_id='{self.conversation_id}', group='{self.group}', hour='{self.hour}')>" -- Gitblit v1.9.1