From 837b0b36889976e3a55689024fd2ee9c1eefc226 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 30 Apr 2025 06:49:22 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20=E8=87=AA=E5=8A=A8=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/PFC/action_planner.py | 19 ++++++++++--------- src/plugins/PFC/reply_generator.py | 24 +++++++++++++----------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/plugins/PFC/action_planner.py b/src/plugins/PFC/action_planner.py index dd7355fa2..036d47807 100644 --- a/src/plugins/PFC/action_planner.py +++ b/src/plugins/PFC/action_planner.py @@ -235,18 +235,20 @@ class ActionPlanner: recent_knowledge = conversation_info.knowledge_list[-3:] for i, knowledge_item in enumerate(recent_knowledge): if isinstance(knowledge_item, dict): - query = knowledge_item.get('query', '未知查询') - knowledge = knowledge_item.get('knowledge', '无知识内容') - source = knowledge_item.get('source', '未知来源') + query = knowledge_item.get("query", "未知查询") + knowledge = knowledge_item.get("knowledge", "无知识内容") + source = knowledge_item.get("source", "未知来源") # 只取知识内容的前 150 个字,避免太长 knowledge_snippet = knowledge[:150] + "..." if len(knowledge) > 150 else knowledge - knowledge_info_str += f"{i+1}. 关于 '{query}' 的知识 (来源: {source}):\n {knowledge_snippet}\n" + knowledge_info_str += ( + f"{i + 1}. 关于 '{query}' 的知识 (来源: {source}):\n {knowledge_snippet}\n" + ) else: # 处理列表里不是字典的异常情况 - knowledge_info_str += f"{i+1}. 发现一条格式不正确的知识记录。\n" + knowledge_info_str += f"{i + 1}. 发现一条格式不正确的知识记录。\n" - if not recent_knowledge: # 如果 knowledge_list 存在但为空 - knowledge_info_str += "- 暂无相关知识和记忆。\n" + if not recent_knowledge: # 如果 knowledge_list 存在但为空 + knowledge_info_str += "- 暂无相关知识和记忆。\n" else: # 如果 conversation_info 没有 knowledge_list 属性,或者列表为空 @@ -259,7 +261,6 @@ class ActionPlanner: knowledge_info_str += "- 处理知识列表时出错。\n" # --- 知识信息字符串构建结束 --- - # 获取聊天历史记录 (chat_history_text) chat_history_text = "" try: @@ -385,7 +386,7 @@ class ActionPlanner: time_since_last_bot_message_info=time_since_last_bot_message_info, timeout_context=timeout_context, chat_history_text=chat_history_text if chat_history_text.strip() else "还没有聊天记录。", - knowledge_info_str=knowledge_info_str + knowledge_info_str=knowledge_info_str, ) logger.debug(f"[私聊][{self.private_name}]发送到LLM的最终提示词:\n------\n{prompt}\n------") diff --git a/src/plugins/PFC/reply_generator.py b/src/plugins/PFC/reply_generator.py index f813e140d..134b2740d 100644 --- a/src/plugins/PFC/reply_generator.py +++ b/src/plugins/PFC/reply_generator.py @@ -137,8 +137,8 @@ class ReplyGenerator: else: goals_str = "- 目前没有明确对话目标\n" # 简化无目标情况 - # --- 新增:构建知识信息字符串 --- - knowledge_info_str = "【供参考的相关知识和记忆】\n" # 稍微改下标题,表明是供参考 + # --- 新增:构建知识信息字符串 --- + knowledge_info_str = "【供参考的相关知识和记忆】\n" # 稍微改下标题,表明是供参考 try: # 检查 conversation_info 是否有 knowledge_list 并且不为空 if hasattr(conversation_info, "knowledge_list") and conversation_info.knowledge_list: @@ -146,17 +146,19 @@ class ReplyGenerator: recent_knowledge = conversation_info.knowledge_list[-3:] for i, knowledge_item in enumerate(recent_knowledge): if isinstance(knowledge_item, dict): - query = knowledge_item.get('query', '未知查询') - knowledge = knowledge_item.get('knowledge', '无知识内容') - source = knowledge_item.get('source', '未知来源') + query = knowledge_item.get("query", "未知查询") + knowledge = knowledge_item.get("knowledge", "无知识内容") + source = knowledge_item.get("source", "未知来源") # 只取知识内容的前 150 个字 knowledge_snippet = knowledge[:150] + "..." if len(knowledge) > 150 else knowledge - knowledge_info_str += f"{i+1}. 关于 '{query}' (来源: {source}): {knowledge_snippet}\n" # 格式微调,更简洁 + knowledge_info_str += ( + f"{i + 1}. 关于 '{query}' (来源: {source}): {knowledge_snippet}\n" # 格式微调,更简洁 + ) else: - knowledge_info_str += f"{i+1}. 发现一条格式不正确的知识记录。\n" + knowledge_info_str += f"{i + 1}. 发现一条格式不正确的知识记录。\n" if not recent_knowledge: - knowledge_info_str += "- 暂无。\n" # 更简洁的提示 + knowledge_info_str += "- 暂无。\n" # 更简洁的提示 else: knowledge_info_str += "- 暂无。\n" @@ -165,7 +167,7 @@ class ReplyGenerator: knowledge_info_str += "- 获取知识列表时出错。\n" except Exception as e: logger.error(f"[私聊][{self.private_name}]构建知识信息字符串时出错: {e}") - knowledge_info_str += "- 处理知识列表时出错。\n" + knowledge_info_str += "- 处理知识列表时出错。\n" # 获取聊天历史记录 (chat_history_text) chat_history_text = observation_info.chat_history_str @@ -199,9 +201,9 @@ class ReplyGenerator: # --- 格式化最终的 Prompt --- prompt = prompt_template.format( persona_text=persona_text, - goals_str=goals_str, + goals_str=goals_str, chat_history_text=chat_history_text, - knowledge_info_str=knowledge_info_str + knowledge_info_str=knowledge_info_str, ) # --- 调用 LLM 生成 ---