mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-30 03:43:55 +08:00
Manage agent api (#334)
* update:更换新表 * update:优化用户表sql语句 --------- Co-authored-by: hrz <1710360675@qq.com>
This commit is contained in:
@@ -31,11 +31,8 @@ public class DeviceEntity {
|
|||||||
@Schema(description = "设备别名")
|
@Schema(description = "设备别名")
|
||||||
private String alias;
|
private String alias;
|
||||||
|
|
||||||
@Schema(description = "智能体编码")
|
|
||||||
private String agentCode;
|
|
||||||
|
|
||||||
@Schema(description = "智能体ID")
|
@Schema(description = "智能体ID")
|
||||||
private Long agentId;
|
private String agentId;
|
||||||
|
|
||||||
@Schema(description = "固件版本号")
|
@Schema(description = "固件版本号")
|
||||||
private String appVersion;
|
private String appVersion;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class SysUserEntity extends BaseEntity {
|
|||||||
* 更新者
|
* 更新者
|
||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.INSERT)
|
@TableField(fill = FieldFill.INSERT)
|
||||||
private Long create_date;
|
private Date createDate;
|
||||||
/**
|
/**
|
||||||
* 更新者
|
* 更新者
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
-- 给用户表添加一个创建者
|
|
||||||
ALTER TABLE sys_user ADD COLUMN creator BIGINT COMMENT '创建者';
|
|
||||||
+3
-4
@@ -13,10 +13,10 @@ CREATE TABLE sys_user (
|
|||||||
status tinyint COMMENT '状态 0:停用 1:正常',
|
status tinyint COMMENT '状态 0:停用 1:正常',
|
||||||
create_date datetime COMMENT '创建时间',
|
create_date datetime COMMENT '创建时间',
|
||||||
updater bigint COMMENT '更新者',
|
updater bigint COMMENT '更新者',
|
||||||
|
creator bigint COMMENT '创建者',
|
||||||
update_date datetime COMMENT '更新时间',
|
update_date datetime COMMENT '更新时间',
|
||||||
primary key (id),
|
primary key (id),
|
||||||
unique key uk_username (username),
|
unique key uk_username (username)
|
||||||
key idx_create_date (create_date)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户';
|
||||||
|
|
||||||
-- 系统用户Token
|
-- 系统用户Token
|
||||||
@@ -45,8 +45,7 @@ create table sys_params
|
|||||||
updater bigint COMMENT '更新者',
|
updater bigint COMMENT '更新者',
|
||||||
update_date datetime COMMENT '更新时间',
|
update_date datetime COMMENT '更新时间',
|
||||||
primary key (id),
|
primary key (id),
|
||||||
unique key uk_param_code (param_code),
|
unique key uk_param_code (param_code)
|
||||||
key idx_create_date (create_date)
|
|
||||||
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COMMENT='参数管理';
|
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COMMENT='参数管理';
|
||||||
|
|
||||||
-- 字典类型
|
-- 字典类型
|
||||||
+116
-98
@@ -1,12 +1,29 @@
|
|||||||
|
-- 模型供应器表
|
||||||
|
DROP TABLE IF EXISTS `ai_model_provider`;
|
||||||
|
CREATE TABLE `ai_model_provider` (
|
||||||
|
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||||
|
`model_type` VARCHAR(20) COMMENT '模型类型(Memory/ASR/VAD/LLM/TTS)',
|
||||||
|
`provider_code` VARCHAR(50) COMMENT '供应器类型',
|
||||||
|
`name` VARCHAR(50) COMMENT '供应器名称',
|
||||||
|
`fields` JSON COMMENT '供应器字段列表(JSON格式)',
|
||||||
|
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序',
|
||||||
|
`creator` BIGINT COMMENT '创建者',
|
||||||
|
`create_date` DATETIME COMMENT '创建时间',
|
||||||
|
`updater` BIGINT COMMENT '更新者',
|
||||||
|
`update_date` DATETIME COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
INDEX `idx_ai_model_provider_model_type` (`model_type`) COMMENT '创建模型类型的索引,用于快速查找特定类型下的所有供应器信息'
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='模型配置表';
|
||||||
|
|
||||||
-- 模型配置表
|
-- 模型配置表
|
||||||
DROP TABLE IF EXISTS `ai_model_config`;
|
DROP TABLE IF EXISTS `ai_model_config`;
|
||||||
CREATE TABLE `ai_model_config` (
|
CREATE TABLE `ai_model_config` (
|
||||||
`id` BIGINT NOT NULL COMMENT '主键',
|
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||||
`model_type` VARCHAR(20) COMMENT '模型类型(Memory/ASR/VAD/LLM/TTS)',
|
`model_type` VARCHAR(20) COMMENT '模型类型(Memory/ASR/VAD/LLM/TTS)',
|
||||||
`model_code` VARCHAR(50) COMMENT '模型编码(如AliLLM、DoubaoTTS)',
|
`model_code` VARCHAR(50) COMMENT '模型编码(如AliLLM、DoubaoTTS)',
|
||||||
`model_name` VARCHAR(50) COMMENT '模型名称',
|
`model_name` VARCHAR(50) COMMENT '模型名称',
|
||||||
`is_default` TINYINT(1) DEFAULT 0 COMMENT '是否默认配置(0否 1是)',
|
`is_default` TINYINT(1) DEFAULT 0 COMMENT '是否默认配置(0否 1是)',
|
||||||
`is_enabled` TINYINT(1) DEFAULT 0 COMMENT '是否启用(原注释有误,应为是否启用而非是否默认配置)',
|
`is_enabled` TINYINT(1) DEFAULT 0 COMMENT '是否启用',
|
||||||
`config_json` JSON COMMENT '模型配置(JSON格式)',
|
`config_json` JSON COMMENT '模型配置(JSON格式)',
|
||||||
`doc_link` VARCHAR(200) COMMENT '官方文档链接',
|
`doc_link` VARCHAR(200) COMMENT '官方文档链接',
|
||||||
`remark` VARCHAR(255) COMMENT '备注',
|
`remark` VARCHAR(255) COMMENT '备注',
|
||||||
@@ -15,14 +32,15 @@ CREATE TABLE `ai_model_config` (
|
|||||||
`create_date` DATETIME COMMENT '创建时间',
|
`create_date` DATETIME COMMENT '创建时间',
|
||||||
`updater` BIGINT COMMENT '更新者',
|
`updater` BIGINT COMMENT '更新者',
|
||||||
`update_date` DATETIME COMMENT '更新时间',
|
`update_date` DATETIME COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`),
|
||||||
|
INDEX `idx_ai_model_config_model_type` (`model_type`) COMMENT '创建模型类型的索引,用于快速查找特定类型下的所有配置信息'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='模型配置表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='模型配置表';
|
||||||
|
|
||||||
-- TTS 音色表
|
-- TTS 音色表
|
||||||
DROP TABLE IF EXISTS `ai_tts_voice`;
|
DROP TABLE IF EXISTS `ai_tts_voice`;
|
||||||
CREATE TABLE `ai_tts_voice` (
|
CREATE TABLE `ai_tts_voice` (
|
||||||
`id` BIGINT NOT NULL COMMENT '主键',
|
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||||
`tts_model_id` BIGINT COMMENT '对应 TTS 模型主键',
|
`tts_model_id` VARCHAR(32) COMMENT '对应 TTS 模型主键',
|
||||||
`name` VARCHAR(20) COMMENT '音色名称',
|
`name` VARCHAR(20) COMMENT '音色名称',
|
||||||
`tts_voice` VARCHAR(50) COMMENT '音色编码',
|
`tts_voice` VARCHAR(50) COMMENT '音色编码',
|
||||||
`languages` VARCHAR(50) COMMENT '语言',
|
`languages` VARCHAR(50) COMMENT '语言',
|
||||||
@@ -33,99 +51,14 @@ CREATE TABLE `ai_tts_voice` (
|
|||||||
`create_date` DATETIME COMMENT '创建时间',
|
`create_date` DATETIME COMMENT '创建时间',
|
||||||
`updater` BIGINT COMMENT '更新者',
|
`updater` BIGINT COMMENT '更新者',
|
||||||
`update_date` DATETIME COMMENT '更新时间',
|
`update_date` DATETIME COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='TTS 音色表';
|
|
||||||
|
|
||||||
-- 对话历史表
|
|
||||||
DROP TABLE IF EXISTS `ai_chat_history`;
|
|
||||||
CREATE TABLE `ai_chat_history` (
|
|
||||||
`id` BIGINT NOT NULL COMMENT '对话编号',
|
|
||||||
`user_id` BIGINT COMMENT '用户编号',
|
|
||||||
`agent_id` BIGINT DEFAULT NULL COMMENT '聊天角色',
|
|
||||||
`device_id` BIGINT DEFAULT NULL COMMENT '设备编号(原注释有误,应为设备编号)',
|
|
||||||
`message_count` INT COMMENT '信息汇总',
|
|
||||||
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序',
|
|
||||||
`creator` BIGINT COMMENT '创建者',
|
|
||||||
`create_date` DATETIME COMMENT '创建时间',
|
|
||||||
`updater` BIGINT COMMENT '更新者',
|
|
||||||
`update_date` DATETIME COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对话历史表';
|
|
||||||
|
|
||||||
-- 对话信息表
|
|
||||||
DROP TABLE IF EXISTS `ai_chat_message`;
|
|
||||||
CREATE TABLE `ai_chat_message` (
|
|
||||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '对话记录唯一标识',
|
|
||||||
`user_id` BIGINT COMMENT '用户唯一标识',
|
|
||||||
`chat_id` VARCHAR(64) COMMENT '对话历史 ID',
|
|
||||||
`agent_name` VARCHAR(64) COMMENT '智能体名称',
|
|
||||||
`role` ENUM('user', 'assistant') COMMENT '角色(用户或助理)',
|
|
||||||
`content` TEXT COMMENT '对话内容',
|
|
||||||
`embedding` TEXT COMMENT '对话内容的嵌入向量(可选)',
|
|
||||||
`url` VARCHAR(255) COMMENT '相关音频文件的 URL(可选)',
|
|
||||||
`prompt_tokens` INT UNSIGNED DEFAULT 0 COMMENT '提示令牌数',
|
|
||||||
`total_tokens` INT UNSIGNED DEFAULT 0 COMMENT '总令牌数',
|
|
||||||
`completion_tokens` INT UNSIGNED DEFAULT 0 COMMENT '完成令牌数',
|
|
||||||
`prompt_ms` INT UNSIGNED DEFAULT 0 COMMENT '提示耗时(毫秒)',
|
|
||||||
`total_ms` INT UNSIGNED DEFAULT 0 COMMENT '总耗时(毫秒)',
|
|
||||||
`completion_ms` INT UNSIGNED DEFAULT 0 COMMENT '完成耗时(毫秒)',
|
|
||||||
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序',
|
|
||||||
`creator` BIGINT COMMENT '创建者',
|
|
||||||
`create_date` DATETIME COMMENT '创建时间',
|
|
||||||
`updater` BIGINT COMMENT '更新者',
|
|
||||||
`update_date` DATETIME COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
INDEX `idx_user_id_chat_id_role` (`user_id`, `chat_id`) COMMENT '用户 ID、聊天会话 ID 和角色的联合索引,用于快速检索对话记录',
|
INDEX `idx_ai_tts_voice_tts_model_id` (`tts_model_id`) COMMENT '创建 TTS 模型主键的索引,用于快速查找对应模型的音色信息'
|
||||||
INDEX `idx_created_at` (`create_date`) COMMENT '创建时间的索引,用于按时间排序或检索对话记录'
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='TTS 音色表';
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对话信息表';
|
|
||||||
|
|
||||||
-- 设备信息表
|
|
||||||
DROP TABLE IF EXISTS `ai_device`;
|
|
||||||
CREATE TABLE `ai_device` (
|
|
||||||
`id` BIGINT NOT NULL COMMENT '设备唯一标识',
|
|
||||||
`user_id` BIGINT COMMENT '关联用户 ID',
|
|
||||||
`mac_address` VARCHAR(50) COMMENT 'MAC 地址',
|
|
||||||
`last_connected_at` DATETIME COMMENT '最后连接时间',
|
|
||||||
`auto_update` TINYINT UNSIGNED DEFAULT 0 COMMENT '自动更新开关(0 关闭/1 开启)',
|
|
||||||
`board` VARCHAR(50) COMMENT '设备硬件型号',
|
|
||||||
`alias` VARCHAR(64) DEFAULT NULL COMMENT '设备别名',
|
|
||||||
`agent_code` VARCHAR(36) COMMENT '智能体编码',
|
|
||||||
`agent_id` BIGINT COMMENT '智能体 ID',
|
|
||||||
`app_version` VARCHAR(20) COMMENT '固件版本号',
|
|
||||||
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序',
|
|
||||||
`creator` BIGINT COMMENT '创建者',
|
|
||||||
`create_date` DATETIME COMMENT '创建时间',
|
|
||||||
`updater` BIGINT COMMENT '更新者',
|
|
||||||
`update_date` DATETIME COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备信息表';
|
|
||||||
|
|
||||||
-- 智能体配置表
|
|
||||||
DROP TABLE IF EXISTS `ai_agent`;
|
|
||||||
CREATE TABLE `ai_agent` (
|
|
||||||
`id` BIGINT NOT NULL COMMENT '智能体唯一标识',
|
|
||||||
`user_id` BIGINT COMMENT '所属用户 ID',
|
|
||||||
`agent_code` VARCHAR(36) COMMENT '智能体唯一凭证',
|
|
||||||
`agent_name` VARCHAR(64) COMMENT '智能体名称',
|
|
||||||
`tts_voice` VARCHAR(64) COMMENT '语音合成标识',
|
|
||||||
`llm_model` VARCHAR(32) COMMENT '大语言模型标识',
|
|
||||||
`memory` TEXT COMMENT '历史记忆数据',
|
|
||||||
`character` TEXT COMMENT '角色设定参数',
|
|
||||||
`long_memory_switch` TINYINT UNSIGNED DEFAULT 0 COMMENT '长期记忆开关',
|
|
||||||
`lang_code` VARCHAR(10) COMMENT '语言编码',
|
|
||||||
`language` VARCHAR(10) COMMENT '交互语种',
|
|
||||||
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序权重',
|
|
||||||
`creator` BIGINT COMMENT '创建者 ID',
|
|
||||||
`created_at` DATETIME COMMENT '创建时间',
|
|
||||||
`updater` BIGINT COMMENT '更新者 ID',
|
|
||||||
`updated_at` DATETIME COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能体配置表';
|
|
||||||
|
|
||||||
-- 智能体配置模板表
|
-- 智能体配置模板表
|
||||||
DROP TABLE IF EXISTS `ai_agent_template`;
|
DROP TABLE IF EXISTS `ai_agent_template`;
|
||||||
CREATE TABLE `ai_agent_template` (
|
CREATE TABLE `ai_agent_template` (
|
||||||
`id` BIGINT NOT NULL COMMENT '智能体唯一标识',
|
`id` VARCHAR(32) NOT NULL COMMENT '智能体唯一标识',
|
||||||
`agent_code` VARCHAR(36) COMMENT '智能体编码',
|
`agent_code` VARCHAR(36) COMMENT '智能体编码',
|
||||||
`agent_name` VARCHAR(64) COMMENT '智能体名称',
|
`agent_name` VARCHAR(64) COMMENT '智能体名称',
|
||||||
`asr_model_id` VARCHAR(32) COMMENT '语音识别模型标识',
|
`asr_model_id` VARCHAR(32) COMMENT '语音识别模型标识',
|
||||||
@@ -133,9 +66,9 @@ CREATE TABLE `ai_agent_template` (
|
|||||||
`llm_model_id` VARCHAR(32) COMMENT '大语言模型标识',
|
`llm_model_id` VARCHAR(32) COMMENT '大语言模型标识',
|
||||||
`tts_model_id` VARCHAR(32) COMMENT '语音合成模型标识',
|
`tts_model_id` VARCHAR(32) COMMENT '语音合成模型标识',
|
||||||
`tts_voice_id` VARCHAR(32) COMMENT '音色标识',
|
`tts_voice_id` VARCHAR(32) COMMENT '音色标识',
|
||||||
`memory` TEXT COMMENT '历史记忆数据',
|
`mem_model_id` VARCHAR(32) COMMENT '记忆模型标识',
|
||||||
`character` TEXT COMMENT '角色设定参数',
|
`intent_model_id` VARCHAR(32) COMMENT '意图模型标识',
|
||||||
`long_memory_switch` TINYINT UNSIGNED DEFAULT 0 COMMENT '长期记忆开关',
|
`system_prompt` TEXT COMMENT '角色设定参数',
|
||||||
`lang_code` VARCHAR(10) COMMENT '语言编码',
|
`lang_code` VARCHAR(10) COMMENT '语言编码',
|
||||||
`language` VARCHAR(10) COMMENT '交互语种',
|
`language` VARCHAR(10) COMMENT '交互语种',
|
||||||
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序权重',
|
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序权重',
|
||||||
@@ -146,13 +79,60 @@ CREATE TABLE `ai_agent_template` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能体配置模板表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能体配置模板表';
|
||||||
|
|
||||||
|
-- 智能体配置表
|
||||||
|
DROP TABLE IF EXISTS `ai_agent`;
|
||||||
|
CREATE TABLE `ai_agent` (
|
||||||
|
`id` VARCHAR(32) NOT NULL COMMENT '智能体唯一标识',
|
||||||
|
`user_id` BIGINT COMMENT '所属用户 ID',
|
||||||
|
`agent_code` VARCHAR(36) COMMENT '智能体编码',
|
||||||
|
`agent_name` VARCHAR(64) COMMENT '智能体名称',
|
||||||
|
`asr_model_id` VARCHAR(32) COMMENT '语音识别模型标识',
|
||||||
|
`vad_model_id` VARCHAR(64) COMMENT '语音活动检测标识',
|
||||||
|
`llm_model_id` VARCHAR(32) COMMENT '大语言模型标识',
|
||||||
|
`tts_model_id` VARCHAR(32) COMMENT '语音合成模型标识',
|
||||||
|
`tts_voice_id` VARCHAR(32) COMMENT '音色标识',
|
||||||
|
`mem_model_id` VARCHAR(32) COMMENT '记忆模型标识',
|
||||||
|
`intent_model_id` VARCHAR(32) COMMENT '意图模型标识',
|
||||||
|
`system_prompt` TEXT COMMENT '角色设定参数',
|
||||||
|
`lang_code` VARCHAR(10) COMMENT '语言编码',
|
||||||
|
`language` VARCHAR(10) COMMENT '交互语种',
|
||||||
|
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序权重',
|
||||||
|
`creator` BIGINT COMMENT '创建者 ID',
|
||||||
|
`created_at` DATETIME COMMENT '创建时间',
|
||||||
|
`updater` BIGINT COMMENT '更新者 ID',
|
||||||
|
`updated_at` DATETIME COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
INDEX `idx_ai_agent_user_id` (`user_id`) COMMENT '创建用户的索引,用于快速查找用户下的智能体信息'
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能体配置表';
|
||||||
|
|
||||||
|
-- 设备信息表
|
||||||
|
DROP TABLE IF EXISTS `ai_device`;
|
||||||
|
CREATE TABLE `ai_device` (
|
||||||
|
`id` VARCHAR(32) NOT NULL COMMENT '设备唯一标识',
|
||||||
|
`user_id` BIGINT COMMENT '关联用户 ID',
|
||||||
|
`mac_address` VARCHAR(50) COMMENT 'MAC 地址',
|
||||||
|
`last_connected_at` DATETIME COMMENT '最后连接时间',
|
||||||
|
`auto_update` TINYINT UNSIGNED DEFAULT 0 COMMENT '自动更新开关(0 关闭/1 开启)',
|
||||||
|
`board` VARCHAR(50) COMMENT '设备硬件型号',
|
||||||
|
`alias` VARCHAR(64) DEFAULT NULL COMMENT '设备别名',
|
||||||
|
`agent_id` VARCHAR(32) COMMENT '智能体 ID',
|
||||||
|
`app_version` VARCHAR(20) COMMENT '固件版本号',
|
||||||
|
`sort` INT UNSIGNED DEFAULT 0 COMMENT '排序',
|
||||||
|
`creator` BIGINT COMMENT '创建者',
|
||||||
|
`create_date` DATETIME COMMENT '创建时间',
|
||||||
|
`updater` BIGINT COMMENT '更新者',
|
||||||
|
`update_date` DATETIME COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
INDEX `idx_ai_device_created_at` (`mac_address`) COMMENT '创建mac的索引,用于快速查找设备信息'
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备信息表';
|
||||||
|
|
||||||
-- 声纹识别表
|
-- 声纹识别表
|
||||||
DROP TABLE IF EXISTS `ai_voiceprint`;
|
DROP TABLE IF EXISTS `ai_voiceprint`;
|
||||||
CREATE TABLE `ai_voiceprint` (
|
CREATE TABLE `ai_voiceprint` (
|
||||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '声纹唯一标识',
|
`id` VARCHAR(32) NOT NULL COMMENT '声纹唯一标识',
|
||||||
`name` VARCHAR(64) COMMENT '声纹名称',
|
`name` VARCHAR(64) COMMENT '声纹名称',
|
||||||
`user_id` BIGINT COMMENT '用户 ID(关联用户表)',
|
`user_id` BIGINT COMMENT '用户 ID(关联用户表)',
|
||||||
`agent_id` BIGINT COMMENT '关联智能体 ID',
|
`agent_id` VARCHAR(32) COMMENT '关联智能体 ID',
|
||||||
`agent_code` VARCHAR(36) COMMENT '关联智能体编码',
|
`agent_code` VARCHAR(36) COMMENT '关联智能体编码',
|
||||||
`agent_name` VARCHAR(36) COMMENT '关联智能体名称',
|
`agent_name` VARCHAR(36) COMMENT '关联智能体名称',
|
||||||
`description` VARCHAR(255) COMMENT '声纹描述',
|
`description` VARCHAR(255) COMMENT '声纹描述',
|
||||||
@@ -165,3 +145,41 @@ CREATE TABLE `ai_voiceprint` (
|
|||||||
`updated_at` DATETIME COMMENT '更新时间',
|
`updated_at` DATETIME COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='声纹识别表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='声纹识别表';
|
||||||
|
|
||||||
|
-- 对话历史表
|
||||||
|
DROP TABLE IF EXISTS `ai_chat_history`;
|
||||||
|
CREATE TABLE `ai_chat_history` (
|
||||||
|
`id` VARCHAR(32) NOT NULL COMMENT '对话编号',
|
||||||
|
`user_id` BIGINT COMMENT '用户编号',
|
||||||
|
`agent_id` VARCHAR(32) DEFAULT NULL COMMENT '聊天角色',
|
||||||
|
`device_id` VARCHAR(32) DEFAULT NULL COMMENT '设备编号',
|
||||||
|
`message_count` INT COMMENT '信息汇总',
|
||||||
|
`creator` BIGINT COMMENT '创建者',
|
||||||
|
`create_date` DATETIME COMMENT '创建时间',
|
||||||
|
`updater` BIGINT COMMENT '更新者',
|
||||||
|
`update_date` DATETIME COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对话历史表';
|
||||||
|
|
||||||
|
-- 对话信息表
|
||||||
|
DROP TABLE IF EXISTS `ai_chat_message`;
|
||||||
|
CREATE TABLE `ai_chat_message` (
|
||||||
|
`id` VARCHAR(32) NOT NULL COMMENT '对话记录唯一标识',
|
||||||
|
`user_id` BIGINT COMMENT '用户唯一标识',
|
||||||
|
`chat_id` VARCHAR(64) COMMENT '对话历史 ID',
|
||||||
|
`role` ENUM('user', 'assistant') COMMENT '角色(用户或助理)',
|
||||||
|
`content` TEXT COMMENT '对话内容',
|
||||||
|
`prompt_tokens` INT UNSIGNED DEFAULT 0 COMMENT '提示令牌数',
|
||||||
|
`total_tokens` INT UNSIGNED DEFAULT 0 COMMENT '总令牌数',
|
||||||
|
`completion_tokens` INT UNSIGNED DEFAULT 0 COMMENT '完成令牌数',
|
||||||
|
`prompt_ms` INT UNSIGNED DEFAULT 0 COMMENT '提示耗时(毫秒)',
|
||||||
|
`total_ms` INT UNSIGNED DEFAULT 0 COMMENT '总耗时(毫秒)',
|
||||||
|
`completion_ms` INT UNSIGNED DEFAULT 0 COMMENT '完成耗时(毫秒)',
|
||||||
|
`creator` BIGINT COMMENT '创建者',
|
||||||
|
`create_date` DATETIME COMMENT '创建时间',
|
||||||
|
`updater` BIGINT COMMENT '更新者',
|
||||||
|
`update_date` DATETIME COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
INDEX `idx_ai_chat_message_user_id_chat_id_role` (`user_id`, `chat_id`) COMMENT '用户 ID、聊天会话 ID 和角色的联合索引,用于快速检索对话记录',
|
||||||
|
INDEX `idx_ai_chat_message_created_at` (`create_date`) COMMENT '创建时间的索引,用于按时间排序或检索对话记录'
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对话信息表';
|
||||||
@@ -3,23 +3,16 @@
|
|||||||
# 每次对数据表进行改动时,只允许新建新对changeSet,不允许对上一个changeSet配置及文件进行修改
|
# 每次对数据表进行改动时,只允许新建新对changeSet,不允许对上一个changeSet配置及文件进行修改
|
||||||
databaseChangeLog:
|
databaseChangeLog:
|
||||||
- changeSet:
|
- changeSet:
|
||||||
id: 001create_sys
|
id: 202503141335
|
||||||
author: John
|
author: John
|
||||||
changes:
|
changes:
|
||||||
- sqlFile:
|
- sqlFile:
|
||||||
encoding: utf8
|
encoding: utf8
|
||||||
path: classpath:db/changelog/001create_sys.sql
|
path: classpath:db/changelog/202503141335.sql
|
||||||
- changeSet:
|
- changeSet:
|
||||||
id: 202503101631
|
id: 202503141346
|
||||||
author: zjy
|
|
||||||
changes:
|
|
||||||
- sqlFile:
|
|
||||||
encoding: utf8
|
|
||||||
path: classpath:db/changelog/202503101631.sql
|
|
||||||
- changeSet:
|
|
||||||
id: 202503131429
|
|
||||||
author: czc
|
author: czc
|
||||||
changes:
|
changes:
|
||||||
- sqlFile:
|
- sqlFile:
|
||||||
encoding: utf8
|
encoding: utf8
|
||||||
path: classpath:db/changelog/202503131429.sql
|
path: classpath:db/changelog/202503141346.sql
|
||||||
Reference in New Issue
Block a user