From c16ced765e748340889b413d4814e41e38b35b02 Mon Sep 17 00:00:00 2001 From: UnCLAS-Prommer Date: Mon, 2 Mar 2026 20:37:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8Ddb=E7=9A=84=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=9BMessageComponent=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/message_receive/message.py | 2 ++ src/common/data_models/expression_data_model.py | 8 ++++---- src/common/database/database_model.py | 6 +++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/chat/message_receive/message.py b/src/chat/message_receive/message.py index 3f402214..be2ef026 100644 --- a/src/chat/message_receive/message.py +++ b/src/chat/message_receive/message.py @@ -78,6 +78,7 @@ class SessionMessage(MaiMessage): content = f"[图片:{desc}]" if desc else "[一张图片,网卡了加载不出来]" component.content = content + component.binary_data = b"" # 处理完就丢掉二进制数据,节省内存 return content async def process_emoji_component(self, component: EmojiComponent) -> str: @@ -97,6 +98,7 @@ class SessionMessage(MaiMessage): else: content = "[一个表情,网卡了加载不出来]" component.content = content + component.binary_data = b"" # 处理完就丢掉二进制数据,节省内存 return content async def process_at_component(self, component: AtComponent) -> str: diff --git a/src/common/data_models/expression_data_model.py b/src/common/data_models/expression_data_model.py index 8015b985..192cbc58 100644 --- a/src/common/data_models/expression_data_model.py +++ b/src/common/data_models/expression_data_model.py @@ -1,9 +1,9 @@ from datetime import datetime -from typing import List, Optional, Literal +from typing import List, Optional import json -from src.common.database.database_model import Expression +from src.common.database.database_model import Expression, ModifiedBy from . import BaseDatabaseDataModel @@ -23,7 +23,7 @@ class MaiExpression(BaseDatabaseDataModel[Expression]): session_id: Optional[str] = None, checked: bool = False, rejected: bool = False, - modified_by: Optional[Literal["ai", "user"]] = None, + modified_by: Optional[ModifiedBy] = None, ): self.item_id = item_id """自增主键ID""" @@ -45,7 +45,7 @@ class MaiExpression(BaseDatabaseDataModel[Expression]): """是否已经被检查过""" self.rejected: bool = rejected """是否被拒绝但是未更新""" - self.modified_by: Optional[Literal["ai", "user"]] = modified_by + self.modified_by: Optional[ModifiedBy] = modified_by """最后修改者,标记用户或AI,为空表示未检查""" @classmethod diff --git a/src/common/database/database_model.py b/src/common/database/database_model.py index 639040fd..1e12604d 100644 --- a/src/common/database/database_model.py +++ b/src/common/database/database_model.py @@ -14,10 +14,12 @@ class ImageType(str, Enum): EMOJI = "emoji" IMAGE = "image" + class ModifiedBy(str, Enum): AI = "ai" USER = "user" + class Messages(SQLModel, table=True): __tablename__ = "mai_messages" # type: ignore id: Optional[int] = Field(default=None, primary_key=True) # 自增主键 @@ -186,7 +188,9 @@ class Expression(SQLModel, table=True): checked: bool = Field(default=False) # 是否已经被检查过 rejected: bool = Field(default=False) # 是否被拒绝但是未更新 - modified_by: Optional[ModifiedBy] = Field(default=None, sa_column=Column(SQLEnum(ModifiedBy), nullable=True)) # 最后修改者,标记用户或AI,为空表示未检查 + modified_by: Optional[ModifiedBy] = Field( + default=None, sa_column=Column(SQLEnum(ModifiedBy), nullable=True) + ) # 最后修改者,标记用户或AI,为空表示未检查 class Jargon(SQLModel, table=True):