feat:客户agent以及记忆模块功能开发
This commit is contained in:
+68
-11
@@ -1,10 +1,43 @@
|
||||
-- =====================================================================
|
||||
-- 智能公募基金系统 · MySQL 建表脚本(24 张,见开发计划 §3.1)
|
||||
-- 执行:mysql -u<user> -p <database> < sql/schema.sql
|
||||
-- 执行:mysql --default-character-set=utf8mb4 -u<user> -p <database> < sql/schema.sql
|
||||
-- 约定:InnoDB / utf8mb4;采用"逻辑外键"(不建物理 FK,便于 Mock 数据灌入),
|
||||
-- 注释即文档,NL2SQL 以 COMMENT 注入 Schema。
|
||||
-- =====================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- =====================================================================
|
||||
-- 重建模式:执行本脚本前清理已有表
|
||||
-- 注意:以下语句会删除当前数据库中的业务数据,仅用于本地/测试环境重建。
|
||||
-- =====================================================================
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
DROP TABLE IF EXISTS portfolio_benchmark;
|
||||
DROP TABLE IF EXISTS fund_performance;
|
||||
DROP TABLE IF EXISTS memory_unit;
|
||||
DROP TABLE IF EXISTS sys_config;
|
||||
DROP TABLE IF EXISTS sys_message;
|
||||
DROP TABLE IF EXISTS sys_announcement;
|
||||
DROP TABLE IF EXISTS audit_log;
|
||||
DROP TABLE IF EXISTS customer_profile_change_log;
|
||||
DROP TABLE IF EXISTS customer_relation;
|
||||
DROP TABLE IF EXISTS fin_knowledge_meta;
|
||||
DROP TABLE IF EXISTS conversation_archive;
|
||||
DROP TABLE IF EXISTS biz_work_order;
|
||||
DROP TABLE IF EXISTS risk_rule;
|
||||
DROP TABLE IF EXISTS fin_risk_alert;
|
||||
DROP TABLE IF EXISTS ops_question;
|
||||
DROP TABLE IF EXISTS ops_questionnaire;
|
||||
DROP TABLE IF EXISTS fin_risk_assessment;
|
||||
DROP TABLE IF EXISTS fin_holdings;
|
||||
DROP TABLE IF EXISTS fin_transaction;
|
||||
DROP TABLE IF EXISTS trade_order;
|
||||
DROP TABLE IF EXISTS fund_nav_history;
|
||||
DROP TABLE IF EXISTS fin_product;
|
||||
DROP TABLE IF EXISTS fin_customer_profile;
|
||||
DROP TABLE IF EXISTS sys_user;
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- 01 统一用户表(客户 + 员工共用)
|
||||
-- ---------------------------------------------------------------------
|
||||
@@ -260,20 +293,20 @@ CREATE TABLE IF NOT EXISTS biz_work_order (
|
||||
CREATE TABLE IF NOT EXISTS conversation_archive (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
session_id VARCHAR(64) NOT NULL COMMENT '会话ID,同轮共用',
|
||||
customer_id BIGINT UNSIGNED NULL COMMENT '关联客户ID',
|
||||
user_id BIGINT UNSIGNED NOT NULL COMMENT '对话用户',
|
||||
agent_type VARCHAR(32) NOT NULL COMMENT 'customer/advisor/risk/analyst',
|
||||
role VARCHAR(16) NOT NULL COMMENT 'user/assistant/system',
|
||||
content MEDIUMTEXT NULL COMMENT '对话内容',
|
||||
tool_calls JSON NULL COMMENT '工具调用记录 [{"tool":"nl2sql",...}]',
|
||||
message_id VARCHAR(64) NOT NULL COMMENT '消息唯一ID,用于归档幂等',
|
||||
agent_run_id VARCHAR(64) NULL COMMENT 'Agent运行ID,用于调用链路追踪',
|
||||
trace_id VARCHAR(64) NULL COMMENT '请求链路追踪ID',
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
trace_id VARCHAR(64) NULL COMMENT '请求链路追踪ID',
|
||||
KEY idx_session (session_id),
|
||||
KEY idx_user_time (user_id, create_time),
|
||||
KEY idx_agent (agent_type),
|
||||
message_id VARCHAR(64) NULL COMMENT '消息唯一ID,用于归档幂等',
|
||||
agent_run_id VARCHAR(64) NULL COMMENT 'Agent运行ID,用于调用链路追踪',
|
||||
UNIQUE KEY uk_session_message (session_id, message_id),
|
||||
UNIQUE KEY uk_session_message (session_id, message_id),
|
||||
KEY idx_agent_run (agent_run_id)
|
||||
) COMMENT='会话归档表(审计回溯 + Agent 持续学习素材,归档前脱敏)';
|
||||
|
||||
@@ -396,23 +429,47 @@ CREATE TABLE IF NOT EXISTS sys_config (
|
||||
CREATE TABLE IF NOT EXISTS memory_unit (
|
||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '归属客户',
|
||||
session_id VARCHAR(64) NULL COMMENT '产生该记忆的会话ID',
|
||||
agent_run_id VARCHAR(64) NULL COMMENT '产生该记忆的Agent运行ID',
|
||||
memory_type VARCHAR(32) NOT NULL COMMENT '记忆类型:PROFILE_FACT/PROFILE_CANDIDATE/CUSTOMER_PREFERENCE/INVESTMENT_GOAL/SERVICE_FACT/CUSTOMER_RELATION',
|
||||
tag VARCHAR(64) NOT NULL COMMENT '标签名,如 risk_preference',
|
||||
content VARCHAR(512) NOT NULL COMMENT '内容,如 偏好稳健型理财',
|
||||
info_type VARCHAR(8) NOT NULL COMMENT 'FACT 客观事实 / OPINION 主观观点',
|
||||
source VARCHAR(32) NOT NULL COMMENT '风评问卷/行为推断/AI对话提取/用户自述/系统默认',
|
||||
source VARCHAR(32) NOT NULL COMMENT 'user_confirmed/user_stated/ai_inferred/behavior_inference',
|
||||
evidence_ref JSON NULL COMMENT '证据引用列表,如消息ID、交易ID或人工记录ID',
|
||||
source_confidence DECIMAL(5,2) NOT NULL DEFAULT 0.20 COMMENT '来源初始置信度',
|
||||
confidence DECIMAL(5,2) NOT NULL DEFAULT 0.20 COMMENT '当前置信度(动态)',
|
||||
historical_accuracy DECIMAL(5,2) NOT NULL DEFAULT 0.50 COMMENT '历史准确性评分',
|
||||
confidence_version VARCHAR(32) NULL COMMENT '置信度计算版本',
|
||||
confidence_reason VARCHAR(255) NULL COMMENT '本次置信度评估原因',
|
||||
confidence_update_time DATETIME NULL COMMENT '置信度最近计算时间',
|
||||
evidence_count INT NOT NULL DEFAULT 0 COMMENT '证据数',
|
||||
conflict_count INT NOT NULL DEFAULT 0 COMMENT '冲突数',
|
||||
recall_count INT NOT NULL DEFAULT 0 COMMENT '召回数',
|
||||
memory_version INT NOT NULL DEFAULT 1 COMMENT '记忆版本号',
|
||||
update_time DATETIME NULL,
|
||||
last_recall_time DATETIME NULL,
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT 'active/demoted/archived/deleted',
|
||||
valid_until DATE NULL COMMENT '有效期',
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'candidate' COMMENT 'candidate/confirmed/expired/rejected/archived',
|
||||
valid_from DATETIME NULL COMMENT '记忆生效时间',
|
||||
valid_until DATETIME NULL COMMENT '有效期',
|
||||
last_verified_at DATETIME NULL COMMENT '最近确认或验证时间',
|
||||
milvus_id VARCHAR(128) NULL COMMENT 'Milvus 向量记录ID',
|
||||
graph_node_id VARCHAR(128) NULL COMMENT 'Neo4j 节点或关系ID',
|
||||
milvus_sync_status VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'Milvus同步状态:pending/success/failed',
|
||||
neo4j_sync_status VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'Neo4j同步状态:pending/success/failed',
|
||||
sync_retry_count INT NOT NULL DEFAULT 0 COMMENT '三库同步重试次数',
|
||||
last_sync_error VARCHAR(500) NULL COMMENT '最近一次同步错误',
|
||||
next_retry_at DATETIME NULL COMMENT '下次同步重试时间',
|
||||
last_synced_at DATETIME NULL COMMENT '最近一次同步成功时间',
|
||||
KEY idx_customer_status (customer_id, status),
|
||||
KEY idx_tag (tag)
|
||||
) COMMENT='记忆单元表(三层记忆中期主体,向量镜像在 Milvus customer_memory)';
|
||||
KEY idx_customer_type_status (customer_id, memory_type, status),
|
||||
KEY idx_customer_tag_status (customer_id, tag, status),
|
||||
KEY idx_session (session_id),
|
||||
KEY idx_customer_session (customer_id, session_id),
|
||||
KEY idx_milvus (milvus_id),
|
||||
KEY idx_graph (graph_node_id)
|
||||
) COMMENT='客户长期记忆主体表,向量镜像在 Milvus customer_memory,关系镜像在 Neo4j';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- 23 基金业绩指标缓存(定时任务从净值计算)
|
||||
@@ -442,4 +499,4 @@ CREATE TABLE IF NOT EXISTS portfolio_benchmark (
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_risk_level (risk_level)
|
||||
) COMMENT='组合基准配置表(投顾Agent 再平衡参照,运营可调整)';
|
||||
) COMMENT='组合基准配置表(投顾Agent 再平衡参照,运营可调整)';
|
||||
|
||||
Reference in New Issue
Block a user