(improvement)(launcher) Optimize demo data loading to avoid repeatedly writing data to mysql (#1043)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2024-05-29 16:41:20 +08:00
committed by GitHub
parent 9c3509fc1f
commit 26ab536c32
7 changed files with 47 additions and 5 deletions

View File

@@ -59,6 +59,11 @@ public class CspiderDemo extends S2BaseDemo {
}
}
@Override
boolean checkNeedToRun() {
return false;
}
public DomainResp addDomain() {
DomainReq domainReq = new DomainReq();
domainReq.setName("测评数据_音乐");

View File

@@ -63,6 +63,11 @@ public class DuSQLDemo extends S2BaseDemo {
}
@Override
boolean checkNeedToRun() {
return false;
}
public void addDomain() {
DomainReq domainReq = new DomainReq();
domainReq.setName("DuSQL_互联网企业");

View File

@@ -64,6 +64,18 @@ public class S2ArtistDemo extends S2BaseDemo {
}
@Override
boolean checkNeedToRun() {
List<DomainResp> 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"));

View File

@@ -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<DatabaseResp> databaseList = databaseService.getDatabaseList(User.getFakeUser());
if (!CollectionUtils.isEmpty(databaseList)) {
return databaseList.get(0);
}
String url = dataSourceProperties.getUrl();
DatabaseReq databaseReq = new DatabaseReq();
databaseReq.setName("数据实例");

View File

@@ -123,6 +123,18 @@ public class S2VisitsDemo extends S2BaseDemo {
}
}
@Override
boolean checkNeedToRun() {
List<DomainResp> 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);

View File

@@ -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 ='术语表';