feat 统一心情配置,为rewartite加入心情
This commit is contained in:
@@ -111,9 +111,9 @@ class HeartFCMessageReceiver:
|
|||||||
subheartflow: SubHeartflow = await heartflow.get_or_create_subheartflow(chat.stream_id) # type: ignore
|
subheartflow: SubHeartflow = await heartflow.get_or_create_subheartflow(chat.stream_id) # type: ignore
|
||||||
|
|
||||||
# subheartflow.add_message_to_normal_chat_cache(message, interested_rate, is_mentioned)
|
# subheartflow.add_message_to_normal_chat_cache(message, interested_rate, is_mentioned)
|
||||||
|
if global_config.mood.enable_mood:
|
||||||
chat_mood = mood_manager.get_mood_by_chat_id(subheartflow.chat_id)
|
chat_mood = mood_manager.get_mood_by_chat_id(subheartflow.chat_id)
|
||||||
asyncio.create_task(chat_mood.update_mood_by_message(message, interested_rate))
|
asyncio.create_task(chat_mood.update_mood_by_message(message, interested_rate))
|
||||||
|
|
||||||
# 3. 日志记录
|
# 3. 日志记录
|
||||||
mes_name = chat.group_info.group_name if chat.group_info else "私聊"
|
mes_name = chat.group_info.group_name if chat.group_info else "私聊"
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ def init_prompt():
|
|||||||
|
|
||||||
你正在{chat_target_2},{reply_target_block}
|
你正在{chat_target_2},{reply_target_block}
|
||||||
对这句话,你想表达,原句:{raw_reply},原因是:{reason}。你现在要思考怎么组织回复
|
对这句话,你想表达,原句:{raw_reply},原因是:{reason}。你现在要思考怎么组织回复
|
||||||
|
你现在的心情是:{mood_state}
|
||||||
你需要使用合适的语法和句法,参考聊天内容,组织一条日常且口语化的回复。请你修改你想表达的原句,符合你的表达风格和语言习惯
|
你需要使用合适的语法和句法,参考聊天内容,组织一条日常且口语化的回复。请你修改你想表达的原句,符合你的表达风格和语言习惯
|
||||||
{config_expression_style},你可以完全重组回复,保留最基本的表达含义就好,但重组后保持语意通顺。
|
{config_expression_style},你可以完全重组回复,保留最基本的表达含义就好,但重组后保持语意通顺。
|
||||||
{keywords_reaction_prompt}
|
{keywords_reaction_prompt}
|
||||||
@@ -620,9 +621,12 @@ class DefaultReplyer:
|
|||||||
is_group_chat = bool(chat_stream.group_info)
|
is_group_chat = bool(chat_stream.group_info)
|
||||||
reply_to = reply_data.get("reply_to", "none")
|
reply_to = reply_data.get("reply_to", "none")
|
||||||
extra_info_block = reply_data.get("extra_info", "") or reply_data.get("extra_info_block", "")
|
extra_info_block = reply_data.get("extra_info", "") or reply_data.get("extra_info_block", "")
|
||||||
|
|
||||||
chat_mood = mood_manager.get_mood_by_chat_id(chat_id)
|
if global_config.mood.enable_mood:
|
||||||
mood_prompt = chat_mood.mood_state
|
chat_mood = mood_manager.get_mood_by_chat_id(chat_id)
|
||||||
|
mood_prompt = chat_mood.mood_state
|
||||||
|
else:
|
||||||
|
mood_prompt = ""
|
||||||
|
|
||||||
sender, target = self._parse_reply_target(reply_to)
|
sender, target = self._parse_reply_target(reply_to)
|
||||||
|
|
||||||
@@ -883,6 +887,13 @@ class DefaultReplyer:
|
|||||||
reason = reply_data.get("reason", "")
|
reason = reply_data.get("reason", "")
|
||||||
sender, target = self._parse_reply_target(reply_to)
|
sender, target = self._parse_reply_target(reply_to)
|
||||||
|
|
||||||
|
# 添加情绪状态获取
|
||||||
|
if global_config.mood.enable_mood:
|
||||||
|
chat_mood = mood_manager.get_mood_by_chat_id(chat_id)
|
||||||
|
mood_prompt = chat_mood.mood_state
|
||||||
|
else:
|
||||||
|
mood_prompt = ""
|
||||||
|
|
||||||
message_list_before_now_half = get_raw_msg_before_timestamp_with_chat(
|
message_list_before_now_half = get_raw_msg_before_timestamp_with_chat(
|
||||||
chat_id=chat_id,
|
chat_id=chat_id,
|
||||||
timestamp=time.time(),
|
timestamp=time.time(),
|
||||||
@@ -963,6 +974,7 @@ class DefaultReplyer:
|
|||||||
reply_target_block=reply_target_block,
|
reply_target_block=reply_target_block,
|
||||||
raw_reply=raw_reply,
|
raw_reply=raw_reply,
|
||||||
reason=reason,
|
reason=reason,
|
||||||
|
mood_state=mood_prompt, # 添加情绪状态参数
|
||||||
config_expression_style=global_config.expression.expression_style,
|
config_expression_style=global_config.expression.expression_style,
|
||||||
keywords_reaction_prompt=keywords_reaction_prompt,
|
keywords_reaction_prompt=keywords_reaction_prompt,
|
||||||
moderation_prompt=moderation_prompt_block,
|
moderation_prompt=moderation_prompt_block,
|
||||||
|
|||||||
@@ -408,15 +408,9 @@ class MoodConfig(ConfigBase):
|
|||||||
|
|
||||||
enable_mood: bool = False
|
enable_mood: bool = False
|
||||||
"""是否启用情绪系统"""
|
"""是否启用情绪系统"""
|
||||||
|
|
||||||
mood_update_interval: int = 1
|
mood_update_threshold: float = 1.0
|
||||||
"""情绪更新间隔(秒)"""
|
"""情绪更新阈值,越高,更新越慢"""
|
||||||
|
|
||||||
mood_decay_rate: float = 0.95
|
|
||||||
"""情绪衰减率"""
|
|
||||||
|
|
||||||
mood_intensity_factor: float = 0.7
|
|
||||||
"""情绪强度因子"""
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class ChatMood:
|
|||||||
logger.debug(
|
logger.debug(
|
||||||
f"base_probability: {base_probability}, time_multiplier: {time_multiplier}, interest_multiplier: {interest_multiplier}"
|
f"base_probability: {base_probability}, time_multiplier: {time_multiplier}, interest_multiplier: {interest_multiplier}"
|
||||||
)
|
)
|
||||||
update_probability = min(1.0, base_probability * time_multiplier * interest_multiplier)
|
update_probability = global_config.mood.mood_update_threshold * min(1.0, base_probability * time_multiplier * interest_multiplier)
|
||||||
|
|
||||||
if random.random() > update_probability:
|
if random.random() > update_probability:
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -148,9 +148,7 @@ enable_asr = false # 是否启用语音识别,启用后麦麦可以识别语
|
|||||||
|
|
||||||
[mood]
|
[mood]
|
||||||
enable_mood = true # 是否启用情绪系统
|
enable_mood = true # 是否启用情绪系统
|
||||||
mood_update_interval = 1.0 # 情绪更新间隔 单位秒
|
mood_update_threshold = 1 # 情绪更新阈值,越高,更新越慢
|
||||||
mood_decay_rate = 0.95 # 情绪衰减率
|
|
||||||
mood_intensity_factor = 1.0 # 情绪强度因子
|
|
||||||
|
|
||||||
[lpmm_knowledge] # lpmm知识库配置
|
[lpmm_knowledge] # lpmm知识库配置
|
||||||
enable = false # 是否启用lpmm知识库
|
enable = false # 是否启用lpmm知识库
|
||||||
|
|||||||
Reference in New Issue
Block a user