From d5884d0974d17d96225a5d80e432de33a5ee6552 Mon Sep 17 00:00:00 2001 From: zhou zhou <3272660260@qq.com> Date: 星期四, 19 三月 2026 13:10:21 +0800 Subject: [PATCH] #AI.日志与审计 --- version/db/ai_feature.sql | 61 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 2 deletions(-) diff --git a/version/db/ai_feature.sql b/version/db/ai_feature.sql index 8ca9631..ab0819b 100644 --- a/version/db/ai_feature.sql +++ b/version/db/ai_feature.sql @@ -113,6 +113,59 @@ KEY `idx_sys_ai_chat_message_session_seq` (`session_id`,`seq_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 瀵硅瘽娑堟伅'; +CREATE TABLE IF NOT EXISTS `sys_ai_call_log` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `request_id` varchar(128) NOT NULL COMMENT '璇锋眰ID', + `session_id` bigint(20) DEFAULT NULL COMMENT '浼氳瘽ID', + `prompt_code` varchar(128) DEFAULT NULL COMMENT 'Prompt缂栫爜', + `prompt_name` varchar(255) DEFAULT NULL COMMENT 'Prompt鍚嶇О', + `model` varchar(255) DEFAULT NULL COMMENT '妯″瀷', + `user_id` bigint(20) DEFAULT NULL COMMENT '鐢ㄦ埛ID', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '绉熸埛ID', + `status` varchar(32) DEFAULT NULL COMMENT '鐘舵��', + `error_category` varchar(64) DEFAULT NULL COMMENT '閿欒鍒嗙被', + `error_stage` varchar(64) DEFAULT NULL COMMENT '閿欒闃舵', + `error_message` varchar(1000) DEFAULT NULL COMMENT '閿欒淇℃伅', + `configured_mcp_count` int(11) DEFAULT NULL COMMENT '閰嶇疆MCP鏁伴噺', + `mounted_mcp_count` int(11) DEFAULT NULL COMMENT '鎸傝浇MCP鏁伴噺', + `mounted_mcp_names` varchar(1000) DEFAULT NULL COMMENT '鎸傝浇MCP鍚嶇О', + `tool_call_count` int(11) DEFAULT NULL COMMENT '宸ュ叿璋冪敤鎬绘暟', + `tool_success_count` int(11) DEFAULT NULL COMMENT '宸ュ叿鎴愬姛鏁�', + `tool_failure_count` int(11) DEFAULT NULL COMMENT '宸ュ叿澶辫触鏁�', + `elapsed_ms` bigint(20) DEFAULT NULL COMMENT '鎬昏�楁椂', + `first_token_latency_ms` bigint(20) DEFAULT NULL COMMENT '棣栧寘鑰楁椂', + `prompt_tokens` int(11) DEFAULT NULL COMMENT 'Prompt Tokens', + `completion_tokens` int(11) DEFAULT NULL COMMENT 'Completion Tokens', + `total_tokens` int(11) DEFAULT NULL COMMENT 'Total Tokens', + `deleted` int(11) DEFAULT '0' COMMENT '鍒犻櫎鏍囪', + `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿', + `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿', + PRIMARY KEY (`id`), + KEY `idx_sys_ai_call_log_tenant_create` (`tenant_id`,`create_time`), + KEY `idx_sys_ai_call_log_request` (`request_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 璋冪敤鏃ュ織'; + +CREATE TABLE IF NOT EXISTS `sys_ai_mcp_call_log` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `call_log_id` bigint(20) NOT NULL COMMENT 'AI璋冪敤鏃ュ織ID', + `request_id` varchar(128) DEFAULT NULL COMMENT '璇锋眰ID', + `session_id` bigint(20) DEFAULT NULL COMMENT '浼氳瘽ID', + `tool_call_id` varchar(128) DEFAULT NULL COMMENT '宸ュ叿璋冪敤ID', + `mount_name` varchar(255) DEFAULT NULL COMMENT '鎸傝浇鍚嶇О', + `tool_name` varchar(255) DEFAULT NULL COMMENT '宸ュ叿鍚嶇О', + `status` varchar(32) DEFAULT NULL COMMENT '鐘舵��', + `input_summary` text COMMENT '杈撳叆鎽樿', + `output_summary` text COMMENT '杈撳嚭鎽樿', + `error_message` varchar(1000) DEFAULT NULL COMMENT '閿欒淇℃伅', + `duration_ms` bigint(20) DEFAULT NULL COMMENT '鑰楁椂', + `user_id` bigint(20) DEFAULT NULL COMMENT '鐢ㄦ埛ID', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '绉熸埛ID', + `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿', + PRIMARY KEY (`id`), + KEY `idx_sys_ai_mcp_call_log_call` (`call_log_id`,`create_time`), + KEY `idx_sys_ai_mcp_call_log_tenant` (`tenant_id`,`create_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI MCP 璋冪敤鏃ュ織'; + SET @ai_param_validate_status_exists := ( SELECT COUNT(1) FROM `information_schema`.`COLUMNS` @@ -394,7 +447,9 @@ (5312, 'Query AI MCP Mount', 5311, NULL, '1,5311', NULL, NULL, NULL, NULL, NULL, 1, 'system:aiMcpMount:list', NULL, 0, NULL, 1, 1, 0, '2026-03-18 19:00:00', 2, '2026-03-18 19:00:00', 2, NULL), (5313, 'Create AI MCP Mount', 5311, NULL, '1,5311', NULL, NULL, NULL, NULL, NULL, 1, 'system:aiMcpMount:save', NULL, 1, NULL, 1, 1, 0, '2026-03-18 19:00:00', 2, '2026-03-18 19:00:00', 2, NULL), (5314, 'Update AI MCP Mount', 5311, NULL, '1,5311', NULL, NULL, NULL, NULL, NULL, 1, 'system:aiMcpMount:update', NULL, 2, NULL, 1, 1, 0, '2026-03-18 19:00:00', 2, '2026-03-18 19:00:00', 2, NULL), -(5315, 'Delete AI MCP Mount', 5311, NULL, '1,5311', NULL, NULL, NULL, NULL, NULL, 1, 'system:aiMcpMount:remove', NULL, 3, NULL, 1, 1, 0, '2026-03-18 19:00:00', 2, '2026-03-18 19:00:00', 2, NULL) +(5315, 'Delete AI MCP Mount', 5311, NULL, '1,5311', NULL, NULL, NULL, NULL, NULL, 1, 'system:aiMcpMount:remove', NULL, 3, NULL, 1, 1, 0, '2026-03-18 19:00:00', 2, '2026-03-18 19:00:00', 2, NULL), +(5316, 'menu.aiCallLog', 1, 'menu.system', '1', 'menu.system', '/system/aiCallLog', 'aiCallLog', NULL, NULL, 0, NULL, 'QueryStats', 14, NULL, 1, 1, 0, '2026-03-19 13:00:00', 2, '2026-03-19 13:00:00', 2, NULL), +(5317, 'Query AI Call Log', 5316, NULL, '1,5316', NULL, NULL, NULL, NULL, NULL, 1, 'system:aiCallLog:list', NULL, 0, NULL, 1, 1, 0, '2026-03-19 13:00:00', 2, '2026-03-19 13:00:00', 2, NULL) ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `parent_id` = VALUES(`parent_id`), @@ -428,7 +483,9 @@ (5312, 1, 5312), (5313, 1, 5313), (5314, 1, 5314), -(5315, 1, 5315) +(5315, 1, 5315), +(5316, 1, 5316), +(5317, 1, 5317) ON DUPLICATE KEY UPDATE `role_id` = VALUES(`role_id`), `menu_id` = VALUES(`menu_id`); -- Gitblit v1.9.1