Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev
This commit is contained in:
@@ -112,7 +112,6 @@ class MemoryActivator:
|
|||||||
# 添加新的关键词到缓存
|
# 添加新的关键词到缓存
|
||||||
self.cached_keywords.update(keywords)
|
self.cached_keywords.update(keywords)
|
||||||
|
|
||||||
|
|
||||||
# 调用记忆系统获取相关记忆
|
# 调用记忆系统获取相关记忆
|
||||||
related_memory = await hippocampus_manager.get_memory_from_topic(
|
related_memory = await hippocampus_manager.get_memory_from_topic(
|
||||||
valid_keywords=keywords, max_memory_num=3, max_memory_length=2, max_depth=3
|
valid_keywords=keywords, max_memory_num=3, max_memory_length=2, max_depth=3
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ willing_manager = get_willing_manager()
|
|||||||
|
|
||||||
logger = get_logger("normal_chat")
|
logger = get_logger("normal_chat")
|
||||||
|
|
||||||
|
|
||||||
class NormalChat:
|
class NormalChat:
|
||||||
"""
|
"""
|
||||||
普通聊天处理类,负责处理非核心对话的聊天逻辑。
|
普通聊天处理类,负责处理非核心对话的聊天逻辑。
|
||||||
@@ -77,7 +78,6 @@ class NormalChat:
|
|||||||
self.recent_replies = []
|
self.recent_replies = []
|
||||||
self.max_replies_history = 20 # 最多保存最近20条回复记录
|
self.max_replies_history = 20 # 最多保存最近20条回复记录
|
||||||
|
|
||||||
|
|
||||||
# 添加回调函数,用于在满足条件时通知切换到focus_chat模式
|
# 添加回调函数,用于在满足条件时通知切换到focus_chat模式
|
||||||
self.on_switch_to_focus_callback = on_switch_to_focus_callback
|
self.on_switch_to_focus_callback = on_switch_to_focus_callback
|
||||||
|
|
||||||
@@ -568,9 +568,7 @@ class NormalChat:
|
|||||||
available_actions = None
|
available_actions = None
|
||||||
if self.enable_planner:
|
if self.enable_planner:
|
||||||
try:
|
try:
|
||||||
await self.action_modifier.modify_actions(
|
await self.action_modifier.modify_actions(mode="normal", message_content=message.processed_plain_text)
|
||||||
mode="normal", message_content=message.processed_plain_text
|
|
||||||
)
|
|
||||||
available_actions = self.action_manager.get_using_actions_for_mode("normal")
|
available_actions = self.action_manager.get_using_actions_for_mode("normal")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"[{self.stream_name}] 获取available_actions失败: {e}")
|
logger.warning(f"[{self.stream_name}] 获取available_actions失败: {e}")
|
||||||
@@ -954,6 +952,7 @@ class NormalChat:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"[{self.stream_name}] 获取疲劳调整系数时出错: {e}")
|
logger.warning(f"[{self.stream_name}] 获取疲劳调整系数时出错: {e}")
|
||||||
return 1.0 # 出错时返回正常系数
|
return 1.0 # 出错时返回正常系数
|
||||||
|
|
||||||
async def _check_should_switch_to_focus(self) -> bool:
|
async def _check_should_switch_to_focus(self) -> bool:
|
||||||
"""
|
"""
|
||||||
检查是否满足切换到focus模式的条件
|
检查是否满足切换到focus模式的条件
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ class DefaultReplyer:
|
|||||||
self.log_prefix = "replyer"
|
self.log_prefix = "replyer"
|
||||||
self.request_type = request_type
|
self.request_type = request_type
|
||||||
|
|
||||||
|
|
||||||
if model_configs:
|
if model_configs:
|
||||||
self.express_model_configs = model_configs
|
self.express_model_configs = model_configs
|
||||||
else:
|
else:
|
||||||
@@ -470,7 +469,13 @@ class DefaultReplyer:
|
|||||||
duration = end_time - start_time
|
duration = end_time - start_time
|
||||||
return name, result, duration
|
return name, result, duration
|
||||||
|
|
||||||
async def build_prompt_reply_context(self, reply_data=None, available_actions: List[str] = None, enable_timeout: bool = False, enable_tool: bool = True) -> str:
|
async def build_prompt_reply_context(
|
||||||
|
self,
|
||||||
|
reply_data=None,
|
||||||
|
available_actions: List[str] = None,
|
||||||
|
enable_timeout: bool = False,
|
||||||
|
enable_tool: bool = True,
|
||||||
|
) -> str:
|
||||||
"""
|
"""
|
||||||
构建回复器上下文
|
构建回复器上下文
|
||||||
|
|
||||||
@@ -537,10 +542,16 @@ class DefaultReplyer:
|
|||||||
|
|
||||||
# 并行执行四个构建任务
|
# 并行执行四个构建任务
|
||||||
task_results = await asyncio.gather(
|
task_results = await asyncio.gather(
|
||||||
self._time_and_run_task(self.build_expression_habits(chat_talking_prompt_half, target), "build_expression_habits"),
|
self._time_and_run_task(
|
||||||
self._time_and_run_task(self.build_relation_info(reply_data, chat_talking_prompt_half), "build_relation_info"),
|
self.build_expression_habits(chat_talking_prompt_half, target), "build_expression_habits"
|
||||||
|
),
|
||||||
|
self._time_and_run_task(
|
||||||
|
self.build_relation_info(reply_data, chat_talking_prompt_half), "build_relation_info"
|
||||||
|
),
|
||||||
self._time_and_run_task(self.build_memory_block(chat_talking_prompt_half, target), "build_memory_block"),
|
self._time_and_run_task(self.build_memory_block(chat_talking_prompt_half, target), "build_memory_block"),
|
||||||
self._time_and_run_task(self.build_tool_info(reply_data, chat_talking_prompt_half, enable_tool=enable_tool), "build_tool_info"),
|
self._time_and_run_task(
|
||||||
|
self.build_tool_info(reply_data, chat_talking_prompt_half, enable_tool=enable_tool), "build_tool_info"
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# 处理结果
|
# 处理结果
|
||||||
|
|||||||
@@ -273,7 +273,6 @@ class MessageReceiveConfig(ConfigBase):
|
|||||||
class NormalChatConfig(ConfigBase):
|
class NormalChatConfig(ConfigBase):
|
||||||
"""普通聊天配置类"""
|
"""普通聊天配置类"""
|
||||||
|
|
||||||
|
|
||||||
willing_mode: str = "classical"
|
willing_mode: str = "classical"
|
||||||
"""意愿模式"""
|
"""意愿模式"""
|
||||||
|
|
||||||
@@ -290,7 +289,6 @@ class NormalChatConfig(ConfigBase):
|
|||||||
"""是否启用动作规划器"""
|
"""是否启用动作规划器"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class FocusChatConfig(ConfigBase):
|
class FocusChatConfig(ConfigBase):
|
||||||
"""专注聊天配置类"""
|
"""专注聊天配置类"""
|
||||||
|
|||||||
@@ -92,9 +92,7 @@ async def generate_reply(
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# 获取回复器
|
# 获取回复器
|
||||||
replyer = get_replyer(
|
replyer = get_replyer(chat_stream, chat_id, model_configs=model_configs, request_type=request_type)
|
||||||
chat_stream, chat_id, model_configs=model_configs, request_type=request_type
|
|
||||||
)
|
|
||||||
if not replyer:
|
if not replyer:
|
||||||
logger.error("[GeneratorAPI] 无法获取回复器")
|
logger.error("[GeneratorAPI] 无法获取回复器")
|
||||||
return False, []
|
return False, []
|
||||||
|
|||||||
Reference in New Issue
Block a user