update:初始化配置数据 (#724)

This commit is contained in:
hrz
2025-04-10 00:18:59 +08:00
committed by GitHub
parent 55be189772
commit e4a0d2c56c
7 changed files with 123 additions and 16 deletions
@@ -74,8 +74,16 @@ public interface Constant {
*/
String ORDER = "order";
/**
* 请求头授权标识
*/
String AUTHORIZATION = "Authorization";
/**
* 服务器密钥
*/
String SERVER_SECRET = "server.secret";
/**
* 路径分割符
*/
@@ -0,0 +1,21 @@
package xiaozhi.modules.sys.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import jakarta.annotation.PostConstruct;
import xiaozhi.modules.sys.service.SysParamsService;
@Configuration
@DependsOn("liquibase")
public class SystemInitConfig {
@Autowired
private SysParamsService sysParamsService;
@PostConstruct
public void init() {
sysParamsService.initServerSecret();
}
}
@@ -29,8 +29,9 @@ public interface SysParamsService extends BaseService<SysParamsEntity> {
* 根据参数编码,获取参数的value值
*
* @param paramCode 参数编码
* @param fromCache 是否从缓存中获取
*/
String getValue(String paramCode);
String getValue(String paramCode, Boolean fromCache);
/**
* 根据参数编码,获取value的Object对象
@@ -47,4 +48,9 @@ public interface SysParamsService extends BaseService<SysParamsEntity> {
* @param paramValue 参数值
*/
int updateValueByCode(String paramCode, String paramValue);
/**
* 初始化服务器密钥
*/
void initServerSecret();
}
@@ -3,6 +3,7 @@ package xiaozhi.modules.sys.service.impl;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@@ -97,19 +98,24 @@ public class SysParamsServiceImpl extends BaseServiceImpl<SysParamsDao, SysParam
}
@Override
public String getValue(String paramCode) {
String paramValue = sysParamsRedis.get(paramCode);
if (paramValue == null) {
paramValue = baseDao.getValueByCode(paramCode);
public String getValue(String paramCode, Boolean fromCache) {
String paramValue = null;
if (fromCache) {
paramValue = sysParamsRedis.get(paramCode);
if (paramValue == null) {
paramValue = baseDao.getValueByCode(paramCode);
sysParamsRedis.set(paramCode, paramValue);
sysParamsRedis.set(paramCode, paramValue);
}
} else {
paramValue = baseDao.getValueByCode(paramCode);
}
return paramValue;
}
@Override
public <T> T getValueObject(String paramCode, Class<T> clazz) {
String paramValue = getValue(paramCode);
String paramValue = getValue(paramCode, true);
if (StringUtils.isNotBlank(paramValue)) {
return JsonUtils.parseObject(paramValue, clazz);
}
@@ -129,4 +135,13 @@ public class SysParamsServiceImpl extends BaseServiceImpl<SysParamsDao, SysParam
return count;
}
@Override
public void initServerSecret() {
// 获取服务器密钥
String secretParam = getValue(Constant.SERVER_SECRET, false);
if (StringUtils.isBlank(secretParam) || "null".equals(secretParam)) {
String newSecret = UUID.randomUUID().toString();
updateValueByCode(Constant.SERVER_SECRET, newSecret);
}
}
}
@@ -0,0 +1,50 @@
-- 本文件用于初始化系统参数数据,无需手动执行,在项目启动时会自动执行
-- --------------------------------------------------------
-- 初始化参数管理配置
DROP TABLE IF EXISTS sys_params;
-- 参数管理
create table sys_params
(
id bigint NOT NULL COMMENT 'id',
param_code varchar(100) COMMENT '参数编码',
param_value varchar(2000) COMMENT '参数值',
param_type tinyint unsigned default 1 COMMENT '类型 0:系统参数 1:非系统参数',
remark varchar(200) COMMENT '备注',
creator bigint COMMENT '创建者',
create_date datetime COMMENT '创建时间',
updater bigint COMMENT '更新者',
update_date datetime COMMENT '更新时间',
primary key (id),
unique key uk_param_code (param_code)
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COMMENT='参数管理';
-- 服务器配置
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (1, 'server.ip', '0.0.0.0', 1, '服务器监听IP地址');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (2, 'server.port', '8000', 1, '服务器监听端口');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (3, 'server.secret', 'null', 1, '服务器密钥');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (4, 'log.log_format', '<green>{time:YYMMDD HH:mm:ss}</green>[{version}_{selected_module}][<light-blue>{extra[tag]}</light-blue>]-<level>{level}</level>-<light-green>{message}</light-green>', 1, '控制台日志格式');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (5, 'log.log_format_file', '{time:YYYY-MM-DD HH:mm:ss} - {version}_{selected_module} - {name} - {level} - {extra[tag]} - {message}', 1, '文件日志格式');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (6, 'log.log_level', 'INFO', 1, '日志级别');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (7, 'log.log_dir', 'tmp', 1, '日志目录');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (8, 'log.log_file', 'server.log', 1, '日志文件名');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (9, 'log.data_dir', 'data', 1, '数据目录');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (10, 'delete_audio', 'true', 1, '是否删除使用后的音频文件');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (11, 'close_connection_no_voice_time', '120', 1, '无语音输入断开连接时间(秒)');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (12, 'tts_timeout', '10', 1, 'TTS请求超时时间(秒)');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (13, 'enable_wakeup_words_response_cache', 'true', 1, '是否开启唤醒词加速');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (14, 'enable_greeting', 'true', 1, '是否开启开场回复');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (15, 'enable_stop_tts_notify', 'false', 1, '是否开启结束提示音');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (16, 'stop_tts_notify_voice', 'config/assets/tts_notify.mp3', 1, '结束提示音文件路径');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (17, 'exit_commands', '["退出","关闭"]', 1, '退出命令列表');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (18, 'xiaozhi', '{
"type": "hello",
"version": 1,
"transport": "websocket",
"audio_params": {
"format": "opus",
"sample_rate": 16000,
"channels": 1,
"frame_duration": 60
}
}', 1, '小智类型');
INSERT INTO `sys_params` (id, param_code, param_value, param_type, remark) VALUES (19, 'wakeup_words', '["你好小智","你好小志","小爱同学","你好小鑫","你好小新","小美同学","小龙小龙","喵喵同学","小滨小滨","小冰小冰"]', 1, '唤醒词列表');
@@ -3,7 +3,7 @@
-- 初始化智能体模板数据
DELETE FROM `ai_agent_template`;
INSERT INTO `ai_agent_template` VALUES ('9406648b5cc5fde1b8aa335b6f8b4f76', '小智', '湾湾小何', 'ASR_FunASR', 'VAD_SileroVAD', 'LLM_ChatGLMLLM', 'TTS_EdgeTTS', 'TTS_EdgeTTS0001', 'Memory_nomem', 'Intent_function_call', '[角色设定]
{{assistant_name}}00"真的假的啦""笑死""是在哈喽"
{{assistant_name}}00"真的假的啦""笑死""哈喽"
[]
-
-
@@ -23,13 +23,6 @@ databaseChangeLog:
- sqlFile:
encoding: utf8
path: classpath:db/changelog/2025_tts_voive.sql
- changeSet:
id: 202504061512
author: John
changes:
- sqlFile:
encoding: utf8
path: classpath:db/changelog/202504061512.sql
- changeSet:
id: 202504082210
author: John
@@ -43,4 +36,18 @@ databaseChangeLog:
changes:
- sqlFile:
encoding: utf8
path: classpath:db/changelog/202504082211.sql
path: classpath:db/changelog/202504082211.sql
- changeSet:
id: 202504092312
author: John
changes:
- sqlFile:
encoding: utf8
path: classpath:db/changelog/202504092312.sql
- changeSet:
id: 202504092335
author: John
changes:
- sqlFile:
encoding: utf8
path: classpath:db/changelog/202504092335.sql