CREATE TABLE IF NOT EXISTS `sys_llm_call_log` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `trace_id` VARCHAR(64) NOT NULL COMMENT '一次调用链路ID',
  `scene` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '调用场景',
  `stream` TINYINT NOT NULL DEFAULT 0 COMMENT '是否流式:1是0否',
  `attempt_no` INT NOT NULL DEFAULT 1 COMMENT '第几次路由尝试',
  `route_id` BIGINT DEFAULT NULL COMMENT '路由ID',
  `route_name` VARCHAR(128) DEFAULT NULL COMMENT '路由名称',
  `base_url` VARCHAR(255) DEFAULT NULL COMMENT '请求API地址',
  `model` VARCHAR(128) DEFAULT NULL COMMENT '模型名',
  `success` TINYINT NOT NULL DEFAULT 0 COMMENT '是否成功:1是0否',
  `http_status` INT DEFAULT NULL COMMENT 'HTTP状态码',
  `latency_ms` BIGINT DEFAULT NULL COMMENT '耗时ms',
  `switch_mode` VARCHAR(32) DEFAULT NULL COMMENT '切换触发类型:none/quota/error',
  `request_content` MEDIUMTEXT COMMENT '请求内容(截断)',
  `response_content` MEDIUMTEXT COMMENT '响应内容(截断)',
  `error_type` VARCHAR(128) DEFAULT NULL COMMENT '异常类型',
  `error_message` VARCHAR(1024) DEFAULT NULL COMMENT '异常信息',
  `extra` VARCHAR(512) DEFAULT NULL COMMENT '扩展信息',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_sys_llm_call_log_trace` (`trace_id`),
  KEY `idx_sys_llm_call_log_scene_time` (`scene`, `create_time`),
  KEY `idx_sys_llm_call_log_route_time` (`route_id`, `create_time`),
  KEY `idx_sys_llm_call_log_success_time` (`success`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='LLM调用日志';
