From 3f321b59c9782bf6ef106bfcd76cff9694e5c415 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 5 Oct 2025 17:13:16 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E7=94=9F=E6=88=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/message_receive/message.py | 124 +--------------------------- src/memory_system/Memory_chest.py | 16 ++++ 2 files changed, 17 insertions(+), 123 deletions(-) diff --git a/src/chat/message_receive/message.py b/src/chat/message_receive/message.py index d45103fe..d9052abe 100644 --- a/src/chat/message_receive/message.py +++ b/src/chat/message_receive/message.py @@ -138,6 +138,7 @@ class MessageRecv(Message): 这个方法必须在创建实例后显式调用,因为它包含异步操作。 """ + print(f"self.message_segment: {self.message_segment}") self.processed_plain_text = await self._process_message_segments(self.message_segment) async def _process_single_segment(self, segment: Seg) -> str: @@ -208,129 +209,6 @@ class MessageRecv(Message): return f"[处理失败的{segment.type}消息]" -@dataclass -class MessageRecvS4U(MessageRecv): - def __init__(self, message_dict: dict[str, Any]): - super().__init__(message_dict) - self.is_gift = False - self.is_fake_gift = False - self.is_superchat = False - self.gift_info = None - self.gift_name = None - self.gift_count: Optional[str] = None - self.superchat_info = None - self.superchat_price = None - self.superchat_message_text = None - self.is_screen = False - self.is_internal = False - self.voice_done = None - - self.chat_info = None - - async def process(self) -> None: - self.processed_plain_text = await self._process_message_segments(self.message_segment) - - async def _process_single_segment(self, segment: Seg) -> str: - """处理单个消息段 - - Args: - segment: 消息段 - - Returns: - str: 处理后的文本 - """ - try: - if segment.type == "text": - self.is_voice = False - self.is_picid = False - self.is_emoji = False - return segment.data # type: ignore - elif segment.type == "image": - self.is_voice = False - # 如果是base64图片数据 - if isinstance(segment.data, str): - self.has_picid = True - self.is_picid = True - self.is_emoji = False - image_manager = get_image_manager() - # print(f"segment.data: {segment.data}") - _, processed_text = await image_manager.process_image(segment.data) - return processed_text - return "[发了一张图片,网卡了加载不出来]" - elif segment.type == "emoji": - self.has_emoji = True - self.is_emoji = True - self.is_picid = False - if isinstance(segment.data, str): - return await get_image_manager().get_emoji_description(segment.data) - return "[发了一个表情包,网卡了加载不出来]" - elif segment.type == "voice": - self.has_picid = False - self.is_picid = False - self.is_emoji = False - self.is_voice = True - if isinstance(segment.data, str): - return await get_voice_text(segment.data) - return "[发了一段语音,网卡了加载不出来]" - elif segment.type == "mention_bot": - self.is_voice = False - self.is_picid = False - self.is_emoji = False - self.is_mentioned = float(segment.data) # type: ignore - return "" - elif segment.type == "priority_info": - self.is_voice = False - self.is_picid = False - self.is_emoji = False - if isinstance(segment.data, dict): - # 处理优先级信息 - self.priority_mode = "priority" - self.priority_info = segment.data - """ - { - 'message_type': 'vip', # vip or normal - 'message_priority': 1.0, # 优先级,大为优先,float - } - """ - return "" - elif segment.type == "gift": - self.is_voice = False - self.is_gift = True - # 解析gift_info,格式为"名称:数量" - name, count = segment.data.split(":", 1) # type: ignore - self.gift_info = segment.data - self.gift_name = name.strip() - self.gift_count = int(count.strip()) - return "" - elif segment.type == "voice_done": - msg_id = segment.data - logger.info(f"voice_done: {msg_id}") - self.voice_done = msg_id - return "" - elif segment.type == "superchat": - self.is_superchat = True - self.superchat_info = segment.data - price, message_text = segment.data.split(":", 1) # type: ignore - self.superchat_price = price.strip() - self.superchat_message_text = message_text.strip() - - self.processed_plain_text = str(self.superchat_message_text) - self.processed_plain_text += ( - f"(注意:这是一条超级弹幕信息,价值{self.superchat_price}元,请你认真回复)" - ) - - return self.processed_plain_text - elif segment.type == "screen": - self.is_screen = True - self.screen_info = segment.data - return "屏幕信息" - else: - return "" - except Exception as e: - logger.error(f"处理消息段失败: {str(e)}, 类型: {segment.type}, 数据: {segment.data}") - return f"[处理失败的{segment.type}消息]" - - @dataclass class MessageProcessBase(Message): """消息处理基类,用于处理中和发送中的消息""" diff --git a/src/memory_system/Memory_chest.py b/src/memory_system/Memory_chest.py index 80937418..f0d923fd 100644 --- a/src/memory_system/Memory_chest.py +++ b/src/memory_system/Memory_chest.py @@ -725,8 +725,24 @@ class MemoryChest: try: prompt = f""" 请为以下内容生成一个描述全面的标题,要求描述内容的主要概念和事件: +例如: + +标题:达尔文的自然选择理论 +内容:达尔文的自然选择是生物进化理论的重要组成部分,它解释了生物进化过程中的自然选择机制。 + + +标题:麦麦的禁言插件和支持版本 +内容: +麦麦的禁言插件是一款能够实现禁言的插件 +麦麦的禁言插件可能不支持0.10.2 +MutePlugin 是禁言插件的名称 + + + +需要对以下内容生成标题: {merged_content} + 标题不要分点,不要换行,不要输出其他内容,不要浮夸,以白话简洁的风格输出标题 请只输出标题,不要输出其他内容: """