From ae2713f7b3ea71b81431b02c9ab22f484b2c1fa8 Mon Sep 17 00:00:00 2001 From: tcmofashi Date: Wed, 16 Apr 2025 19:07:21 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat_module/reasoning_chat/reasoning_chat.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/chat_module/reasoning_chat/reasoning_chat.py b/src/plugins/chat_module/reasoning_chat/reasoning_chat.py index 82e041cb1..5b15266ea 100644 --- a/src/plugins/chat_module/reasoning_chat/reasoning_chat.py +++ b/src/plugins/chat_module/reasoning_chat/reasoning_chat.py @@ -1,6 +1,6 @@ import time from random import random - +import traceback from typing import List from ...memory_system.Hippocampus import HippocampusManager from ...moods.moods import MoodManager @@ -242,7 +242,7 @@ class ReasoningChat: info_catcher.catch_after_generate_response(timing_results["生成回复"]) except Exception as e: - logger.error(f"回复生成出现错误:str{e}") + logger.error(f"回复生成出现错误:{str(e)} {traceback.format_exc()}") response_set = None if not response_set: From 92ac20aaf5331fbf4fa00821147f936fc55062e7 Mon Sep 17 00:00:00 2001 From: tcmofashi Date: Thu, 17 Apr 2025 10:48:07 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E4=B8=BA=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E6=B7=BB=E5=8A=A0format=5Faccept=E7=9A=84?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/message.py | 26 +++++++++++-------- .../think_flow_chat/think_flow_chat.py | 26 +++++++++++-------- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/plugins/chat/message.py b/src/plugins/chat/message.py index 6279e8f25..54e74e01a 100644 --- a/src/plugins/chat/message.py +++ b/src/plugins/chat/message.py @@ -313,17 +313,21 @@ class MessageSending(MessageProcessBase): def set_reply(self, reply: Optional["MessageRecv"] = None) -> None: """设置回复消息""" - if reply: - self.reply = reply - if self.reply: - self.reply_to_message_id = self.reply.message_info.message_id - self.message_segment = Seg( - type="seglist", - data=[ - Seg(type="reply", data=self.reply.message_info.message_id), - self.message_segment, - ], - ) + if ( + self.message_info.format_info.accept_format is not None + and "reply" in self.message_info.format_info.accept_format + ): + if reply: + self.reply = reply + if self.reply: + self.reply_to_message_id = self.reply.message_info.message_id + self.message_segment = Seg( + type="seglist", + data=[ + Seg(type="reply", data=self.reply.message_info.message_id), + self.message_segment, + ], + ) return self async def process(self) -> None: diff --git a/src/plugins/chat_module/think_flow_chat/think_flow_chat.py b/src/plugins/chat_module/think_flow_chat/think_flow_chat.py index 611eb5966..61849f925 100644 --- a/src/plugins/chat_module/think_flow_chat/think_flow_chat.py +++ b/src/plugins/chat_module/think_flow_chat/think_flow_chat.py @@ -365,17 +365,21 @@ class ThinkFlowChat: info_catcher.done_catch() # 处理表情包 - try: - with Timer("处理表情包", timing_results): - if global_config.emoji_chance == 1: - if send_emoji: - logger.info(f"麦麦决定发送表情包{send_emoji}") - await self._handle_emoji(message, chat, response_set, send_emoji) - else: - if random() < global_config.emoji_chance: - await self._handle_emoji(message, chat, response_set) - except Exception as e: - logger.error(f"心流处理表情包失败: {e}") + if ( + message.message_info.format_info.accept_format is not None + and "emoji" in message.message_info.format_info.accept_format + ): + try: + with Timer("处理表情包", timing_results): + if global_config.emoji_chance == 1: + if send_emoji: + logger.info(f"麦麦决定发送表情包{send_emoji}") + await self._handle_emoji(message, chat, response_set, send_emoji) + else: + if random() < global_config.emoji_chance: + await self._handle_emoji(message, chat, response_set) + except Exception as e: + logger.error(f"心流处理表情包失败: {e}") # 思考后脑内状态更新 try: From 12a18f09b9ce5e48730a66da968566133c6c908b Mon Sep 17 00:00:00 2001 From: tcmofashi Date: Sun, 20 Apr 2025 16:42:49 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20=E7=8E=B0=E5=9C=A8=E7=9A=84user?= =?UTF-8?q?=5Fid=E5=92=8Cgroup=5Fid=E6=94=AF=E6=8C=81=E4=B8=94=E5=8D=B3?= =?UTF-8?q?=E5=B0=86=E5=8F=AA=E6=94=AF=E6=8C=81str=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/config.py | 15 ++++++++++----- src/plugins/chat/bot.py | 9 ++++++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/config/config.py b/src/config/config.py index 6c1d54250..0dae02446 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -138,7 +138,7 @@ class BotConfig: MAI_VERSION: str = mai_version # 硬编码的版本信息 # bot - BOT_QQ: Optional[int] = 114514 + BOT_QQ: Optional[str] = "114514" BOT_NICKNAME: Optional[str] = None BOT_ALIAS_NAMES: List[str] = field(default_factory=list) # 别名,可以通过这个叫它 @@ -395,7 +395,7 @@ class BotConfig: # 机器人基础配置 bot_config = parent["bot"] bot_qq = bot_config.get("qq") - config.BOT_QQ = int(bot_qq) + config.BOT_QQ = str(bot_qq) config.BOT_NICKNAME = bot_config.get("nickname", config.BOT_NICKNAME) config.BOT_ALIAS_NAMES = bot_config.get("alias_names", config.BOT_ALIAS_NAMES) @@ -624,9 +624,14 @@ class BotConfig: def groups(parent: dict): groups_config = parent["groups"] - config.talk_allowed_groups = set(groups_config.get("talk_allowed", [])) - config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", [])) - config.ban_user_id = set(groups_config.get("ban_user_id", [])) + # config.talk_allowed_groups = set(groups_config.get("talk_allowed", [])) + config.talk_allowed_groups = set(str(group) for group in groups_config.get("talk_allowed", [])) + # config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", [])) + config.talk_frequency_down_groups = set( + str(group) for group in groups_config.get("talk_frequency_down", []) + ) + # config.ban_user_id = set(groups_config.get("ban_user_id", [])) + config.ban_user_id = set(str(user) for user in groups_config.get("ban_user_id", [])) def platforms(parent: dict): platforms_config = parent["platforms"] diff --git a/src/plugins/chat/bot.py b/src/plugins/chat/bot.py index 9eab99c72..fde617723 100644 --- a/src/plugins/chat/bot.py +++ b/src/plugins/chat/bot.py @@ -79,10 +79,17 @@ class ChatBot: # 确保所有任务已启动 await self._ensure_started() + if message_data["message_info"]["group_info"] is not None: + message_data["message_info"]["group_info"]["group_id"] = str( + message_data["message_info"]["group_info"]["group_id"] + ) + message_data["message_info"]["group_info"]["group_id"] = str( + message_data["message_info"]["group_info"]["group_id"] + ) + logger.trace(f"处理消息:{str(message_data)[:120]}...") message = MessageRecv(message_data) groupinfo = message.message_info.group_info userinfo = message.message_info.user_info - logger.trace(f"处理消息:{str(message_data)[:120]}...") if userinfo.user_id in global_config.ban_user_id: logger.debug(f"用户{userinfo.user_id}被禁止回复")