From 13e05adf806806f90edac86f8dbe294f89113991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=A5=E6=B2=B3=E6=99=B4?= Date: Mon, 21 Apr 2025 14:42:33 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=98=BE=E5=BC=8F=E8=BF=94=E5=9B=9ENo?= =?UTF-8?q?ne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/individuality/individuality.py | 1 + src/plugins/PFC/conversation.py | 8 +++++ src/plugins/chat/message.py | 12 ++++---- src/plugins/chat/utils.py | 5 ++-- .../reasoning_chat/reasoning_chat.py | 29 ++++++++++--------- src/plugins/message/message_base.py | 1 - src/plugins/person_info/person_info.py | 2 +- src/plugins/remote/remote.py | 1 + 8 files changed, 35 insertions(+), 24 deletions(-) diff --git a/src/individuality/individuality.py b/src/individuality/individuality.py index e7616ec27..2a489338a 100644 --- a/src/individuality/individuality.py +++ b/src/individuality/individuality.py @@ -105,3 +105,4 @@ class Individuality: return self.personality.agreeableness elif factor == "neuroticism": return self.personality.neuroticism + return None diff --git a/src/plugins/PFC/conversation.py b/src/plugins/PFC/conversation.py index 598468e89..9502b755c 100644 --- a/src/plugins/PFC/conversation.py +++ b/src/plugins/PFC/conversation.py @@ -180,6 +180,7 @@ class Conversation: "time": datetime.datetime.now().strftime("%H:%M:%S"), } ) + return None elif action == "fetch_knowledge": self.waiter.wait_accumulated_time = 0 @@ -193,28 +194,35 @@ class Conversation: if knowledge: if topic not in self.conversation_info.knowledge_list: self.conversation_info.knowledge_list.append({"topic": topic, "knowledge": knowledge}) + return None else: self.conversation_info.knowledge_list[topic] += knowledge + return None + return None elif action == "rethink_goal": self.waiter.wait_accumulated_time = 0 self.state = ConversationState.RETHINKING await self.goal_analyzer.analyze_goal(conversation_info, observation_info) + return None elif action == "listening": self.state = ConversationState.LISTENING logger.info("倾听对方发言...") await self.waiter.wait_listening(conversation_info) + return None elif action == "end_conversation": self.should_continue = False logger.info("决定结束对话...") + return None else: # wait self.state = ConversationState.WAITING logger.info("等待更多信息...") await self.waiter.wait(self.conversation_info) + return None async def _send_timeout_message(self): """发送超时结束消息""" diff --git a/src/plugins/chat/message.py b/src/plugins/chat/message.py index cbea1fd92..87380e7c0 100644 --- a/src/plugins/chat/message.py +++ b/src/plugins/chat/message.py @@ -1,14 +1,13 @@ import time from dataclasses import dataclass -from typing import Dict, List, Optional +from typing import Dict, List, Optional, Union import urllib3 -from .utils_image import image_manager - -from ..message.message_base import Seg, UserInfo, BaseMessageInfo, MessageBase -from .chat_stream import ChatStream from src.common.logger import get_module_logger +from .chat_stream import ChatStream +from .utils_image import image_manager +from ..message.message_base import Seg, UserInfo, BaseMessageInfo, MessageBase logger = get_module_logger("chat_message") @@ -207,7 +206,7 @@ class MessageProcessBase(Message): # 处理单个消息段 return await self._process_single_segment(segment) - async def _process_single_segment(self, seg: Seg) -> str: + async def _process_single_segment(self, seg: Seg) -> Union[str, None]: """处理单个消息段 Args: @@ -233,6 +232,7 @@ class MessageProcessBase(Message): elif seg.type == "reply": if self.reply and hasattr(self.reply, "processed_plain_text"): return f"[回复:{self.reply.processed_plain_text}]" + return None else: return f"[{seg.type}:{str(seg.data)}]" except Exception as e: diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 9c98a16a5..3e4cfa52d 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -2,7 +2,7 @@ import random import time import re from collections import Counter -from typing import Dict, List +from typing import Dict, List, Optional import jieba import numpy as np @@ -688,7 +688,7 @@ def count_messages_between(start_time: float, end_time: float, stream_id: str) - return 0, 0 -def translate_timestamp_to_human_readable(timestamp: float, mode: str = "normal") -> str: +def translate_timestamp_to_human_readable(timestamp: float, mode: str = "normal") -> Optional[str]: """将时间戳转换为人类可读的时间格式 Args: @@ -716,6 +716,7 @@ def translate_timestamp_to_human_readable(timestamp: float, mode: str = "normal" return f"{int(diff / 86400)}天前:\n" else: return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp)) + ":\n" + return None def parse_text_timestamps(text: str, mode: str = "normal") -> str: diff --git a/src/plugins/chat_module/reasoning_chat/reasoning_chat.py b/src/plugins/chat_module/reasoning_chat/reasoning_chat.py index d149f68b0..2eb56c83b 100644 --- a/src/plugins/chat_module/reasoning_chat/reasoning_chat.py +++ b/src/plugins/chat_module/reasoning_chat/reasoning_chat.py @@ -1,25 +1,26 @@ import time -from random import random import traceback -from typing import List -from ...memory_system.Hippocampus import HippocampusManager -from ...moods.moods import MoodManager -from ....config.config import global_config -from ...chat.emoji_manager import emoji_manager +from random import random +from typing import List, Optional + +from src.common.logger import get_module_logger, CHAT_STYLE_CONFIG, LogConfig +from src.plugins.respon_info_catcher.info_catcher import info_catcher_manager from .reasoning_generator import ResponseGenerator +from ...chat.chat_stream import chat_manager +from ...chat.emoji_manager import emoji_manager from ...chat.message import MessageSending, MessageRecv, MessageThinking, MessageSet +from ...chat.message_buffer import message_buffer from ...chat.messagesender import message_manager -from ...storage.storage import MessageStorage from ...chat.utils import is_mentioned_bot_in_message from ...chat.utils_image import image_path_to_base64 -from ...willing.willing_manager import willing_manager +from ...memory_system.Hippocampus import HippocampusManager from ...message import UserInfo, Seg -from src.common.logger import get_module_logger, CHAT_STYLE_CONFIG, LogConfig -from ...chat.chat_stream import chat_manager +from ...moods.moods import MoodManager from ...person_info.relationship_manager import relationship_manager -from ...chat.message_buffer import message_buffer -from src.plugins.respon_info_catcher.info_catcher import info_catcher_manager +from ...storage.storage import MessageStorage from ...utils.timer_calculater import Timer +from ...willing.willing_manager import willing_manager +from ....config.config import global_config # 定义日志配置 chat_config = LogConfig( @@ -61,7 +62,7 @@ class ReasoningChat: return thinking_id @staticmethod - async def _send_response_messages(message, chat, response_set: List[str], thinking_id) -> MessageSending: + async def _send_response_messages(message, chat, response_set: List[str], thinking_id) -> Optional[MessageSending]: """发送回复消息""" container = message_manager.get_container(chat.stream_id) thinking_message = None @@ -74,7 +75,7 @@ class ReasoningChat: if not thinking_message: logger.warning("未找到对应的思考消息,可能已超时被移除") - return + return None thinking_start_time = thinking_message.thinking_start_time message_set = MessageSet(chat, thinking_id) diff --git a/src/plugins/message/message_base.py b/src/plugins/message/message_base.py index 2f1776702..b853d469a 100644 --- a/src/plugins/message/message_base.py +++ b/src/plugins/message/message_base.py @@ -12,7 +12,6 @@ class Seg: - 对于 text 类型,data 是字符串 - 对于 image 类型,data 是 base64 字符串 - 对于 seglist 类型,data 是 Seg 列表 - translated_data: 经过翻译处理的数据(可选) """ type: str diff --git a/src/plugins/person_info/person_info.py b/src/plugins/person_info/person_info.py index 8105b330f..b4404988e 100644 --- a/src/plugins/person_info/person_info.py +++ b/src/plugins/person_info/person_info.py @@ -169,7 +169,7 @@ class PersonInfoManager: """给某个用户取名""" if not person_id: logger.debug("取名失败:person_id不能为空") - return + return None old_name = await self.get_value(person_id, "person_name") old_reason = await self.get_value(person_id, "name_reason") diff --git a/src/plugins/remote/remote.py b/src/plugins/remote/remote.py index 0d119a3ec..5bc4dab14 100644 --- a/src/plugins/remote/remote.py +++ b/src/plugins/remote/remote.py @@ -134,3 +134,4 @@ def main(): heartbeat_thread.start() return heartbeat_thread # 返回线程对象,便于外部控制 + return None