后台管理功能实现

This commit is contained in:
2025-10-28 17:30:47 +08:00
parent 3f651d8072
commit f7a3868f34
10 changed files with 4562 additions and 24 deletions
+260
View File
@@ -936,5 +936,265 @@ WHERE
ORDER BY
TABLE_NAME;
-- ============================================================================
-- 19. AI接口配置表 (t_ai_config)
-- 用于存储各种AI接口的调用配置,支持从配置文件迁移到数据库管理
-- ============================================================================
CREATE TABLE t_ai_config (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键',
config_name VARCHAR(100) NOT NULL COMMENT '配置名称',
config_key VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键值 (唯一标识)',
config_type VARCHAR(50) NOT NULL DEFAULT 'coze' COMMENT '配置类型: coze-扣子, openai-OpenAI, claude-Claude, gemini-Gemini等',
provider VARCHAR(50) NOT NULL COMMENT '服务提供商: coze, openai, anthropic, google等',
-- API基础配置
api_base_url VARCHAR(500) NOT NULL COMMENT 'API基础URL',
api_token VARCHAR(1000) NOT NULL COMMENT 'API访问令牌 (加密存储)',
api_version VARCHAR(20) COMMENT 'API版本',
-- 模型配置
model_name VARCHAR(100) COMMENT '模型名称',
bot_id VARCHAR(100) COMMENT 'Bot ID (Coze专用)',
workflow_id VARCHAR(100) COMMENT 'Workflow ID (Coze专用)',
-- 请求配置
timeout_ms INT DEFAULT 30000 COMMENT '超时时间(毫秒)',
retry_count INT DEFAULT 3 COMMENT '重试次数',
retry_delay_ms INT DEFAULT 1000 COMMENT '重试延迟(毫秒)',
max_tokens INT DEFAULT 4000 COMMENT '最大Token数',
temperature DECIMAL(3,2) DEFAULT 0.7 COMMENT '温度参数 (0.0-2.0)',
top_p DECIMAL(3,2) DEFAULT 1.0 COMMENT 'Top-p参数 (0.0-1.0)',
-- 功能配置
support_stream TINYINT DEFAULT 1 COMMENT '是否支持流式输出: 0-不支持, 1-支持',
support_function_call TINYINT DEFAULT 0 COMMENT '是否支持函数调用: 0-不支持, 1-支持',
support_vision TINYINT DEFAULT 0 COMMENT '是否支持视觉理解: 0-不支持, 1-支持',
support_file_upload TINYINT DEFAULT 0 COMMENT '是否支持文件上传: 0-不支持, 1-支持',
-- 使用场景配置
usage_scenario VARCHAR(100) NOT NULL COMMENT '使用场景: chat-聊天, summary-总结, emotion_analysis-情绪分析, content_generation-内容生成等',
priority INT DEFAULT 0 COMMENT '优先级 (数值越大优先级越高)',
-- 费用配置
input_price_per_1k DECIMAL(10,6) DEFAULT 0.000000 COMMENT '输入Token价格(每1K)',
output_price_per_1k DECIMAL(10,6) DEFAULT 0.000000 COMMENT '输出Token价格(每1K)',
currency VARCHAR(10) DEFAULT 'USD' COMMENT '货币单位',
-- 限制配置
rate_limit_per_minute INT DEFAULT 60 COMMENT '每分钟请求限制',
rate_limit_per_hour INT DEFAULT 3600 COMMENT '每小时请求限制',
rate_limit_per_day INT DEFAULT 86400 COMMENT '每日请求限制',
-- 状态配置
is_enabled TINYINT DEFAULT 1 COMMENT '是否启用: 0-禁用, 1-启用',
is_default TINYINT DEFAULT 0 COMMENT '是否为默认配置: 0-否, 1-是',
environment VARCHAR(20) DEFAULT 'production' COMMENT '环境: development-开发, testing-测试, production-生产',
-- 扩展配置
custom_headers JSON COMMENT '自定义请求头',
custom_params JSON COMMENT '自定义参数',
webhook_url VARCHAR(500) COMMENT 'Webhook回调地址',
-- 监控配置
health_check_url VARCHAR(500) COMMENT '健康检查URL',
health_check_interval_minutes INT DEFAULT 5 COMMENT '健康检查间隔(分钟)',
-- 描述信息
description TEXT COMMENT '配置描述',
usage_notes TEXT COMMENT '使用说明',
-- 公共字段
create_by VARCHAR(64) COMMENT '创建人ID',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_by VARCHAR(64) COMMENT '更新人ID',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
is_deleted TINYINT DEFAULT 0 COMMENT '是否删除: 0-未删除, 1-已删除',
remarks VARCHAR(500) COMMENT '备注'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI接口配置表 (t_ai_config)';
-- AI配置表索引
CREATE INDEX idx_ai_config_config_key ON t_ai_config (config_key);
CREATE INDEX idx_ai_config_config_type ON t_ai_config (config_type);
CREATE INDEX idx_ai_config_provider ON t_ai_config (provider);
CREATE INDEX idx_ai_config_usage_scenario ON t_ai_config (usage_scenario);
CREATE INDEX idx_ai_config_is_enabled ON t_ai_config (is_enabled);
CREATE INDEX idx_ai_config_is_default ON t_ai_config (is_default);
CREATE INDEX idx_ai_config_environment ON t_ai_config (environment);
CREATE INDEX idx_ai_config_priority ON t_ai_config (priority);
CREATE INDEX idx_ai_config_create_time ON t_ai_config (create_time);
CREATE INDEX idx_ai_config_update_time ON t_ai_config (update_time);
CREATE INDEX idx_ai_config_is_deleted ON t_ai_config (is_deleted);
CREATE INDEX idx_ai_config_scenario_enabled ON t_ai_config (usage_scenario, is_enabled);
CREATE INDEX idx_ai_config_type_enabled ON t_ai_config (config_type, is_enabled);
-- ============================================================================
-- AI配置初始化数据
-- 基于AiChatServiceImpl.java中的配置参数创建默认配置
-- ============================================================================
-- 1. Coze聊天配置 (默认聊天场景)
INSERT INTO t_ai_config (
id, config_name, config_key, config_type, provider,
api_base_url, api_token, api_version,
bot_id, workflow_id,
timeout_ms, retry_count, retry_delay_ms, max_tokens, temperature,
support_stream, support_function_call, support_vision, support_file_upload,
usage_scenario, priority, is_enabled, is_default, environment,
input_price_per_1k, output_price_per_1k, currency,
rate_limit_per_minute, rate_limit_per_hour, rate_limit_per_day,
description, usage_notes,
create_time, update_time, is_deleted
) VALUES (
REPLACE(UUID(), '-', ''),
'Coze聊天机器人配置',
'coze.chat.default',
'coze',
'coze',
'https://api.coze.cn',
'sat_WgqusMh5gTfgRhsEFycGA5n9NailrJYV1rHeruJCHNB1gAvJz4laprLsvK8i2jEL',
'v3',
'7523042446285439016',
'7523047462895796287',
30000, 3, 1000, 4000, 0.7,
1, 1, 0, 0,
'chat', 100, 1, 1, 'production',
0.001000, 0.002000, 'USD',
60, 3600, 86400,
'Coze平台的默认聊天机器人配置,用于日常情绪对话',
'1. 需要配置有效的API Token\n2. 需要配置Bot ID和Workflow ID\n3. 支持流式输出和函数调用',
NOW(), NOW(), 0
);
-- 2. Coze总结配置 (专用于对话总结)
INSERT INTO t_ai_config (
id, config_name, config_key, config_type, provider,
api_base_url, api_token, api_version,
bot_id, workflow_id,
timeout_ms, retry_count, retry_delay_ms, max_tokens, temperature,
support_stream, support_function_call, support_vision, support_file_upload,
usage_scenario, priority, is_enabled, is_default, environment,
input_price_per_1k, output_price_per_1k, currency,
rate_limit_per_minute, rate_limit_per_hour, rate_limit_per_day,
description, usage_notes,
create_time, update_time, is_deleted
) VALUES (
REPLACE(UUID(), '-', ''),
'Coze对话总结配置',
'coze.summary.default',
'coze',
'coze',
'https://api.coze.cn',
'sat_WgqusMh5gTfgRhsEFycGA5n9NailrJYV1rHeruJCHNB1gAvJz4laprLsvK8i2jEL',
'v3',
'7529062814150295595',
'7523047462895796287',
30000, 3, 1000, 8000, 0.3,
0, 0, 0, 0,
'summary', 90, 1, 1, 'production',
0.001000, 0.002000, 'USD',
30, 1800, 43200,
'Coze平台的对话总结配置,专门用于生成对话摘要和情绪分析',
'1. 使用较低的temperature以获得更稳定的总结结果\n2. 增加max_tokens以支持长文本总结\n3. 不支持流式输出',
NOW(), NOW(), 0
);
-- 3. Coze情绪分析配置 (专用于情绪分析)
INSERT INTO t_ai_config (
id, config_name, config_key, config_type, provider,
api_base_url, api_token, api_version,
bot_id, workflow_id,
timeout_ms, retry_count, retry_delay_ms, max_tokens, temperature,
support_stream, support_function_call, support_vision, support_file_upload,
usage_scenario, priority, is_enabled, is_default, environment,
input_price_per_1k, output_price_per_1k, currency,
rate_limit_per_minute, rate_limit_per_hour, rate_limit_per_day,
description, usage_notes,
create_time, update_time, is_deleted
) VALUES (
REPLACE(UUID(), '-', ''),
'Coze情绪分析配置',
'coze.emotion_analysis.default',
'coze',
'coze',
'https://api.coze.cn',
'sat_WgqusMh5gTfgRhsEFycGA5n9NailrJYV1rHeruJCHNB1gAvJz4laprLsvK8i2jEL',
'v3',
'7529062814150295595', -- 复用总结bot,或配置专门的情绪分析bot
'7523047462895796287', -- 复用总结workflow,或配置专门的情绪分析workflow
45000, 3, 1500, 6000, 0.2,
0, 1, 0, 0,
'emotion_analysis', 95, 1, 1, 'production',
0.001000, 0.002000, 'USD',
20, 1200, 28800,
'Coze平台的情绪分析配置,用于分析用户聊天记录的情绪状态',
'1. 使用最低的temperature以获得准确的情绪分析\n2. 支持函数调用以获取结构化的分析结果\n3. 增加超时时间以处理复杂的情绪分析',
NOW(), NOW(), 0
);
-- 4. 备用OpenAI配置 (作为备选方案)
INSERT INTO t_ai_config (
id, config_name, config_key, config_type, provider,
api_base_url, api_token, api_version,
model_name,
timeout_ms, retry_count, retry_delay_ms, max_tokens, temperature, top_p,
support_stream, support_function_call, support_vision, support_file_upload,
usage_scenario, priority, is_enabled, is_default, environment,
input_price_per_1k, output_price_per_1k, currency,
rate_limit_per_minute, rate_limit_per_hour, rate_limit_per_day,
description, usage_notes,
create_time, update_time, is_deleted
) VALUES (
REPLACE(UUID(), '-', ''),
'OpenAI GPT-4备用配置',
'openai.gpt4.backup',
'openai',
'openai',
'https://api.openai.com/v1',
'sk-placeholder-openai-api-key-here', -- 需要配置实际的OpenAI API Key
'v1',
'gpt-4-turbo-preview',
30000, 3, 2000, 4000, 0.7, 1.0,
1, 1, 1, 1,
'chat', 50, 0, 0, 'production', -- 默认禁用,作为备用
0.010000, 0.030000, 'USD',
60, 3600, 86400,
'OpenAI GPT-4备用配置,当Coze服务不可用时的备选方案',
'1. 需要配置有效的OpenAI API Key\n2. 支持视觉理解和文件上传\n3. 成本较高,建议作为备用方案',
NOW(), NOW(), 0
);
-- 5. 开发环境测试配置
INSERT INTO t_ai_config (
id, config_name, config_key, config_type, provider,
api_base_url, api_token, api_version,
bot_id, workflow_id,
timeout_ms, retry_count, retry_delay_ms, max_tokens, temperature,
support_stream, support_function_call, support_vision, support_file_upload,
usage_scenario, priority, is_enabled, is_default, environment,
input_price_per_1k, output_price_per_1k, currency,
rate_limit_per_minute, rate_limit_per_hour, rate_limit_per_day,
description, usage_notes,
create_time, update_time, is_deleted
) VALUES (
REPLACE(UUID(), '-', ''),
'Coze开发环境测试配置',
'coze.chat.development',
'coze',
'coze',
'https://api.coze.cn',
'sat_WgqusMh5gTfgRhsEFycGA5n9NailrJYV1rHeruJCHNB1gAvJz4laprLsvK8i2jEL', -- 开发环境可使用相同token或配置专门的开发token
'v3',
'7523042446285439016', -- 开发环境可使用相同bot-id或配置专门的开发bot-id
'7523047462895796287', -- 开发环境可使用相同workflow-id或配置专门的开发workflow-id
10000, 2, 500, 2000, 0.8,
1, 1, 0, 0,
'chat', 80, 1, 0, 'development',
0.000500, 0.001000, 'USD',
120, 7200, 172800,
'Coze平台开发环境测试配置,用于开发和调试',
'1. 开发环境专用配置\n2. 较短的超时时间和更高的请求限制\n3. 用于功能测试和调试',
NOW(), NOW(), 0
);
-- 提交事务
COMMIT;