fix:优化表达方式log和最大表达数量,优化配置文件注释

This commit is contained in:
SengokuCola
2025-06-03 20:33:01 +08:00
parent f94f14cce2
commit e2d478441d
3 changed files with 29 additions and 13 deletions

View File

@@ -7,10 +7,11 @@ from src.config.config import global_config
from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp_random, build_anonymous_messages
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
import os
from src.chat.message_receive.chat_stream import chat_manager
import json
MAX_EXPRESSION_COUNT = 100
MAX_EXPRESSION_COUNT = 300
logger = get_logger("expressor")
@@ -129,9 +130,19 @@ class ExpressionLearner:
type_str = "句法特点"
else:
raise ValueError(f"Invalid type: {type}")
logger.info(f"开始学习{type_str}...")
learnt_expressions: Optional[List[Tuple[str, str, str]]] = await self.learn_expression(type, num)
logger.info(f"学习到{len(learnt_expressions) if learnt_expressions else 0}{type_str}")
# logger.info(f"开始学习{type_str}...")
learnt_expressions,chat_id = await self.learn_expression(type, num)
chat_stream = chat_manager.get_stream(chat_id)
if chat_stream.group_info:
group_name = chat_stream.group_info.group_name
else:
group_name = f"{chat_stream.user_info.user_nickname}的私聊"
learnt_expressions_str = ""
for _chat_id, situation, style in learnt_expressions:
learnt_expressions_str += f"{situation}->{style}\n"
logger.info(f"{group_name} 学习到{type_str}:\n{learnt_expressions_str}")
# learnt_expressions: List[(chat_id, situation, style)]
if not learnt_expressions:
@@ -188,7 +199,7 @@ class ExpressionLearner:
json.dump(old_data, f, ensure_ascii=False, indent=2)
return learnt_expressions
async def learn_expression(self, type: str, num: int = 10) -> Optional[List[Tuple[str, str, str]]]:
async def learn_expression(self, type: str, num: int = 10) -> Optional[Tuple[List[Tuple[str, str, str]], str]]:
"""选择从当前到最近1小时内的随机num条消息然后学习这些消息的表达方式
Args:
@@ -233,7 +244,7 @@ class ExpressionLearner:
expressions: List[Tuple[str, str, str]] = self.parse_expression_response(response, chat_id)
return expressions
return expressions,chat_id
def parse_expression_response(self, response: str, chat_id: str) -> List[Tuple[str, str, str]]:
"""

View File

@@ -75,9 +75,9 @@ class SubHeartflow:
self.log_prefix = (
chat_manager.get_stream_name(self.subheartflow_id) or self.subheartflow_id
) # Keep this line or adjust if utils provides name
logger.debug(
f"SubHeartflow {self.chat_id} initialized: is_group={self.is_group_chat}, target_info={self.chat_target_info}"
)
# logger.debug(
# f"SubHeartflow {self.chat_id} initialized: is_group={self.is_group_chat}, target_info={self.chat_target_info}"
# )
# 根据配置决定初始状态
if global_config.chat.chat_mode == "focus":