planner思考现在加入replyer

pull/1359/head
SengokuCola 2025-11-16 00:16:23 +08:00
parent 0123d68578
commit 22dca15f0a
5 changed files with 23 additions and 3 deletions

View File

@ -764,7 +764,9 @@ class HeartFChatting:
# 重置连续 no_reply 计数
self.consecutive_no_reply_count = 0
reason = action_planner_info.reasoning or "选择回复"
reason = action_planner_info.reasoning or ""
# 使用 action_reasoningplanner 的整体思考理由)作为 reply_reason
planner_reasoning = action_planner_info.action_reasoning or reason
await database_api.store_action_info(
chat_stream=self.chat_stream,
action_build_into_prompt=False,
@ -781,7 +783,7 @@ class HeartFChatting:
reply_message=action_planner_info.action_message,
available_actions=available_actions,
chosen_actions=chosen_action_plan_infos,
reply_reason=reason,
reply_reason=planner_reasoning,
enable_tool=global_config.tool.enable_tool,
request_type="replyer",
from_plugin=False,

View File

@ -845,6 +845,12 @@ class DefaultReplyer:
keywords_reaction_prompt = await self.build_keywords_reaction_prompt(target)
mood_state_prompt: str = results_dict["mood_state_prompt"]
# 从 chosen_actions 中提取 planner 的整体思考理由
planner_reasoning = ""
if reply_reason:
# 如果没有 chosen_actions使用 reply_reason 作为备选
planner_reasoning = f"你的想法是:{reply_reason}"
if extra_info:
extra_info_block = f"以下是你在回复时需要参考的信息,现在请你阅读以下内容,进行决策\n{extra_info}\n以上是你在回复时需要参考的信息,现在请你阅读以下内容,进行决策"
else:
@ -899,6 +905,7 @@ class DefaultReplyer:
moderation_prompt=moderation_prompt_block,
memory_retrieval=memory_retrieval,
chat_prompt=chat_prompt_block,
planner_reasoning=planner_reasoning,
), selected_expressions
async def build_prompt_rewrite_context(

View File

@ -765,6 +765,12 @@ class PrivateReplyer:
memory_retrieval: str = results_dict["memory_retrieval"]
keywords_reaction_prompt = await self.build_keywords_reaction_prompt(target)
# 从 chosen_actions 中提取 planner 的整体思考理由
planner_reasoning = ""
if reply_reason:
# 如果没有 chosen_actions使用 reply_reason 作为备选
planner_reasoning = f"你的想法是:{reply_reason}"
if extra_info:
extra_info_block = f"以下是你在回复时需要参考的信息,现在请你阅读以下内容,进行决策\n{extra_info}\n以上是你在回复时需要参考的信息,现在请你阅读以下内容,进行决策"
else:
@ -834,6 +840,7 @@ class PrivateReplyer:
sender_name=sender,
memory_retrieval=memory_retrieval,
chat_prompt=chat_prompt_block,
planner_reasoning=planner_reasoning,
), selected_expressions
async def build_prompt_rewrite_context(

View File

@ -16,12 +16,13 @@ def init_replyer_prompt():
{dialogue_prompt}
{reply_target_block}
{planner_reasoning}
{identity}
{chat_prompt}你正在群里聊天,现在请你读读之前的聊天记录然后给出日常且口语化的回复平淡一些{mood_state}
尽量简短一些{keywords_reaction_prompt}请注意把握聊天内容不要回复的太有条理可以有个性
{reply_style}
请注意不要输出多余内容(包括前后缀冒号和引号括号表情等)只输出一句回复内容就好
不要输出多余内容(包括前后缀冒号和引号括号表情包at或 @等 )请不要思考太长
不要输出多余内容(包括前后缀冒号和引号括号表情包at或 @等 )
现在你说""",
"replyer_prompt",
)
@ -35,6 +36,7 @@ def init_replyer_prompt():
{dialogue_prompt}
{reply_target_block}
{planner_reasoning}
{identity}
{chat_prompt}你正在和{sender_name}聊天,现在请你读读之前的聊天记录然后给出日常且口语化的回复平淡一些{mood_state}
尽量简短一些{keywords_reaction_prompt}请注意把握聊天内容不要回复的太有条理可以有个性

View File

@ -335,6 +335,8 @@ class Jargon(BaseModel):
is_jargon = BooleanField(null=True) # None表示未判定True表示是黑话False表示不是黑话
last_inference_count = IntegerField(null=True) # 最后一次判定的count值用于避免重启后重复判定
is_complete = BooleanField(default=False) # 是否已完成所有推断count>=100后不再推断
inference_with_context = TextField(null=True) # 基于上下文的推断结果JSON格式
inference_content_only = TextField(null=True) # 仅基于词条的推断结果JSON格式
class Meta:
table_name = "jargon"