This commit is contained in:
SengokuCola
2025-05-06 13:53:33 +08:00
parent 8b619069d5
commit f9a4935774
4 changed files with 10 additions and 8 deletions

View File

@@ -8,14 +8,14 @@ logger = get_logger("rename_person_tool")
class RenamePersonTool(BaseTool): class RenamePersonTool(BaseTool):
name = "rename_person" name = "rename_person"
description = "这个工具可以改变用户的昵称。你可以选择改变对他人的称呼。" description = "这个工具可以改变用户的昵称。你可以选择改变对他人的称呼。你想给人改名,叫别人别的称呼,需要调用这个工具。"
parameters = { parameters = {
"type": "object", "type": "object",
"properties": { "properties": {
"person_name": {"type": "string", "description": "需要重新取名的用户的当前昵称"}, "person_name": {"type": "string", "description": "需要重新取名的用户的当前昵称"},
"message_content": { "message_content": {
"type": "string", "type": "string",
"description": "可选的。当前的聊天内容或特定要求,用于提供取名建议的上下文。", "description": "当前的聊天内容或特定要求,用于提供取名建议的上下文,尽可能详细",
}, },
}, },
"required": ["person_name"], "required": ["person_name"],

View File

@@ -672,12 +672,12 @@ class SubHeartflowManager:
"""处理来自 HeartFChatting 的连续无回复信号 (通过 partial 绑定 ID)""" """处理来自 HeartFChatting 的连续无回复信号 (通过 partial 绑定 ID)"""
# 注意:这里不需要再获取锁,因为 sbhf_focus_into_absent 内部会处理锁 # 注意:这里不需要再获取锁,因为 sbhf_focus_into_absent 内部会处理锁
logger.debug(f"[管理器 HFC 处理器] 接收到来自 {subheartflow_id} 的 HFC 无回复信号") logger.debug(f"[管理器 HFC 处理器] 接收到来自 {subheartflow_id} 的 HFC 无回复信号")
await self.sbhf_focus_into_absent(subheartflow_id) await self.sbhf_focus_into_absent_or_chat(subheartflow_id)
# --- 结束新增 --- # # --- 结束新增 --- #
# --- 新增:处理来自 HeartFChatting 的状态转换请求 --- # # --- 新增:处理来自 HeartFChatting 的状态转换请求 --- #
async def sbhf_focus_into_absent(self, subflow_id: Any): async def sbhf_focus_into_absent_or_chat(self, subflow_id: Any):
""" """
接收来自 HeartFChatting 的请求,将特定子心流的状态转换为 ABSENT 或 CHAT。 接收来自 HeartFChatting 的请求,将特定子心流的状态转换为 ABSENT 或 CHAT。
通常在连续多次 "no_reply" 后被调用。 通常在连续多次 "no_reply" 后被调用。
@@ -729,6 +729,8 @@ class SubHeartflowManager:
f"[状态转换请求] 接收到请求,将 {stream_name} (当前: {current_state.value}) 尝试转换为 {target_state.value} ({log_reason})" f"[状态转换请求] 接收到请求,将 {stream_name} (当前: {current_state.value}) 尝试转换为 {target_state.value} ({log_reason})"
) )
try: try:
# 从HFC到CHAT时清空兴趣字典
subflow.clear_interest_dict()
await subflow.change_chat_state(target_state) await subflow.change_chat_state(target_state)
final_state = subflow.chat_state.chat_status final_state = subflow.chat_state.chat_status
if final_state == target_state: if final_state == target_state:

View File

@@ -215,9 +215,9 @@ class PersonInfoManager:
if old_name: if old_name:
qv_name_prompt += f"你之前叫他{old_name},是因为{old_reason}" qv_name_prompt += f"你之前叫他{old_name},是因为{old_reason}"
qv_name_prompt += f"\n其他取名的要求是:{request}" qv_name_prompt += f"\n其他取名的要求是:{request},不要太浮夸"
qv_name_prompt += "\n请根据以上用户信息想想你叫他什么比较好请最好使用用户的qq昵称可以稍作修改" qv_name_prompt += "\n请根据以上用户信息,想想你叫他什么比较好,不要太浮夸,请最好使用用户的qq昵称可以稍作修改"
if existing_names: if existing_names:
qv_name_prompt += f"\n请注意,以下名称已被使用,不要使用以下昵称:{existing_names}\n" qv_name_prompt += f"\n请注意,以下名称已被使用,不要使用以下昵称:{existing_names}\n"
qv_name_prompt += "请用json给出你的想法并给出理由示例如下" qv_name_prompt += "请用json给出你的想法并给出理由示例如下"

View File

@@ -69,8 +69,8 @@ nonebot-qq="http://127.0.0.1:18002/api/message"
allow_focus_mode = true # 是否允许专注聊天状态 allow_focus_mode = true # 是否允许专注聊天状态
# 是否启用heart_flowC(HFC)模式 # 是否启用heart_flowC(HFC)模式
# 启用后麦麦会自主选择进入heart_flowC模式(持续一段时间进行主动的观察和回复并给出回复比较消耗token # 启用后麦麦会自主选择进入heart_flowC模式(持续一段时间进行主动的观察和回复并给出回复比较消耗token
base_normal_chat_num = 3 # 最多允许多少个群进行普通聊天 base_normal_chat_num = 8 # 最多允许多少个群进行普通聊天
base_focused_chat_num = 2 # 最多允许多少个群进行专注聊天 base_focused_chat_num = 5 # 最多允许多少个群进行专注聊天
observation_context_size = 15 # 观察到的最长上下文大小,建议15太短太长都会导致脑袋尖尖 observation_context_size = 15 # 观察到的最长上下文大小,建议15太短太长都会导致脑袋尖尖
message_buffer = true # 启用消息缓冲器?启用此项以解决消息的拆分问题,但会使麦麦的回复延迟 message_buffer = true # 启用消息缓冲器?启用此项以解决消息的拆分问题,但会使麦麦的回复延迟