From c5b24b47645f167c09d57594e051ea8d171e1ee6 Mon Sep 17 00:00:00 2001 From: anka <1350989414@qq.com> Date: Mon, 21 Apr 2025 12:06:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=A4=A0=E4=B8=BAnew=E6=8C=87?= =?UTF-8?q?=E4=BB=A4=E5=A2=9E=E5=8A=A0=E6=B8=85=E7=90=86=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87=E9=80=89=E9=A1=B9,=20=E9=BB=98=E8=AE=A4=E4=B8=BA?= =?UTF-8?q?=E6=B8=85=E7=90=86,=20=E6=9B=B4=E7=AC=A6=E5=90=88=E7=9B=B4?= =?UTF-8?q?=E8=A7=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/astrbot/main.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/astrbot/main.py b/packages/astrbot/main.py index 4d1563194..58047d7df 100644 --- a/packages/astrbot/main.py +++ b/packages/astrbot/main.py @@ -763,8 +763,13 @@ UID: {user_id} 此 ID 可用于设置管理员。 return @filter.command("new") - async def new_conv(self, message: AstrMessageEvent): - """创建新对话""" + async def new_conv(self, message: AstrMessageEvent, clean: bool = True): + """ + 创建新对话 + + Args: + clean(bool): 是否清理当前对话的上下文, 默认为 True. + """ provider = self.context.get_using_provider() if provider and provider.meta().type == "dify": assert isinstance(provider, ProviderDify) @@ -777,6 +782,20 @@ UID: {user_id} 此 ID 可用于设置管理员。 cid = await self.context.conversation_manager.new_conversation( message.unified_msg_origin ) + + # 判断是否清理上下文 + if clean: + await self.context.conversation_manager.update_conversation( + message.unified_msg_origin, cid, [] + ) + + # 长期记忆 + if self.ltm: + try: + await self.ltm.remove_session(event=message) + except BaseException as e: + logger.error(f"清理聊天增强记录失败: {e}") + message.set_result( MessageEventResult().message(f"切换到新对话: 新对话({cid[:4]})。") )