mirror of https://github.com/Mai-with-u/MaiBot.git
为 planner 的 prompt 增加绰号注入,修改 config 默认配置
parent
abc6613f94
commit
d62e9f0a87
|
|
@ -279,7 +279,7 @@ class BotConfig:
|
|||
MAX_NICKNAMES_IN_PROMPT: int = 10 # Prompt 中最多注入的绰号数量
|
||||
NICKNAME_PROBABILITY_SMOOTHING: int = 1 # 绰号加权随机选择的平滑因子
|
||||
NICKNAME_QUEUE_MAX_SIZE: int = 100 # 绰号处理队列最大容量
|
||||
NICKNAME_PROCESS_SLEEP_INTERVAL: float = 0.5 # 绰号处理进程休眠间隔(秒)
|
||||
NICKNAME_PROCESS_SLEEP_INTERVAL: float = 5 # 绰号处理进程休眠间隔(秒)
|
||||
|
||||
# 模型配置
|
||||
llm_reasoning: dict[str, str] = field(default_factory=lambda: {})
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ from src.plugins.moods.moods import MoodManager
|
|||
from src.heart_flow.utils_chat import get_chat_type_and_target_info
|
||||
from rich.traceback import install
|
||||
from src.plugins.group_nickname.nickname_utils import trigger_nickname_analysis_if_needed
|
||||
from src.plugins.utils.chat_message_builder import get_raw_msg_before_timestamp_with_chat
|
||||
from src.plugins.group_nickname.nickname_utils import get_nickname_injection_for_prompt
|
||||
|
||||
install(show_locals=True, extra_lines=3)
|
||||
|
||||
|
|
@ -865,6 +867,15 @@ class HeartFChatting:
|
|||
f"{self.log_prefix}[Planner] 临时移除的动作: {actions_to_remove_temporarily}, 当前可用: {list(current_available_actions.keys())}"
|
||||
)
|
||||
|
||||
# 需要获取用于上下文的历史消息
|
||||
message_list_before_now = get_raw_msg_before_timestamp_with_chat(
|
||||
chat_id=self.stream_id,
|
||||
timestamp=time.time(), # 使用当前时间作为参考点
|
||||
limit=global_config.observation_context_size, # 使用与 prompt 构建一致的 limit
|
||||
)
|
||||
# 调用工具函数获取格式化后的绰号字符串
|
||||
nickname_injection_str = await get_nickname_injection_for_prompt(self.chat_stream, message_list_before_now)
|
||||
print(nickname_injection_str)
|
||||
# --- 构建提示词 (调用修改后的 PromptBuilder 方法) ---
|
||||
prompt = await prompt_builder.build_planner_prompt(
|
||||
is_group_chat=self.is_group_chat, # <-- Pass HFC state
|
||||
|
|
@ -874,6 +885,7 @@ class HeartFChatting:
|
|||
current_mind=current_mind, # <-- Pass argument
|
||||
structured_info=self.sub_mind.structured_info_str, # <-- Pass SubMind info
|
||||
current_available_actions=current_available_actions, # <-- Pass determined actions
|
||||
nickname_info=nickname_injection_str,
|
||||
)
|
||||
|
||||
# --- 调用 LLM (普通文本生成) ---
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ def init_prompt():
|
|||
Prompt(
|
||||
"""你的名字是{bot_name},{prompt_personality},{chat_context_description}。需要基于以下信息决定如何参与对话:
|
||||
{structured_info_block}
|
||||
{nickname_info}
|
||||
{chat_content_block}
|
||||
{current_mind_block}
|
||||
{cycle_info_block}
|
||||
|
|
@ -766,6 +767,7 @@ class PromptBuilder:
|
|||
current_mind: Optional[str],
|
||||
structured_info: Dict[str, Any],
|
||||
current_available_actions: Dict[str, str],
|
||||
nickname_info: str,
|
||||
# replan_prompt: str, # Replan logic still simplified
|
||||
) -> str:
|
||||
"""构建 Planner LLM 的提示词 (获取模板并填充数据)"""
|
||||
|
|
@ -847,6 +849,7 @@ class PromptBuilder:
|
|||
|
||||
prompt = planner_prompt_template.format(
|
||||
bot_name=global_config.BOT_NICKNAME,
|
||||
nickname_info=nickname_info,
|
||||
prompt_personality=prompt_personality,
|
||||
chat_context_description=chat_context_description,
|
||||
structured_info_block=structured_info_block,
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ enable_nickname_mapping = false # 绰号映射功能总开关(默认关闭,
|
|||
max_nicknames_in_prompt = 10 # Prompt 中最多注入的绰号数量(防止token数量爆炸)
|
||||
nickname_probability_smoothing = 1 # 绰号加权随机选择的平滑因子
|
||||
nickname_queue_max_size = 100 # 绰号处理队列最大容量
|
||||
nickname_process_sleep_interval = 0.5 # 绰号处理进程休眠间隔(秒)
|
||||
nickname_process_sleep_interval = 5 # 绰号处理进程休眠间隔(秒)
|
||||
|
||||
[memory]
|
||||
build_memory_interval = 2000 # 记忆构建间隔 单位秒 间隔越低,麦麦学习越多,但是冗余信息也会增多
|
||||
|
|
|
|||
Loading…
Reference in New Issue