feat:给超时处理器默认值

This commit is contained in:
SengokuCola
2025-05-29 13:38:11 +08:00
parent 126111c83c
commit b741ef761a
4 changed files with 34 additions and 10 deletions

View File

@@ -11,6 +11,7 @@ from datetime import datetime
from typing import Dict
from src.llm_models.utils_model import LLMRequest
from src.config.config import global_config
import asyncio
logger = get_logger("processor")
@@ -59,7 +60,8 @@ class ChattingInfoProcessor(BaseProcessor):
obs_info = ObsInfo()
await self.chat_compress(obs)
# 改为异步任务,不阻塞主流程
asyncio.create_task(self.chat_compress(obs))
# 设置说话消息
if hasattr(obs, "talking_message_str"):
@@ -95,15 +97,20 @@ class ChattingInfoProcessor(BaseProcessor):
return processed_infos
async def chat_compress(self, obs: ChattingObservation):
log_msg = ""
if obs.compressor_prompt:
summary = ""
try:
summary_result, _, _ = await self.model_summary.generate_response(obs.compressor_prompt)
summary = "没有主题的闲聊" # 默认值
if summary_result: # 确保结果不为空
summary = "没有主题的闲聊"
if summary_result:
summary = summary_result
except Exception as e:
logger.error(f"总结主题失败 for chat {obs.chat_id}: {e}")
log_msg = f"总结主题失败 for chat {obs.chat_id}: {e}"
logger.error(log_msg)
else:
log_msg = f"chat_compress 完成 for chat {obs.chat_id}, summary: {summary}"
logger.info(log_msg)
mid_memory = {
"id": str(int(datetime.now().timestamp())),
@@ -130,3 +137,5 @@ class ChattingInfoProcessor(BaseProcessor):
obs.compressor_prompt = ""
obs.oldest_messages = []
obs.oldest_messages_str = ""
return log_msg

View File

@@ -122,11 +122,24 @@ class ActionPlanner:
# 继续处理其他信息
self_info = ""
current_mind = ""
# 设置默认值
nickname_str = ""
for nicknames in global_config.bot.alias_names:
nickname_str += f"{nicknames},"
name_block = f"你的名字是{global_config.bot.nickname},你的昵称有{nickname_str},有人也会用这些昵称称呼你。"
personality_block = individuality.get_personality_prompt(x_person=2, level=2)
identity_block = individuality.get_identity_prompt(x_person=2, level=2)
self_info = name_block + personality_block + identity_block
current_mind = "你思考了很久,没有想清晰要做什么"
cycle_info = ""
structured_info = ""
extra_info = []
observed_messages = []
observed_messages_str = ""
chat_type = "group"
is_group_chat = True
for info in all_plan_info:
if isinstance(info, ObsInfo):