CREATE TABLE IF NOT EXISTS `sys_llm_route` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', `name` VARCHAR(64) NOT NULL COMMENT '路由名称', `base_url` VARCHAR(255) DEFAULT NULL COMMENT 'LLM API Base URL', `api_key` VARCHAR(512) DEFAULT NULL COMMENT 'API Key', `model` VARCHAR(128) DEFAULT NULL COMMENT '模型名', `thinking` TINYINT NOT NULL DEFAULT 0 COMMENT '是否开启深度思考:1是0否', `priority` INT NOT NULL DEFAULT 100 COMMENT '优先级(越小越优先)', `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1启用0禁用', `switch_on_quota` TINYINT NOT NULL DEFAULT 1 COMMENT '额度耗尽时是否切换', `switch_on_error` TINYINT NOT NULL DEFAULT 1 COMMENT '故障时是否切换', `cooldown_seconds` INT NOT NULL DEFAULT 300 COMMENT '故障后冷却秒数', `cooldown_until` DATETIME DEFAULT NULL COMMENT '冷却截止时间', `fail_count` INT NOT NULL DEFAULT 0 COMMENT '总失败次数', `success_count` INT NOT NULL DEFAULT 0 COMMENT '总成功次数', `consecutive_fail_count` INT NOT NULL DEFAULT 0 COMMENT '连续失败次数', `last_error` VARCHAR(512) DEFAULT NULL COMMENT '最近错误摘要', `last_used_time` DATETIME DEFAULT NULL COMMENT '最近成功调用时间', `last_fail_time` DATETIME DEFAULT NULL COMMENT '最近失败时间', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `memo` VARCHAR(255) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), KEY `idx_sys_llm_route_status_priority` (`status`, `priority`), KEY `idx_sys_llm_route_cooldown` (`cooldown_until`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='LLM 路由配置(多API/多模型/多Key自动切换)'; -- 示例数据(按需修改后执行) -- INSERT INTO sys_llm_route(name, base_url, api_key, model, thinking, priority, status, switch_on_quota, switch_on_error, cooldown_seconds) -- VALUES ('主路由-gpt5', 'https://api.xiaomimimo.com/v1', 'sk-xxxx', 'gpt-5', 1, 10, 1, 1, 1, 300); -- INSERT INTO sys_llm_route(name, base_url, api_key, model, thinking, priority, status, switch_on_quota, switch_on_error, cooldown_seconds) -- VALUES ('备路由-mimo', 'https://api.xiaomimimo.com/v1', 'sk-yyyy', 'mimo-v2-flash', 0, 20, 1, 1, 1, 300);