154 lines
5.9 KiB
SQL
154 lines
5.9 KiB
SQL
-- 投资顾问 Agent 专用表(Sprint1~3 · 不含共用底座 01 已建表)
|
|||
|
|
-- 执行:mysql jinrong_agent < scripts/agent/migrate-advisor-agent-sprint1-3.sql
|
||
|
|
|
||
|
|
USE jinrong_agent;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS compliance_rule (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
rule_code VARCHAR(32) NOT NULL UNIQUE,
|
||
|
|
rule_type VARCHAR(16) NOT NULL,
|
||
|
|
pattern VARCHAR(1024) NOT NULL,
|
||
|
|
severity VARCHAR(8) NOT NULL,
|
||
|
|
category VARCHAR(32) NOT NULL,
|
||
|
|
suggestion VARCHAR(2048) NULL,
|
||
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||
|
|
priority INT NOT NULL DEFAULT 100,
|
||
|
|
created_by VARCHAR(64) NOT NULL,
|
||
|
|
updated_by VARCHAR(64) NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_type_active (rule_type, is_active),
|
||
|
|
KEY idx_severity (severity),
|
||
|
|
KEY idx_category (category)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS compliance_check_log (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
check_id VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
trace_id VARCHAR(64) NOT NULL,
|
||
|
|
advisor_id VARCHAR(64) NOT NULL,
|
||
|
|
scene VARCHAR(32) NULL,
|
||
|
|
input_text TEXT NOT NULL,
|
||
|
|
input_hash VARCHAR(64) NULL,
|
||
|
|
risk_level VARCHAR(8) NOT NULL,
|
||
|
|
hit_count INT NOT NULL DEFAULT 0,
|
||
|
|
hit_details JSON NULL,
|
||
|
|
ai_analysis JSON NULL,
|
||
|
|
ai_degraded TINYINT(1) NOT NULL DEFAULT 0,
|
||
|
|
latency_ms INT NULL,
|
||
|
|
customer_risk_level VARCHAR(4) NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_trace (trace_id),
|
||
|
|
KEY idx_advisor_time (advisor_id, created_at),
|
||
|
|
KEY idx_risk_time (risk_level, created_at),
|
||
|
|
KEY idx_scene_time (scene, created_at)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS copy_track_log (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
track_id VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
trace_id VARCHAR(64) NOT NULL,
|
||
|
|
advisor_id VARCHAR(64) NOT NULL,
|
||
|
|
content_type VARCHAR(32) NOT NULL,
|
||
|
|
content_summary VARCHAR(512) NOT NULL,
|
||
|
|
content_hash VARCHAR(64) NOT NULL,
|
||
|
|
source_type VARCHAR(32) NOT NULL,
|
||
|
|
source_id VARCHAR(64) NULL,
|
||
|
|
compliance_check_id VARCHAR(64) NULL,
|
||
|
|
compliance_risk_level VARCHAR(8) NOT NULL,
|
||
|
|
warn_confirmed TINYINT(1) NOT NULL DEFAULT 0,
|
||
|
|
export_format VARCHAR(8) NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_trace (trace_id),
|
||
|
|
KEY idx_advisor (advisor_id)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS script_template (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
scene VARCHAR(32) NOT NULL,
|
||
|
|
customer_type VARCHAR(32) NULL,
|
||
|
|
title VARCHAR(256) NOT NULL,
|
||
|
|
content TEXT NOT NULL,
|
||
|
|
tags JSON NULL,
|
||
|
|
embedding_id VARCHAR(64) NULL,
|
||
|
|
is_approved TINYINT(1) NOT NULL DEFAULT 0,
|
||
|
|
approved_by VARCHAR(64) NULL,
|
||
|
|
approved_at DATETIME NULL,
|
||
|
|
version INT NOT NULL DEFAULT 1,
|
||
|
|
usage_count INT NOT NULL DEFAULT 0,
|
||
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||
|
|
created_by VARCHAR(64) NOT NULL,
|
||
|
|
updated_by VARCHAR(64) NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_scene (scene),
|
||
|
|
KEY idx_approved (is_approved)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS template_use_log (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
use_id VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
trace_id VARCHAR(64) NOT NULL,
|
||
|
|
template_id BIGINT UNSIGNED NOT NULL,
|
||
|
|
advisor_id VARCHAR(64) NOT NULL,
|
||
|
|
is_modified TINYINT(1) NOT NULL DEFAULT 0,
|
||
|
|
original_content TEXT NULL,
|
||
|
|
modified_content TEXT NULL,
|
||
|
|
content_diff TEXT NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_template (template_id),
|
||
|
|
KEY idx_trace (trace_id)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS market_alert (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
alert_id VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
trace_id VARCHAR(64) NULL,
|
||
|
|
fund_code VARCHAR(16) NOT NULL,
|
||
|
|
fund_name VARCHAR(128) NULL,
|
||
|
|
alert_type VARCHAR(16) NOT NULL,
|
||
|
|
threshold_hit DECIMAL(8,4) NOT NULL,
|
||
|
|
nav DECIMAL(10,4) NULL,
|
||
|
|
nav_date DATE NOT NULL,
|
||
|
|
category VARCHAR(32) NULL,
|
||
|
|
generated_text TEXT NULL,
|
||
|
|
compliance_result JSON NULL,
|
||
|
|
generation_latency_ms INT NULL,
|
||
|
|
status VARCHAR(16) NOT NULL DEFAULT 'pending',
|
||
|
|
advisor_id VARCHAR(64) NULL,
|
||
|
|
advisor_feedback VARCHAR(16) NULL,
|
||
|
|
edited_text TEXT NULL,
|
||
|
|
feedback_at DATETIME NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_fund (fund_code),
|
||
|
|
KEY idx_status (status),
|
||
|
|
KEY idx_nav_date (nav_date)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS kyc_session (
|
||
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
session_id VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
trace_id VARCHAR(64) NOT NULL,
|
||
|
|
advisor_id VARCHAR(64) NOT NULL,
|
||
|
|
customer_id VARCHAR(64) NOT NULL,
|
||
|
|
session_type VARCHAR(16) NOT NULL,
|
||
|
|
status VARCHAR(16) NOT NULL DEFAULT 'in_progress',
|
||
|
|
current_node VARCHAR(32) NOT NULL DEFAULT 'basic_info',
|
||
|
|
collected_fields JSON NULL,
|
||
|
|
missing_fields JSON NULL,
|
||
|
|
progress_pct INT NOT NULL DEFAULT 0,
|
||
|
|
dialog_turns INT NOT NULL DEFAULT 0,
|
||
|
|
started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
completed_at DATETIME NULL,
|
||
|
|
duration_seconds INT NULL,
|
||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
|
|
KEY idx_advisor (advisor_id),
|
||
|
|
KEY idx_customer (customer_id),
|
||
|
|
KEY idx_status (status)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
|
|
||
|
|
-- agent_message 序号唯一(共用底座已建表时执行)
|
||
|
|
-- ALTER TABLE agent_message ADD UNIQUE KEY uk_agent_message_session_seq (session_id, seq_no);
|