From d42fbe98a2266758d509b4b06dcabeb0f1067454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=B6=E6=98=9F?= Date: Thu, 13 Mar 2025 13:51:25 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(dbgpt-serve):Agent=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D=E4=BF=9D=E5=AD=98=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=97=AE=E9=A2=98=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=A0=81=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在推荐问题的数据库记录中添加用户码字段 - 通过 gpts_app.user_code 获取当前用户码并存储 --- packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_app.py b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_app.py index 23364cb8f3..d898ed0e10 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_app.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_app.py @@ -983,6 +983,7 @@ def edit(self, gpts_app: GptsApp): params=json.dumps(recommend_question.params), valid=recommend_question.valid, chat_mode=chat_scene, + user_code=gpts_app.user_code, ) ) session.add_all(recommend_questions) From a28019ae45ab133a4e185adc857870448557823d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=B6=E6=98=9F?= Date: Thu, 13 Mar 2025 14:08:54 +0800 Subject: [PATCH 2/3] feat(core): Add Agent to delete chat history function -Add logic to delete chat records in the clear method of the Message Interface - add delete_chat_cessage method in GptsMessages Dao and GptsConversationsDao -Implemented the function of clearing Agent chat records --- .../dbgpt-core/src/dbgpt/core/interface/message.py | 6 ++++++ .../src/dbgpt_serve/agent/db/gpts_conversations_db.py | 10 ++++++++++ .../src/dbgpt_serve/agent/db/gpts_messages_db.py | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/packages/dbgpt-core/src/dbgpt/core/interface/message.py b/packages/dbgpt-core/src/dbgpt/core/interface/message.py index eaccb51514..a5db7ede6b 100755 --- a/packages/dbgpt-core/src/dbgpt/core/interface/message.py +++ b/packages/dbgpt-core/src/dbgpt/core/interface/message.py @@ -1150,6 +1150,12 @@ def delete(self) -> None: def clear(self) -> None: """Clear all the messages and conversation.""" + from dbgpt_serve.agent.db import GptsMessagesDao, GptsConversationsDao + + # 清除Agent聊天记录 + GptsMessagesDao().delete_chat_message(conv_id=self.conv_uid) + GptsConversationsDao().delete_chat_message(conv_id=self.conv_uid) + # Clear messages first message_list = self._get_message_items() message_ids = [message.identifier for message in message_list] diff --git a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py index d66d37042b..8ed627efce 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py @@ -111,3 +111,13 @@ def update(self, conv_id: str, state: str): ) session.commit() session.close() + + def delete_chat_message(self, conv_id: str) -> bool: + session = self.get_raw_session() + gpts_messages = session.query(GptsConversationsEntity) + gpts_messages.filter( + GptsConversationsEntity.conv_id.like(f'%{conv_id}%') + ).delete() + session.commit() + session.close() + return True \ No newline at end of file diff --git a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py index 15e41a309f..7284d72c4c 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py @@ -177,3 +177,13 @@ def get_last_message(self, conv_id: str) -> Optional[GptsMessagesEntity]: result = gpts_messages.first() session.close() return result + + def delete_chat_message(self, conv_id: str) -> bool: + session = self.get_raw_session() + gpts_messages = session.query(GptsMessagesEntity) + gpts_messages.filter( + GptsMessagesEntity.conv_id.like(f'%{conv_id}%') + ).delete() + session.commit() + session.close() + return True \ No newline at end of file From 009322bb2b24b3f02a1ef3b1a118556177d484fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=B6=E6=98=9F?= Date: Thu, 13 Mar 2025 14:30:03 +0800 Subject: [PATCH 3/3] refactor(dbgpt-serve): Optimize database queries and code structure - modify deletion methods in GptsConversationsDB and GptsMessages DB to simplify query statements -Update the clear method in the Message and adjust the import order -Unified use of double quotation marks in SQL queries --- packages/dbgpt-core/src/dbgpt/core/interface/message.py | 2 +- .../src/dbgpt_serve/agent/db/gpts_conversations_db.py | 4 ++-- .../src/dbgpt_serve/agent/db/gpts_messages_db.py | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/dbgpt-core/src/dbgpt/core/interface/message.py b/packages/dbgpt-core/src/dbgpt/core/interface/message.py index a5db7ede6b..312b3ef870 100755 --- a/packages/dbgpt-core/src/dbgpt/core/interface/message.py +++ b/packages/dbgpt-core/src/dbgpt/core/interface/message.py @@ -1150,7 +1150,7 @@ def delete(self) -> None: def clear(self) -> None: """Clear all the messages and conversation.""" - from dbgpt_serve.agent.db import GptsMessagesDao, GptsConversationsDao + from dbgpt_serve.agent.db import GptsConversationsDao, GptsMessagesDao # 清除Agent聊天记录 GptsMessagesDao().delete_chat_message(conv_id=self.conv_uid) diff --git a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py index 8ed627efce..9363fcdec8 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_conversations_db.py @@ -116,8 +116,8 @@ def delete_chat_message(self, conv_id: str) -> bool: session = self.get_raw_session() gpts_messages = session.query(GptsConversationsEntity) gpts_messages.filter( - GptsConversationsEntity.conv_id.like(f'%{conv_id}%') + GptsConversationsEntity.conv_id.like(f"%{conv_id}%") ).delete() session.commit() session.close() - return True \ No newline at end of file + return True diff --git a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py index 7284d72c4c..71da29a3fa 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/agent/db/gpts_messages_db.py @@ -181,9 +181,7 @@ def get_last_message(self, conv_id: str) -> Optional[GptsMessagesEntity]: def delete_chat_message(self, conv_id: str) -> bool: session = self.get_raw_session() gpts_messages = session.query(GptsMessagesEntity) - gpts_messages.filter( - GptsMessagesEntity.conv_id.like(f'%{conv_id}%') - ).delete() + gpts_messages.filter(GptsMessagesEntity.conv_id.like(f"%{conv_id}%")).delete() session.commit() session.close() - return True \ No newline at end of file + return True