🤖 自动格式化代码 [skip ci]
This commit is contained in:
@@ -407,7 +407,7 @@ class SubHeartflowManager:
|
|||||||
f"基于以上信息,该子心流是否表现出足够的活跃迹象或重要性,"
|
f"基于以上信息,该子心流是否表现出足够的活跃迹象或重要性,"
|
||||||
f"值得将其唤醒并进入常规聊天(CHAT)状态?\n"
|
f"值得将其唤醒并进入常规聊天(CHAT)状态?\n"
|
||||||
f"请以 JSON 格式回答,包含一个键 'decision',其值为 true 或 false.\n"
|
f"请以 JSON 格式回答,包含一个键 'decision',其值为 true 或 false.\n"
|
||||||
f"例如:{{\"decision\": true}}\n"
|
f'例如:{{"decision": true}}\n'
|
||||||
f"请只输出有效的 JSON 对象。"
|
f"请只输出有效的 JSON 对象。"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -445,7 +445,7 @@ class SubHeartflowManager:
|
|||||||
f"基于以上信息,该子心流是否表现出不活跃、对话结束或不再需要关注的迹象,"
|
f"基于以上信息,该子心流是否表现出不活跃、对话结束或不再需要关注的迹象,"
|
||||||
f"应该让其进入休眠(ABSENT)状态?\n"
|
f"应该让其进入休眠(ABSENT)状态?\n"
|
||||||
f"请以 JSON 格式回答,包含一个键 'decision',其值为 true (表示应休眠) 或 false (表示不应休眠).\n"
|
f"请以 JSON 格式回答,包含一个键 'decision',其值为 true (表示应休眠) 或 false (表示不应休眠).\n"
|
||||||
f"例如:{{\"decision\": true}}\n"
|
f'例如:{{"decision": true}}\n'
|
||||||
f"请只输出有效的 JSON 对象。"
|
f"请只输出有效的 JSON 对象。"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -482,13 +482,15 @@ class SubHeartflowManager:
|
|||||||
try:
|
try:
|
||||||
# --- 真实的 LLM 调用 ---
|
# --- 真实的 LLM 调用 ---
|
||||||
response_text, _ = await self.llm_state_evaluator.generate_response_async(prompt)
|
response_text, _ = await self.llm_state_evaluator.generate_response_async(prompt)
|
||||||
logger.debug(f"{log_prefix} 使用模型 {self.llm_state_evaluator.model_name} 评估,原始响应: ```{response_text}```")
|
logger.debug(
|
||||||
|
f"{log_prefix} 使用模型 {self.llm_state_evaluator.model_name} 评估,原始响应: ```{response_text}```"
|
||||||
|
)
|
||||||
|
|
||||||
# --- 解析 JSON 响应 ---
|
# --- 解析 JSON 响应 ---
|
||||||
try:
|
try:
|
||||||
# 尝试去除可能的Markdown代码块标记
|
# 尝试去除可能的Markdown代码块标记
|
||||||
cleaned_response = response_text.strip().strip('`').strip()
|
cleaned_response = response_text.strip().strip("`").strip()
|
||||||
if cleaned_response.startswith('json'):
|
if cleaned_response.startswith("json"):
|
||||||
cleaned_response = cleaned_response[4:].strip()
|
cleaned_response = cleaned_response[4:].strip()
|
||||||
|
|
||||||
data = json.loads(cleaned_response)
|
data = json.loads(cleaned_response)
|
||||||
@@ -498,7 +500,9 @@ class SubHeartflowManager:
|
|||||||
logger.debug(f"{log_prefix} LLM评估结果 (来自JSON): {'建议转换' if decision else '建议不转换'}")
|
logger.debug(f"{log_prefix} LLM评估结果 (来自JSON): {'建议转换' if decision else '建议不转换'}")
|
||||||
return decision
|
return decision
|
||||||
else:
|
else:
|
||||||
logger.warning(f"{log_prefix} LLM 返回的 JSON 中 'decision' 键的值不是布尔型: {decision}。响应: {response_text}")
|
logger.warning(
|
||||||
|
f"{log_prefix} LLM 返回的 JSON 中 'decision' 键的值不是布尔型: {decision}。响应: {response_text}"
|
||||||
|
)
|
||||||
return None # 值类型不正确
|
return None # 值类型不正确
|
||||||
|
|
||||||
except json.JSONDecodeError as json_err:
|
except json.JSONDecodeError as json_err:
|
||||||
|
|||||||
@@ -342,7 +342,9 @@ class NormalChat:
|
|||||||
mean_interest = statistics.mean(interest_values)
|
mean_interest = statistics.mean(interest_values)
|
||||||
stdev_interest = statistics.stdev(interest_values)
|
stdev_interest = statistics.stdev(interest_values)
|
||||||
threshold = mean_interest + stdev_interest
|
threshold = mean_interest + stdev_interest
|
||||||
logger.info(f"[{self.stream_name}] 初始兴趣值 均值: {mean_interest:.2f}, 标准差: {stdev_interest:.2f}, 阈值: {threshold:.2f}")
|
logger.info(
|
||||||
|
f"[{self.stream_name}] 初始兴趣值 均值: {mean_interest:.2f}, 标准差: {stdev_interest:.2f}, 阈值: {threshold:.2f}"
|
||||||
|
)
|
||||||
|
|
||||||
# 找出高于阈值的消息
|
# 找出高于阈值的消息
|
||||||
for item in items_to_process:
|
for item in items_to_process:
|
||||||
@@ -359,9 +361,7 @@ class NormalChat:
|
|||||||
msg_id, (message, interest_value, is_mentioned) = item
|
msg_id, (message, interest_value, is_mentioned) = item
|
||||||
try:
|
try:
|
||||||
logger.info(f"[{self.stream_name}] 处理初始高兴趣消息 {msg_id} (兴趣值: {interest_value:.2f})")
|
logger.info(f"[{self.stream_name}] 处理初始高兴趣消息 {msg_id} (兴趣值: {interest_value:.2f})")
|
||||||
await self.normal_response(
|
await self.normal_response(message=message, is_mentioned=is_mentioned, interested_rate=interest_value)
|
||||||
message=message, is_mentioned=is_mentioned, interested_rate=interest_value
|
|
||||||
)
|
|
||||||
processed_count += 1
|
processed_count += 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"[{self.stream_name}] 处理初始兴趣消息 {msg_id} 时出错: {e}\n{traceback.format_exc()}")
|
logger.error(f"[{self.stream_name}] 处理初始兴趣消息 {msg_id} 时出错: {e}\n{traceback.format_exc()}")
|
||||||
@@ -369,8 +369,10 @@ class NormalChat:
|
|||||||
# 无论成功与否都清空兴趣字典
|
# 无论成功与否都清空兴趣字典
|
||||||
self.interest_dict.clear()
|
self.interest_dict.clear()
|
||||||
|
|
||||||
|
logger.info(
|
||||||
|
f"[{self.stream_name}] 初始高兴趣消息处理完毕,共处理 {processed_count} 条。剩余 {len(self.interest_dict)} 条待轮询。"
|
||||||
|
)
|
||||||
|
|
||||||
logger.info(f"[{self.stream_name}] 初始高兴趣消息处理完毕,共处理 {processed_count} 条。剩余 {len(self.interest_dict)} 条待轮询。")
|
|
||||||
# --- 新增结束 ---
|
# --- 新增结束 ---
|
||||||
|
|
||||||
# 保持 staticmethod, 因为不依赖实例状态, 但需要 chat 对象来获取日志上下文
|
# 保持 staticmethod, 因为不依赖实例状态, 但需要 chat 对象来获取日志上下文
|
||||||
|
|||||||
Reference in New Issue
Block a user