feat(reminder): 增强自然语言时间解析的智能化

更新了用于时间转换的LLM提示词,增加了更智能的推断规则,以更准确地处理模糊的时间表述。

主要改进:
- 根据当前时间上下文推断上午/下午。例如,在下午说“8点”,将被理解为当晚20:00。
- 当解析出的时间早于当前时间时,自动将提醒设置为第二天,避免创建无效的过去提醒。
This commit is contained in:
tt-P607
2025-09-16 15:34:01 +08:00
parent 31ede52be9
commit 9f1b62a63a

View File

@@ -200,7 +200,14 @@ class RemindAction(BaseAction):
f"请将以下自然语言时间短语转换为一个未来的、标准的 'YYYY-MM-DD HH:MM:SS' 格式。" f"请将以下自然语言时间短语转换为一个未来的、标准的 'YYYY-MM-DD HH:MM:SS' 格式。"
f"请只输出转换后的时间字符串,不要包含任何其他说明或文字。\n" f"请只输出转换后的时间字符串,不要包含任何其他说明或文字。\n"
f"作为参考,当前时间是: {current_time_str}\n" f"作为参考,当前时间是: {current_time_str}\n"
f"需要转换的时间短语是: '{remind_time_str}'" f"需要转换的时间短语是: '{remind_time_str}'\n"
f"规则:\n"
f"- 如果用户没有明确指出是上午还是下午请根据当前时间判断。例如如果当前是上午用户说8点则应理解为今天的8点如果当前是下午用户说8点则应理解为今天的20点。\n"
f"- 如果转换后的时间早于当前时间,则应理解为第二天的时间。\n"
f"示例:\n"
f"- 当前时间: 2025-09-16 10:00:00, 用户说: '8点' -> '2025-09-17 08:00:00'\n"
f"- 当前时间: 2025-09-16 14:00:00, 用户说: '8点' -> '2025-09-16 20:00:00'\n"
f"- 当前时间: 2025-09-16 23:00:00, 用户说: '晚上10点' -> '2025-09-17 22:00:00'"
) )
success, response, _, _ = await llm_api.generate_with_model( success, response, _, _ = await llm_api.generate_with_model(