fix:修复回复器没有时间信息的问题

pull/1018/head
SengokuCola 2025-06-02 20:25:14 +08:00
parent 6fd0121f87
commit 05e8911fd2
2 changed files with 23 additions and 39 deletions

View File

@ -58,21 +58,7 @@ def init_prompt():
""",
"planner_prompt",
)
Prompt(
"""
{raw_output}
请从上面这段内容中提取出JSON内容不要有任何其他文字或解释
以严格的 JSON 格式输出且仅包含 JSON 内容不要有任何其他文字或解释
请你以下面格式输出
{{
"action": "action_name"
"参数": "参数的值"(可能有多个参数),
}}
请输出你提取的JSON不要有任何其他文字或解释""",
"planner_prompt_json",
)
Prompt(
"""
@ -206,16 +192,6 @@ class ActionPlanner(BasePlanner):
reasoning = f"LLM 请求失败,你的模型出现问题: {req_e}"
action = "no_reply"
# try:
# prompt_json = await global_prompt_manager.get_prompt_async("planner_prompt_json")
# prompt_json = prompt_json.format(raw_output=llm_content)
# llm_content_json, (reasoning_content_json, _) = await self.utils_llm.generate_response_async(prompt=prompt_json)
# logger.debug(f"{self.log_prefix}LLM格式化JSON: {llm_content_json}")
# logger.debug(f"{self.log_prefix}LLM格式化理由: {reasoning_content_json}")
# except Exception as json_e:
# logger.error(f"{self.log_prefix}解析LLM响应JSON失败模型返回不标准: {json_e}. LLM原始输出: '{llm_content}'")
# reasoning = f"解析LLM响应JSON失败: {json_e}. 将使用默认动作 'no_reply'."
# action = "no_reply"
if llm_content:
try:
@ -258,8 +234,9 @@ class ActionPlanner(BasePlanner):
except Exception as json_e:
logger.warning(
f"{self.log_prefix}解析LLM响应JSON失败,模型返回不标准: {json_e}. LLM原始输出: '{llm_content}'"
f"{self.log_prefix}解析LLM响应JSON失败 {json_e}. LLM原始输出: '{llm_content}'"
)
traceback.print_exc()
reasoning = f"解析LLM响应JSON失败: {json_e}. 将使用默认动作 'no_reply'."
action = "no_reply"

View File

@ -21,6 +21,7 @@ from src.chat.utils.chat_message_builder import build_readable_messages, get_raw
import time
from src.chat.focus_chat.expressors.exprssion_learner import expression_learner
import random
from datetime import datetime
import re
logger = get_logger("expressor")
@ -32,14 +33,15 @@ def init_prompt():
你可以参考以下的语言习惯如果情景合适就使用不要盲目使用,不要生硬使用而是结合到表达中
{style_habbits}
{time_block}
你现在正在群里聊天以下是群里正在进行的聊天内容
{chat_info}
以上是聊天内容你需要了解聊天记录中的内容
{chat_target}
{identity}在这聊天中"{target_message}"引起了你的注意你想要在群里发言或者回复这条消息原因是{reason}
你需要使用合适的语法和句法参考聊天内容组织一条日常且口语化的回复
{identity}在这聊天中"{target_message}"引起了你的注意你想要在群里发言或者回复这条消息
你需要使用合适的语法和句法参考聊天内容组织一条日常且口语化的回复注意不要复读你说过的话
请你根据情景使用以下句法
{grammar_habbits}
{config_expression_style}请注意不要输出多余内容(包括前后缀冒号和引号括号()表情包at或 @等 )只输出回复内容
@ -56,22 +58,24 @@ def init_prompt():
你可以参考以下的语言习惯如果情景合适就使用不要盲目使用,不要生硬使用而是结合到表达中
{style_habbits}
你现在正在群里聊天以下是群里正在进行的聊天内容
{time_block}
你现在正在聊天以下是你和对方正在进行的聊天内容
{chat_info}
以上是聊天内容你需要了解聊天记录中的内容
{chat_target}
你的名字是{bot_name}{prompt_personality}在这聊天中"{target_message}"引起了你的注意对这句话你想表达{in_mind_reply},原因是{reason}你现在要思考怎么回复
你需要使用合适的语法和句法参考聊天内容组织一条日常且口语化的回复
{identity}在这聊天中"{target_message}"引起了你的注意你想要发言或者回复这条消息
你需要使用合适的语法和句法参考聊天内容组织一条日常且口语化的回复注意不要复读你说过的话
请你根据情景使用以下句法
{grammar_habbits}
{config_expression_style}你可以完全重组回复保留最基本的表达含义就好但重组后保持语意通顺
{config_expression_style}请注意不要输出多余内容(包括前后缀冒号和引号括号()表情包at或 @等 )只输出回复内容
{keywords_reaction_prompt}
不要浮夸不要夸张修辞平淡且不要输出多余内容(包括前后缀冒号和引号括号表情包at或 @等 )只输出一条回复就好
请不要输出违法违规内容不要输出色情暴力政治相关内容如有敏感内容请规避
不要浮夸不要夸张修辞只输出一条回复就好
现在你说
""",
"default_replyer_private_prompt", # New template for private FOCUSED chat
"default_replyer_private_prompt",
)
@ -289,7 +293,8 @@ class DefaultReplyer:
# TODO: API-Adapter修改标记
# logger.info(f"{self.log_prefix}[Replier-{thinking_id}]\nPrompt:\n{prompt}\n")
content, (reasoning_content, model_name) = await self.express_model.generate_response_async(prompt)
logger.debug(f"prompt: {prompt}")
logger.info(f"最终回复: {content}")
info_catcher.catch_after_llm_generated(
@ -407,9 +412,9 @@ class DefaultReplyer:
except Exception as e:
logger.error(f"关键词检测与反应时发生异常: {str(e)}", exc_info=True)
time_block = f"当前时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
logger.debug("开始构建 focus prompt")
# logger.debug("开始构建 focus prompt")
# --- Choose template based on chat type ---
if is_group_chat:
@ -424,9 +429,10 @@ class DefaultReplyer:
grammar_habbits=grammar_habbits_str,
chat_target=chat_target_1,
chat_info=chat_talking_prompt,
time_block=time_block,
# bot_name=global_config.bot.nickname,
# prompt_personality="",
reason=reason,
# reason=reason,
# in_mind_reply=in_mind_reply,
keywords_reaction_prompt=keywords_reaction_prompt,
identity=identity,
@ -442,9 +448,10 @@ class DefaultReplyer:
grammar_habbits=grammar_habbits_str,
chat_target=chat_target_1,
chat_info=chat_talking_prompt,
time_block=time_block,
# bot_name=global_config.bot.nickname,
# prompt_personality="",
reason=reason,
# reason=reason,
# in_mind_reply=in_mind_reply,
keywords_reaction_prompt=keywords_reaction_prompt,
identity=identity,