mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-28 03:14:18 +08:00
[improvement][project] supersonic 0.7.0 version backend update (#24)
* [improvement][project] supersonic 0.7.0 version backend update * [improvement][project] supersonic 0.7.0 version backend update * [improvement][project] supersonic 0.7.0 version readme update --------- Co-authored-by: jolunoluo <jolunoluo@tencent.com>
This commit is contained in:
@@ -1,63 +1,198 @@
|
||||
package com.tencent.supersonic;
|
||||
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.chat.api.pojo.request.QueryRequest;
|
||||
import com.tencent.supersonic.chat.api.pojo.request.*;
|
||||
import com.tencent.supersonic.chat.api.pojo.response.ParseResp;
|
||||
import com.tencent.supersonic.chat.parser.ParseMode;
|
||||
import com.tencent.supersonic.chat.plugin.Plugin;
|
||||
import com.tencent.supersonic.chat.query.plugin.ParamOption;
|
||||
import com.tencent.supersonic.chat.query.plugin.WebBase;
|
||||
import com.tencent.supersonic.chat.service.ChatService;
|
||||
import com.tencent.supersonic.chat.service.ConfigService;
|
||||
import com.tencent.supersonic.chat.service.PluginService;
|
||||
import com.tencent.supersonic.chat.service.QueryService;
|
||||
import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ConfigureDemo implements ApplicationListener<ApplicationReadyEvent> {
|
||||
public class ConfigureDemo implements ApplicationListener<ApplicationReadyEvent> {
|
||||
@Autowired
|
||||
private QueryService queryService;
|
||||
@Autowired
|
||||
private ChatService chatService;
|
||||
@Autowired
|
||||
protected ConfigService configService;
|
||||
@Autowired
|
||||
private PluginService pluginService;
|
||||
|
||||
private User user = User.getFakeUser();
|
||||
|
||||
public void addSampleChats()throws Exception {
|
||||
private void parseAndExecute(int chatId, String queryText) throws Exception {
|
||||
QueryReq queryRequest = new QueryReq();
|
||||
queryRequest.setQueryText(queryText);
|
||||
queryRequest.setChatId(chatId);
|
||||
queryRequest.setUser(User.getFakeUser());
|
||||
ParseResp parseResp = queryService.performParsing(queryRequest);
|
||||
|
||||
ExecuteQueryReq executeReq = new ExecuteQueryReq();
|
||||
executeReq.setQueryText(queryRequest.getQueryText());
|
||||
executeReq.setParseInfo(parseResp.getSelectedParses().get(0));
|
||||
executeReq.setChatId(parseResp.getChatId());
|
||||
executeReq.setUser(queryRequest.getUser());
|
||||
queryService.performExecution(executeReq);
|
||||
}
|
||||
|
||||
public void addSampleChats() throws Exception {
|
||||
chatService.addChat(user, "样例对话1");
|
||||
|
||||
QueryRequest queryRequest = new QueryRequest();
|
||||
queryRequest.setQueryText("超音数 访问次数");
|
||||
queryRequest.setChatId(1);
|
||||
queryRequest.setUser(User.getFakeUser());
|
||||
queryService.executeQuery(queryRequest);
|
||||
|
||||
queryRequest.setQueryText("按部门统计");
|
||||
queryService.executeQuery(queryRequest);
|
||||
|
||||
queryRequest.setQueryText("查询近30天");
|
||||
queryService.executeQuery(queryRequest);
|
||||
parseAndExecute(1, "超音数 访问次数");
|
||||
parseAndExecute(1, "按部门统计");
|
||||
parseAndExecute(1, "查询近30天");
|
||||
}
|
||||
|
||||
public void addSampleChats2() throws Exception {
|
||||
chatService.addChat(user, "样例对话2");
|
||||
|
||||
QueryRequest queryRequest = new QueryRequest();
|
||||
queryRequest.setChatId(2);
|
||||
queryRequest.setUser(User.getFakeUser());
|
||||
queryRequest.setQueryText("alice 停留时长");
|
||||
queryService.executeQuery(queryRequest);
|
||||
parseAndExecute(2, "alice 停留时长");
|
||||
parseAndExecute(2, "对比alice和lucy的访问次数");
|
||||
parseAndExecute(2, "访问次数最高的部门");
|
||||
}
|
||||
|
||||
queryRequest.setQueryText("对比alice和lucy的访问次数");
|
||||
queryService.executeQuery(queryRequest);
|
||||
public void addDemoChatConfig_1() {
|
||||
ChatConfigBaseReq chatConfigBaseReq = new ChatConfigBaseReq();
|
||||
chatConfigBaseReq.setDomainId(1L);
|
||||
|
||||
queryRequest.setQueryText("访问次数最高的部门");
|
||||
queryService.executeQuery(queryRequest);
|
||||
ChatDetailConfigReq chatDetailConfig = new ChatDetailConfigReq();
|
||||
ChatDefaultConfigReq chatDefaultConfigDetail = new ChatDefaultConfigReq();
|
||||
List<Long> dimensionIds_0 = Arrays.asList(1L, 2L);
|
||||
List<Long> metricIds_0 = Arrays.asList(1L);
|
||||
chatDefaultConfigDetail.setDimensionIds(dimensionIds_0);
|
||||
chatDefaultConfigDetail.setMetricIds(metricIds_0);
|
||||
chatDefaultConfigDetail.setUnit(7);
|
||||
chatDefaultConfigDetail.setPeriod("DAY");
|
||||
chatDetailConfig.setChatDefaultConfig(chatDefaultConfigDetail);
|
||||
ItemVisibility visibility_0 = new ItemVisibility();
|
||||
chatDetailConfig.setVisibility(visibility_0);
|
||||
chatConfigBaseReq.setChatDetailConfig(chatDetailConfig);
|
||||
|
||||
|
||||
ChatAggConfigReq chatAggConfig = new ChatAggConfigReq();
|
||||
ChatDefaultConfigReq chatDefaultConfigAgg = new ChatDefaultConfigReq();
|
||||
List<Long> dimensionIds_1 = Arrays.asList(1L, 2L);
|
||||
List<Long> metricIds_1 = Arrays.asList(1L);
|
||||
chatDefaultConfigAgg.setDimensionIds(dimensionIds_1);
|
||||
chatDefaultConfigAgg.setMetricIds(metricIds_1);
|
||||
chatDefaultConfigAgg.setUnit(7);
|
||||
chatDefaultConfigAgg.setPeriod("DAY");
|
||||
chatDefaultConfigAgg.setTimeMode(ChatDefaultConfigReq.TimeMode.RECENT);
|
||||
chatAggConfig.setChatDefaultConfig(chatDefaultConfigAgg);
|
||||
ItemVisibility visibility_1 = new ItemVisibility();
|
||||
chatAggConfig.setVisibility(visibility_1);
|
||||
chatConfigBaseReq.setChatAggConfig(chatAggConfig);
|
||||
|
||||
List<RecommendedQuestionReq> recommendedQuestions = new ArrayList<>();
|
||||
RecommendedQuestionReq recommendedQuestionReq_0 = new RecommendedQuestionReq("超音数访问次数");
|
||||
RecommendedQuestionReq recommendedQuestionReq_1 = new RecommendedQuestionReq("超音数访问人数");
|
||||
RecommendedQuestionReq recommendedQuestionReq_2 = new RecommendedQuestionReq("超音数按部门访问次数");
|
||||
recommendedQuestions.add(recommendedQuestionReq_0);
|
||||
recommendedQuestions.add(recommendedQuestionReq_1);
|
||||
recommendedQuestions.add(recommendedQuestionReq_2);
|
||||
chatConfigBaseReq.setRecommendedQuestions(recommendedQuestions);
|
||||
|
||||
configService.addConfig(chatConfigBaseReq, user);
|
||||
}
|
||||
|
||||
public void addDemoChatConfig_2() {
|
||||
ChatConfigBaseReq chatConfigBaseReq = new ChatConfigBaseReq();
|
||||
chatConfigBaseReq.setDomainId(2L);
|
||||
|
||||
ChatDetailConfigReq chatDetailConfig = new ChatDetailConfigReq();
|
||||
ChatDefaultConfigReq chatDefaultConfigDetail = new ChatDefaultConfigReq();
|
||||
List<Long> dimensionIds_0 = Arrays.asList(4L, 5L, 6L, 7L);
|
||||
List<Long> metricIds_0 = Arrays.asList(4L);
|
||||
chatDefaultConfigDetail.setDimensionIds(dimensionIds_0);
|
||||
chatDefaultConfigDetail.setMetricIds(metricIds_0);
|
||||
chatDefaultConfigDetail.setUnit(7);
|
||||
chatDefaultConfigDetail.setPeriod("DAY");
|
||||
chatDetailConfig.setChatDefaultConfig(chatDefaultConfigDetail);
|
||||
ItemVisibility visibility_0 = new ItemVisibility();
|
||||
chatDetailConfig.setVisibility(visibility_0);
|
||||
chatConfigBaseReq.setChatDetailConfig(chatDetailConfig);
|
||||
|
||||
|
||||
ChatAggConfigReq chatAggConfig = new ChatAggConfigReq();
|
||||
ChatDefaultConfigReq chatDefaultConfigAgg = new ChatDefaultConfigReq();
|
||||
List<Long> dimensionIds_1 = Arrays.asList(4L, 5L, 6L, 7L);
|
||||
List<Long> metricIds_1 = Arrays.asList(4L);
|
||||
chatDefaultConfigAgg.setDimensionIds(dimensionIds_1);
|
||||
chatDefaultConfigAgg.setMetricIds(metricIds_1);
|
||||
chatDefaultConfigAgg.setUnit(7);
|
||||
chatDefaultConfigAgg.setPeriod("DAY");
|
||||
chatDefaultConfigAgg.setTimeMode(ChatDefaultConfigReq.TimeMode.RECENT);
|
||||
chatAggConfig.setChatDefaultConfig(chatDefaultConfigAgg);
|
||||
ItemVisibility visibility_1 = new ItemVisibility();
|
||||
chatAggConfig.setVisibility(visibility_1);
|
||||
chatConfigBaseReq.setChatAggConfig(chatAggConfig);
|
||||
|
||||
List<RecommendedQuestionReq> recommendedQuestions = new ArrayList<>();
|
||||
chatConfigBaseReq.setRecommendedQuestions(recommendedQuestions);
|
||||
|
||||
configService.addConfig(chatConfigBaseReq, user);
|
||||
}
|
||||
|
||||
private void addPlugin_1() {
|
||||
Plugin plugin_1 = new Plugin();
|
||||
plugin_1.setType("WEB_PAGE");
|
||||
plugin_1.setDomainList(Arrays.asList(1L));
|
||||
plugin_1.setPattern("访问情况");
|
||||
plugin_1.setParseModeConfig(null);
|
||||
plugin_1.setName("访问情况");
|
||||
WebBase webBase = new WebBase();
|
||||
webBase.setUrl("www.test.com");
|
||||
ParamOption paramOption = new ParamOption();
|
||||
paramOption.setKey("name");
|
||||
paramOption.setParamType(ParamOption.ParamType.SEMANTIC);
|
||||
paramOption.setElementId(2L);
|
||||
paramOption.setDomainId(1L);
|
||||
List<ParamOption> paramOptions = Arrays.asList(paramOption);
|
||||
webBase.setParamOptions(paramOptions);
|
||||
plugin_1.setConfig(JsonUtil.toString(webBase));
|
||||
|
||||
pluginService.createPlugin(plugin_1, user);
|
||||
}
|
||||
|
||||
private void addPlugin_2() {
|
||||
Plugin plugin_1 = new Plugin();
|
||||
plugin_1.setType("DSL");
|
||||
plugin_1.setDomainList(new ArrayList<>());
|
||||
plugin_1.setPattern("");
|
||||
plugin_1.setParseMode(ParseMode.FUNCTION_CALL);
|
||||
plugin_1.setParseModeConfig(null);
|
||||
plugin_1.setName("访问情况");
|
||||
plugin_1.setConfig("");
|
||||
pluginService.createPlugin(plugin_1, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
|
||||
try {
|
||||
addDemoChatConfig_1();
|
||||
addDemoChatConfig_2();
|
||||
addPlugin_1();
|
||||
addPlugin_2();
|
||||
addSampleChats();
|
||||
addSampleChats2();
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to add sample chats");
|
||||
log.error("Failed to add sample chats", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
com.tencent.supersonic.chat.api.component.SchemaMapper=\
|
||||
com.tencent.supersonic.chat.mapper.HanlpDictMapper, \
|
||||
com.tencent.supersonic.chat.mapper.FuzzyNameMapper, \
|
||||
com.tencent.supersonic.chat.mapper.QueryFilterMapper
|
||||
com.tencent.supersonic.chat.mapper.QueryFilterMapper, \
|
||||
com.tencent.supersonic.chat.mapper.EntityMapper
|
||||
|
||||
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
||||
com.tencent.supersonic.chat.parser.rule.QueryModeParser, \
|
||||
@@ -21,5 +22,8 @@ com.tencent.supersonic.chat.query.QuerySelector=\
|
||||
com.tencent.supersonic.chat.parser.function.DomainResolver=\
|
||||
com.tencent.supersonic.chat.parser.function.HeuristicDomainResolver
|
||||
|
||||
com.tencent.supersonic.auth.authentication.domain.interceptor.AuthenticationInterceptor=\
|
||||
com.tencent.supersonic.auth.authentication.domain.interceptor.DefaultAuthenticationInterceptor
|
||||
com.tencent.supersonic.auth.authentication.interceptor.AuthenticationInterceptor=\
|
||||
com.tencent.supersonic.auth.authentication.interceptor.DefaultAuthenticationInterceptor
|
||||
|
||||
com.tencent.supersonic.auth.api.authentication.adaptor.UserAdaptor=\
|
||||
com.tencent.supersonic.auth.authentication.adaptor.DefaultUserAdaptor
|
||||
|
||||
@@ -4,21 +4,6 @@ insert into s2_user (id, `name`, password, display_name, email) values (2, 'jack
|
||||
insert into s2_user (id, `name`, password, display_name, email) values (3, 'tom','123456','tom','tom@xx.com');
|
||||
insert into s2_user (id, `name`, password, display_name, email) values (4, 'lucy','123456','lucy','lucy@xx.com');
|
||||
|
||||
--insert into s2_chat_config (`id` ,`domain_id` ,`default_metrics`,`visibility`,`entity_info` ,`dictionary_info`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` ) values (1,1,'[{"metricId":1,"unit":7,"period":"DAY"}]','{"blackDimIdList":[],"blackMetricIdList":[]}','{"entityIds":[2],"names":["用户","用户姓名"],"detailData":{"dimensionIds":[1,2],"metricIds":[2]}}','[{"itemId":1,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":2,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":3,"type":"DIMENSION","blackList":[],"isDictInfo":true}]','2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`chat_detail_config`,`chat_agg_config`, `recommended_questions`, `created_at`,`updated_at`,`created_by`,`updated_by`,`status` )
|
||||
values (1,1,
|
||||
'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":2,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[1,2],"metricIds":[1],"unit":7,"period":"DAY"},"entity":null}',
|
||||
'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":2,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[1,2],"metricIds":[1],"unit":7,"period":"DAY"}}',
|
||||
'[{"question":"超音数访问次数"},{"question":"超音数访问人数"},{"question":"超音数按部门访问次数"}]',
|
||||
'2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`chat_detail_config`,`chat_agg_config`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` )
|
||||
values (2,2,
|
||||
'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":7,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[4,5,6,7],"metricIds":[4],"unit":7,"period":"DAY"},"entity":{"entityId":7,"names":["歌手","艺人"]}}',
|
||||
'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":7,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[4,5,6,7],"metricIds":[4],"unit":7,"period":"DAY"}}',
|
||||
'2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
|
||||
insert into s2_plugin (id, `type`, `domain`, pattern, parse_mode, `name`, created_at, created_by, updated_at, updated_by, config) VALUES (1, 'WEB_PAGE', 1, '访问情况', 'EMBEDDING_RECALL', '访问情况', '2023-06-11 19:36:47', 'admin', '2023-06-21 15:26:46', 'admin', '{"params":{"487C128A":"2"}, "url":"www.test.com"}');
|
||||
|
||||
-- sample models
|
||||
insert into s2_database (id, domain_id , `name`, description, `type` ,config ,created_at ,created_by ,updated_at ,updated_by) VALUES(1, 1, 'H2数据实例', '', 'h2', '{"password":"semantic","url":"jdbc:h2:mem:semantic;DATABASE_TO_UPPER=false","userName":"root"}', '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin');
|
||||
insert into s2_database (id, domain_id , `name`, description, `type` ,config ,created_at ,created_by ,updated_at ,updated_by) VALUES(2, 2, 'H2数据实例', '', 'h2', '{"password":"semantic","url":"jdbc:h2:mem:semantic;DATABASE_TO_UPPER=false","userName":"root"}', '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin');
|
||||
@@ -37,7 +22,7 @@ insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, descr
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(6, 2, 4, '风格', 'genre', '风格', 1, 2, 'categorical', NULL, 'genre', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(7, 2, 4, '歌手名', 'singer_name', '歌手名', 1, 2, 'categorical', NULL, 'singer_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org) VALUES(1, '超音数', 'supersonic', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin' );
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org) VALUES(2, '艺人库', 'singer', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin' );
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org, entity) VALUES(2, '艺人库', 'singer', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin','{"entityId": 7, "names": ["歌手", "艺人"]}' );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(1, 1, '停留时长', 'stay_hours', '停留时长', 1, 2, 'ATOMIC', '{"expr":"s2_stay_time_statis_stay_hours","measures":[{"agg":"sum","expr":"stay_hours","isCreateMetric":1,"datasourceId":1,"bizName":"s2_stay_time_statis_stay_hours","name":"s2_stay_time_statis_stay_hours"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(2, 1, '访问次数', 'pv', '访问次数', 1, 0, 'ATOMIC', ' {"expr":"s2_pv_uv_statis_pv","measures":[{"agg":"sum","bizName":"s2_pv_uv_statis_pv","datasourceId":2,"expr":"pv","isCreateMetric":1,"name":"s2_pv_uv_statis_pv"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(3, 1, '访问人数', 'uv', '访问人数', 1, 0, 'ATOMIC', ' {"expr":"s2_pv_uv_statis_uv","measures":[{"agg":"count_distinct","bizName":"s2_pv_uv_statis_uv","datasourceId":2,"expr":"uv","isCreateMetric":1,"name":"s2_pv_uv_statis_uv"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
|
||||
@@ -55,40 +55,6 @@ CREATE TABLE IF NOT EXISTS `s2_chat_config` (
|
||||
COMMENT ON TABLE s2_chat_config IS 'chat config information table ';
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_dictionary` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` INT NOT NULL ,
|
||||
`dim_value_infos` LONGVARCHAR , -- dimension value setting information
|
||||
`created_at` TIMESTAMP NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`updated_by` varchar(100) DEFAULT NULL ,
|
||||
`status` INT NOT NULL DEFAULT '0' , -- domain extension information status : 0 is normal, 1 is off the shelf, 2 is deleted
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE (domain_id)
|
||||
);
|
||||
COMMENT ON TABLE s2_dictionary IS 'dictionary configuration information table';
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_dictionary_task` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL , -- task name
|
||||
`description` varchar(255) ,
|
||||
`command`LONGVARCHAR NOT NULL , -- task Request Parameters
|
||||
`command_md5` varchar(255) NOT NULL , -- task Request Parameters md5
|
||||
`status` INT NOT NULL , -- the final status of the task
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`progress` DOUBLE default 0.00 , -- task real-time progress
|
||||
`elapsed_ms` bigINT DEFAULT NULL , -- the task takes time in milliseconds
|
||||
`message` LONGVARCHAR , -- remark related information
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
COMMENT ON TABLE s2_dictionary_task IS 'dictionary task information table';
|
||||
|
||||
|
||||
create table s2_user
|
||||
(
|
||||
id INT AUTO_INCREMENT,
|
||||
@@ -321,12 +287,14 @@ CREATE TABLE IF NOT EXISTS `s2_plugin`
|
||||
`domain` varchar(100) NULL,
|
||||
`pattern` varchar(500) NULL,
|
||||
`parse_mode` varchar(100) NULL,
|
||||
`parse_mode_config` LONGVARCHAR NULL,
|
||||
`name` varchar(100) NULL,
|
||||
`created_at` TIMESTAMP NULL,
|
||||
`created_by` varchar(100) null,
|
||||
`updated_at` TIMESTAMP NULL,
|
||||
`updated_by` varchar(100) NULL,
|
||||
`config` LONGVARCHAR NULL,
|
||||
`comment` LONGVARCHAR NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
); COMMENT ON TABLE s2_plugin IS 'plugin information table';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user