From 3d8e6e4d50d5c09d89e25eb3aa0cc9d066a8d237 Mon Sep 17 00:00:00 2001 From: Fangyin Cheng Date: Thu, 22 Aug 2024 12:09:41 +0800 Subject: [PATCH] chore: Modify database key --- assets/schema/dbgpt.sql | 7 ++- .../upgrade/v0_6_0/upgrade_to_v0.6.0.sql | 4 +- .../recommend_question/recommend_question.py | 2 +- dbgpt/serve/agent/db/gpts_app.py | 60 ++++++++++--------- dbgpt/storage/chat_history/chat_history_db.py | 3 +- 5 files changed, 42 insertions(+), 34 deletions(-) diff --git a/assets/schema/dbgpt.sql b/assets/schema/dbgpt.sql index 31634c163..3a532a16d 100644 --- a/assets/schema/dbgpt.sql +++ b/assets/schema/dbgpt.sql @@ -98,7 +98,8 @@ CREATE TABLE IF NOT EXISTS `chat_history` `gmt_created` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'created time', `gmt_modified` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update time', UNIQUE KEY `conv_uid` (`conv_uid`), - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `idx_chat_his_app_code` (`app_code`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT 'Chat history'; CREATE TABLE IF NOT EXISTS `chat_history_message` @@ -446,7 +447,7 @@ CREATE TABLE `recommend_question` ( `params` text DEFAULT NULL COMMENT 'question param', `is_hot_question` varchar(10) DEFAULT 'false' COMMENT 'Is it a popular recommendation question?', PRIMARY KEY (`id`), - KEY `idx_app_code` (`app_code`) + KEY `idx_rec_q_app_code` (`app_code`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="AI application related recommendation issues"; -- dbgpt.user_recent_apps definition @@ -459,7 +460,7 @@ CREATE TABLE `user_recent_apps` ( `user_code` varchar(255) DEFAULT NULL COMMENT 'user code', `sys_code` varchar(255) DEFAULT NULL COMMENT 'system app code', PRIMARY KEY (`id`), - KEY `idx_app_code` (`app_code`), + KEY `idx_user_r_app_code` (`app_code`), KEY `idx_last_accessed` (`last_accessed`), KEY `idx_user_code` (`user_code`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='User recently used apps' diff --git a/assets/schema/upgrade/v0_6_0/upgrade_to_v0.6.0.sql b/assets/schema/upgrade/v0_6_0/upgrade_to_v0.6.0.sql index 745d005d0..2e090ed1e 100644 --- a/assets/schema/upgrade/v0_6_0/upgrade_to_v0.6.0.sql +++ b/assets/schema/upgrade/v0_6_0/upgrade_to_v0.6.0.sql @@ -52,7 +52,7 @@ CREATE TABLE `recommend_question` ( `params` text DEFAULT NULL COMMENT 'question param', `is_hot_question` varchar(10) DEFAULT 'false' COMMENT 'Is it a popular recommendation question?', PRIMARY KEY (`id`), - KEY `idx_app_code` (`app_code`) + KEY `idx_rec_q_app_code` (`app_code`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="AI application related recommendation issues"; -- dbgpt.user_recent_apps definition @@ -65,7 +65,7 @@ CREATE TABLE `user_recent_apps` ( `user_code` varchar(255) DEFAULT NULL COMMENT 'user code', `sys_code` varchar(255) DEFAULT NULL COMMENT 'system app code', PRIMARY KEY (`id`), - KEY `idx_app_code` (`app_code`), + KEY `idx_user_r_app_code` (`app_code`), KEY `idx_last_accessed` (`last_accessed`), KEY `idx_user_code` (`user_code`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='User recently used apps'; diff --git a/dbgpt/serve/agent/app/recommend_question/recommend_question.py b/dbgpt/serve/agent/app/recommend_question/recommend_question.py index 789965a54..6356dd9f8 100644 --- a/dbgpt/serve/agent/app/recommend_question/recommend_question.py +++ b/dbgpt/serve/agent/app/recommend_question/recommend_question.py @@ -87,7 +87,7 @@ class RecommendQuestionEntity(Model): default=False, comment="hot question would be displayed on the main page.", ) - __table_args__ = (Index("idx_app_code", "app_code"),) + __table_args__ = (Index("idx_rec_q_app_code", "app_code"),) class RecommendQuestionDao(BaseDao): diff --git a/dbgpt/serve/agent/db/gpts_app.py b/dbgpt/serve/agent/db/gpts_app.py index a744c2247..a50f16abd 100644 --- a/dbgpt/serve/agent/db/gpts_app.py +++ b/dbgpt/serve/agent/db/gpts_app.py @@ -268,7 +268,7 @@ class UserRecentAppsEntity(Model): ) last_accessed = Column(DateTime, default=None, comment="last access time") __table_args__ = ( - Index("idx_app_code", "app_code"), + Index("idx_user_r_app_code", "app_code"), Index("idx_user_code", "user_code"), Index("idx_last_accessed", "last_accessed"), ) @@ -451,9 +451,11 @@ class UserRecentAppsDao(BaseDao): "sys_code": sys_code, "user_code": user_code, "last_accessed": last_accessed, - "gmt_create": existing_app.gmt_create - if existing_app - else new_app.gmt_create, + "gmt_create": ( + existing_app.gmt_create + if existing_app + else new_app.gmt_create + ), "gmt_modified": last_accessed, } ) @@ -655,9 +657,9 @@ class GptsAppDao(BaseDao): apps = sorted( apps, - key=lambda obj: float("-inf") - if obj.hot_value is None - else obj.hot_value, + key=lambda obj: ( + float("-inf") if obj.hot_value is None else obj.hot_value + ), reverse=True, ) app_resp.total_count = total_count @@ -696,19 +698,19 @@ class GptsAppDao(BaseDao): for item in app_details ], "published": app_info.published, - "param_need": json.loads(app_info.param_need) - if app_info.param_need - else None, - "hot_value": hot_app_map.get(app_info.app_code, 0) - if hot_app_map is not None - else 0, + "param_need": ( + json.loads(app_info.param_need) if app_info.param_need else None + ), + "hot_value": ( + hot_app_map.get(app_info.app_code, 0) if hot_app_map is not None else 0 + ), "owner_name": app_info.user_code, "owner_avatar_url": owner_avatar_url, - "recommend_questions": [ - RecommendQuestion.from_entity(item) for item in recommend_questions - ] - if recommend_questions - else [], + "recommend_questions": ( + [RecommendQuestion.from_entity(item) for item in recommend_questions] + if recommend_questions + else [] + ), "admins": [], } @@ -848,9 +850,9 @@ class GptsAppDao(BaseDao): updated_at=gpts_app.updated_at, icon=gpts_app.icon, published="true" if gpts_app.published else "false", - param_need=json.dumps(gpts_app.param_need) - if gpts_app.param_need - else None, + param_need=( + json.dumps(gpts_app.param_need) if gpts_app.param_need else None + ), ) session.add(app_entity) @@ -869,9 +871,11 @@ class GptsAppDao(BaseDao): resources=json.dumps(resource_dicts, ensure_ascii=False), prompt_template=item.prompt_template, llm_strategy=item.llm_strategy, - llm_strategy_value=None - if item.llm_strategy_value is None - else json.dumps(tuple(item.llm_strategy_value.split(","))), + llm_strategy_value=( + None + if item.llm_strategy_value is None + else json.dumps(tuple(item.llm_strategy_value.split(","))) + ), created_at=item.created_at, updated_at=item.updated_at, ) @@ -936,9 +940,11 @@ class GptsAppDao(BaseDao): resources=json.dumps(resource_dicts, ensure_ascii=False), prompt_template=item.prompt_template, llm_strategy=item.llm_strategy, - llm_strategy_value=None - if item.llm_strategy_value is None - else json.dumps(tuple(item.llm_strategy_value.split(","))), + llm_strategy_value=( + None + if item.llm_strategy_value is None + else json.dumps(tuple(item.llm_strategy_value.split(","))) + ), created_at=item.created_at, updated_at=item.updated_at, ) diff --git a/dbgpt/storage/chat_history/chat_history_db.py b/dbgpt/storage/chat_history/chat_history_db.py index 55f15cfed..bef4721ba 100644 --- a/dbgpt/storage/chat_history/chat_history_db.py +++ b/dbgpt/storage/chat_history/chat_history_db.py @@ -1,4 +1,5 @@ """Chat history database model.""" + import logging from datetime import datetime from typing import Optional @@ -56,7 +57,7 @@ class ChatHistoryEntity(Model): Index("idx_q_user", "user_name") Index("idx_q_mode", "chat_mode") Index("idx_q_conv", "summary") - Index("idx_app_code", "app_code") + Index("idx_chat_his_app_code", "app_code") class ChatHistoryMessageEntity(Model):