From 26ab536c3262229bce20a7b798768742b9b49dfb Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Wed, 29 May 2024 16:41:20 +0800 Subject: [PATCH] (improvement)(launcher) Optimize demo data loading to avoid repeatedly writing data to mysql (#1043) Co-authored-by: jolunoluo --- .../processor/parse/MetricCheckProcessor.java | 0 .../com/tencent/supersonic/demo/CspiderDemo.java | 5 +++++ .../com/tencent/supersonic/demo/DuSQLDemo.java | 5 +++++ .../com/tencent/supersonic/demo/S2ArtistDemo.java | 14 +++++++++++++- .../com/tencent/supersonic/demo/S2BaseDemo.java | 14 +++++++++++--- .../com/tencent/supersonic/demo/S2VisitsDemo.java | 12 ++++++++++++ .../src/main/resources/db/schema-mysql.sql | 2 +- 7 files changed, 47 insertions(+), 5 deletions(-) delete mode 100644 chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/MetricCheckProcessor.java diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/MetricCheckProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/parse/MetricCheckProcessor.java deleted file mode 100644 index e69de29bb..000000000 diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/CspiderDemo.java b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/CspiderDemo.java index f6e031bd4..16082198a 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/CspiderDemo.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/CspiderDemo.java @@ -59,6 +59,11 @@ public class CspiderDemo extends S2BaseDemo { } } + @Override + boolean checkNeedToRun() { + return false; + } + public DomainResp addDomain() { DomainReq domainReq = new DomainReq(); domainReq.setName("测评数据_音乐"); diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/DuSQLDemo.java b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/DuSQLDemo.java index b35aaa06a..b0de1cfb6 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/DuSQLDemo.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/DuSQLDemo.java @@ -63,6 +63,11 @@ public class DuSQLDemo extends S2BaseDemo { } + @Override + boolean checkNeedToRun() { + return false; + } + public void addDomain() { DomainReq domainReq = new DomainReq(); domainReq.setName("DuSQL_互联网企业"); diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2ArtistDemo.java b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2ArtistDemo.java index 82a005ea5..9a2ad8717 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2ArtistDemo.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2ArtistDemo.java @@ -64,6 +64,18 @@ public class S2ArtistDemo extends S2BaseDemo { } + @Override + boolean checkNeedToRun() { + List domainList = domainService.getDomainList(); + for (DomainResp domainResp : domainList) { + if (domainResp.getBizName().equalsIgnoreCase("singer")) { + log.info("Already exist domain:singer, no need to run demo"); + return false; + } + } + return true; + } + private TagObjectResp addTagObjectSinger(DomainResp singerDomain) throws Exception { TagObjectReq tagObjectReq = new TagObjectReq(); tagObjectReq.setDomainId(singerDomain.getId()); @@ -76,7 +88,7 @@ public class S2ArtistDemo extends S2BaseDemo { public DomainResp addDomain() { DomainReq domainReq = new DomainReq(); domainReq.setName("艺人库"); - domainReq.setBizName("supersonic"); + domainReq.setBizName("singer"); domainReq.setParentId(0L); domainReq.setStatus(StatusEnum.ONLINE.getCode()); domainReq.setViewers(Arrays.asList("admin", "tom", "jack")); diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2BaseDemo.java b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2BaseDemo.java index 679ba2e4d..b94717f6d 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2BaseDemo.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2BaseDemo.java @@ -89,15 +89,23 @@ public abstract class S2BaseDemo implements CommandLineRunner { protected boolean demoEnableLlm; public void run(String... args) { - demoDatabaseResp = addDatabase(); + demoDatabaseResp = addDatabaseIfNotExist(); if (demoList != null && demoList.contains(getClass().getSimpleName())) { - doRun(); + if (checkNeedToRun()) { + doRun(); + } } } abstract void doRun(); - protected DatabaseResp addDatabase() { + abstract boolean checkNeedToRun(); + + protected DatabaseResp addDatabaseIfNotExist() { + List databaseList = databaseService.getDatabaseList(User.getFakeUser()); + if (!CollectionUtils.isEmpty(databaseList)) { + return databaseList.get(0); + } String url = dataSourceProperties.getUrl(); DatabaseReq databaseReq = new DatabaseReq(); databaseReq.setName("数据实例"); diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java index bb7c800be..a06f3bf7f 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java @@ -123,6 +123,18 @@ public class S2VisitsDemo extends S2BaseDemo { } } + @Override + boolean checkNeedToRun() { + List domainList = domainService.getDomainList(); + for (DomainResp domainResp : domainList) { + if (domainResp.getBizName().equalsIgnoreCase("supersonic")) { + log.info("Already exist domain:supersonic, no need to run demo"); + return false; + } + } + return true; + } + public void addSampleChats(Integer agentId) throws Exception { Long chatId = chatManageService.addChat(user, "样例对话1", agentId); diff --git a/launchers/standalone/src/main/resources/db/schema-mysql.sql b/launchers/standalone/src/main/resources/db/schema-mysql.sql index 27430fbf9..3e5dc58ab 100644 --- a/launchers/standalone/src/main/resources/db/schema-mysql.sql +++ b/launchers/standalone/src/main/resources/db/schema-mysql.sql @@ -565,4 +565,4 @@ CREATE TABLE IF NOT EXISTS `s2_term` ( `updated_at` datetime DEFAULT NULL , `updated_by` varchar(100) DEFAULT NULL , PRIMARY KEY (`id`) -); +) ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='术语表';