agent_9art/init.sql
jqb 6a13b47328 feat: 新增运营端客户总结查询功能,优化现有总结页面
1.  新增客户联系方式查询客户每日总结的完整功能,包括前端页面、后端接口和数据库字段支持
2.  优化原有每日总结页面,新增绑定客户联系方式功能和无总结时的聊天记录兜底展示
3.  修复消息查询时的to_user数组匹配问题,新增客户微信号存储字段
4.  补充批量修复客户昵称的脚本和部署文档更新
2026-08-04 09:49:10 +08:00

826 lines
59 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 第九联盟AI坐席辅助系统 - 数据库初始化脚本
-- MySQL 5.7适配版
-- ============================================================
SET NAMES utf8mb4;
SET CHARACTER SET utf8mb4;
-- 创建数据库
CREATE DATABASE IF NOT EXISTS `ai_assistant` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `ai_assistant`;
-- ============================================================
-- 企微会话存档消息表 (archive_messages)
-- ============================================================
CREATE TABLE IF NOT EXISTS `archive_messages` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`msgid` VARCHAR(255) NOT NULL COMMENT '企微消息唯一ID',
`seq` BIGINT(20) NOT NULL COMMENT '存档序列号,用于增量拉取',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`action` VARCHAR(32) DEFAULT 'send' COMMENT 'send/recall/agree/disagree',
`from_user` VARCHAR(128) NOT NULL COMMENT '发送者userid',
`from_role` VARCHAR(32) NOT NULL COMMENT '发送者角色: INTERNAL-企业内部成员 EXTERNAL-外部联系人 SYSTEM-系统',
`to_user` VARCHAR(128) COMMENT '接收者userid(单聊)',
`tolist` TEXT COMMENT '接收者列表(群聊),JSON数组字符串',
`roomid` VARCHAR(255) COMMENT '群聊ID(群聊时有值)',
`msgtype` VARCHAR(64) NOT NULL COMMENT 'text/image/voice/video/file/link/location/weapp/chatrecord/voip',
`msgtime` BIGINT(20) NOT NULL COMMENT '消息发送时间,UTC毫秒时间戳',
`content` LONGTEXT COMMENT '文本消息内容(长文本使用LONGTEXT)',
`media_data` TEXT COMMENT '媒体消息元数据(sdkfileid/文件大小/时长等),JSON字符串',
`session_id` VARCHAR(128) COMMENT '关联的会话ID(业务生成)',
`decrypt_status` TINYINT DEFAULT 1 COMMENT '解密状态: 1成功 2失败',
`decrypt_error` VARCHAR(512) COMMENT '解密失败原因',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_msgid_corp` (`msgid`, `corp_id`) COMMENT '消息ID+企业ID唯一',
INDEX `idx_seq` (`seq`) COMMENT '序列号索引,用于增量拉取',
INDEX `idx_session_id` (`session_id`) COMMENT '会话ID索引',
INDEX `idx_from_user_msgtime` (`from_user`, `msgtime`) COMMENT '发送者+时间索引',
INDEX `idx_to_user_msgtime` (`to_user`, `msgtime`) COMMENT '接收者+时间索引',
INDEX `idx_roomid_msgtime` (`roomid`, `msgtime`) COMMENT '群聊ID+时间索引',
INDEX `idx_msgtime` (`msgtime`) COMMENT '消息时间索引',
INDEX `idx_corp_msgtype` (`corp_id`, `msgtype`, `msgtime`) COMMENT '企业+消息类型+时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企微会话存档消息表';
-- ============================================================
-- 腾讯云 COS 配置表 (cos_config)
-- ============================================================
CREATE TABLE IF NOT EXISTS `cos_config` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`secret_id` VARCHAR(255) NOT NULL COMMENT '腾讯云 SecretId',
`secret_key` VARCHAR(255) NOT NULL COMMENT '腾讯云 SecretKey',
`bucket` VARCHAR(255) NOT NULL COMMENT '存储桶名称',
`region` VARCHAR(64) NOT NULL COMMENT '地域,如 ap-shanghai',
`path_prefix` VARCHAR(255) DEFAULT 'archive/media/' COMMENT 'COS 路径前缀',
`domain` VARCHAR(255) DEFAULT NULL COMMENT '自定义访问域名(可选)',
`enabled` TINYINT(1) DEFAULT 0 COMMENT '是否启用:0-停用 1-启用',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX `idx_enabled` (`enabled`) COMMENT '启用状态索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='腾讯云 COS 配置表';
-- ============================================================
-- 会话存档媒体文件 COS 映射表 (archive_media_files)
-- ============================================================
CREATE TABLE IF NOT EXISTS `archive_media_files` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`msg_id` VARCHAR(255) NOT NULL COMMENT '企微消息 msgid',
`archive_message_id` BIGINT(20) NOT NULL COMMENT 'archive_messages.id',
`sdkfileid` VARCHAR(512) DEFAULT NULL COMMENT '企微媒体文件 sdkfileid',
`cos_url` VARCHAR(1024) NOT NULL COMMENT 'COS 文件访问 URL',
`file_size` BIGINT(20) DEFAULT 0 COMMENT '文件大小(字节)',
`file_type` VARCHAR(32) DEFAULT NULL COMMENT '文件类型:image/voice/video/file',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:1-有效 0-无效',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_archive_msg_id` (`archive_message_id`) COMMENT '消息ID唯一',
UNIQUE KEY `uk_msg_id` (`msg_id`) COMMENT '企微消息ID唯一',
INDEX `idx_status` (`status`) COMMENT '状态索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会话存档媒体文件 COS 映射表';
-- ============================================================
-- 会话表 (conversations)
-- ============================================================
CREATE TABLE IF NOT EXISTS `conversations` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`session_id` VARCHAR(128) NOT NULL COMMENT '会话唯一ID(业务生成)',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`customer_id` VARCHAR(128) NOT NULL COMMENT '学员(外部联系人)userid',
`customer_name` VARCHAR(64) COMMENT '学员昵称',
`staff_id` VARCHAR(128) NOT NULL COMMENT '坐席(企业成员)userid',
`staff_name` VARCHAR(64) COMMENT '坐席姓名',
`room_id` VARCHAR(128) COMMENT '群聊ID(群聊时有值)',
`status` VARCHAR(32) DEFAULT 'ACTIVE' COMMENT '会话状态: ACTIVE-活跃 IDLE-空闲 CLOSED-关闭 ARCHIVED-归档',
`current_stage` VARCHAR(32) DEFAULT '开场白' COMMENT '当前对话阶段',
`stage_confidence` DECIMAL(4,3) DEFAULT 0.000 COMMENT '阶段判断置信度',
`round_count` INT(11) DEFAULT 0 COMMENT '对话轮次',
`intent_count` INT(11) DEFAULT 0 COMMENT '意图识别次数',
`last_msg_id` VARCHAR(255) COMMENT '最后一条消息ID',
`last_msg_time` TIMESTAMP NULL COMMENT '最后消息时间',
`last_msg_content` VARCHAR(512) COMMENT '最后消息内容摘要',
`start_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '会话开始时间',
`end_time` TIMESTAMP NULL COMMENT '会话结束时间',
`idle_duration` INT(11) DEFAULT 0 COMMENT '空闲时长(分钟)',
`context_summary` TEXT COMMENT '对话摘要(LLM生成)',
`key_events` TEXT COMMENT '关键事件列表,JSON字符串',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_session_id` (`session_id`) COMMENT '会话ID唯一',
INDEX `idx_corp_staff` (`corp_id`, `staff_id`, `status`) COMMENT '企业+坐席+状态',
INDEX `idx_corp_customer` (`corp_id`, `customer_id`, `status`) COMMENT '企业+学员+状态',
INDEX `idx_status_time` (`status`, `last_msg_time`) COMMENT '状态+时间',
INDEX `idx_created_at` (`created_at`) COMMENT '创建时间索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会话表';
-- ============================================================
-- 对话轮次表 (conversation_turns)
-- ============================================================
CREATE TABLE IF NOT EXISTS `conversation_turns` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`turn_id` VARCHAR(128) NOT NULL COMMENT '轮次ID',
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
`turn_number` INT(11) NOT NULL COMMENT '轮次序号',
`student_msg_id` VARCHAR(255) COMMENT '学员消息ID',
`student_content` TEXT COMMENT '学员消息内容',
`seat_msg_id` VARCHAR(255) COMMENT '坐席回复消息ID',
`seat_content` TEXT COMMENT '坐席回复内容',
`turn_type` VARCHAR(32) DEFAULT 'QUERY' COMMENT '轮次类型: OPEN-开场 QUERY-咨询 OBJECTION-异议 INTEREST-意向 SILENCE-沉默 FOLLOWUP-跟进 CLOSE-收尾',
`primary_intent` VARCHAR(32) COMMENT '主意图编码',
`intent_confidence` DECIMAL(4,3) COMMENT '意图置信度',
`student_emotion` VARCHAR(32) DEFAULT 'NEUTRAL' COMMENT '学员情绪: POSITIVE-积极 NEUTRAL-中性 NEGATIVE-消极 ANXIOUS-焦虑 EXCITED-兴奋',
`key_topics` TEXT COMMENT '涉及主题列表,JSON字符串',
`slot_changes` TEXT COMMENT '槽位变化,JSON字符串',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UNIQUE KEY `uk_turn_id` (`turn_id`) COMMENT '轮次ID唯一',
INDEX `idx_session_turn` (`session_id`, `turn_number`) COMMENT '会话+轮次号',
INDEX `idx_session_time` (`session_id`, `created_at`) COMMENT '会话+时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对话轮次表';
-- ============================================================
-- 意图分类表 (intent_categories)
-- ============================================================
CREATE TABLE IF NOT EXISTS `intent_categories` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`code` VARCHAR(32) NOT NULL COMMENT '意图编码,如INT-COURSE-01',
`name` VARCHAR(64) NOT NULL COMMENT '意图名称',
`domain` VARCHAR(32) NOT NULL COMMENT '所属领域',
`description` VARCHAR(256) COMMENT '意图说明',
`priority` VARCHAR(8) DEFAULT 'P2' COMMENT '优先级: P1-高 P2-中 P3-低',
`trigger_keywords` TEXT COMMENT '触发关键词列表,JSON数组字符串',
`sample_expressions` TEXT COMMENT '典型表达示例,JSON数组字符串',
`status` TINYINT DEFAULT 1 COMMENT '状态: 1启用 0停用',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_code` (`code`) COMMENT '意图编码唯一',
INDEX `idx_domain_priority` (`domain`, `priority`) COMMENT '领域+优先级'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='意图分类表';
-- ============================================================
-- 意图识别记录表 (intent_recognitions)
-- ============================================================
CREATE TABLE IF NOT EXISTS `intent_recognitions` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
`turn_id` VARCHAR(128) COMMENT '轮次ID',
`msg_id` VARCHAR(255) NOT NULL COMMENT '消息ID',
`customer_id` VARCHAR(128) NOT NULL COMMENT '学员ID',
`staff_id` VARCHAR(128) NOT NULL COMMENT '坐席ID',
`message_content` TEXT COMMENT '消息内容摘要',
`primary_intent_code` VARCHAR(32) NOT NULL COMMENT '主意图编码',
`primary_intent_confidence` DECIMAL(4,3) COMMENT '主意图置信度',
`secondary_intents` TEXT COMMENT '辅意图列表,JSON字符串',
`sentiment` VARCHAR(32) DEFAULT 'NEUTRAL' COMMENT '情感: POSITIVE-积极 NEUTRAL-中性 NEGATIVE-消极',
`sentiment_confidence` DECIMAL(4,3) COMMENT '情感置信度',
`recognition_method` VARCHAR(32) DEFAULT 'HYBRID' COMMENT '识别方法: RULE-规则 LLM-大模型 HYBRID-混合',
`llm_model` VARCHAR(64) COMMENT '使用的LLM模型',
`prompt_tokens` INT(11) COMMENT 'Prompt Token数',
`completion_tokens` INT(11) COMMENT 'Completion Token数',
`elapsed_ms` INT(11) COMMENT '识别耗时(毫秒)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX `idx_session_msg` (`session_id`, `msg_id`) COMMENT '会话+消息',
INDEX `idx_customer_time` (`customer_id`, `created_at`) COMMENT '学员+时间',
INDEX `idx_intent_code` (`primary_intent_code`, `created_at`) COMMENT '意图编码+时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='意图识别记录表';
-- ============================================================
-- 学员画像表 (customer_profiles)
-- ============================================================
CREATE TABLE IF NOT EXISTS `customer_profiles` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`customer_id` VARCHAR(128) NOT NULL COMMENT '学员userid',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`student_type` VARCHAR(32) COMMENT '学员类型: 在校大学生/转行人员/在职提升/高中毕业生/家长代询',
`student_type_confidence` DECIMAL(4,3) COMMENT '学员类型置信度',
`skill_level` VARCHAR(32) COMMENT '基础水平: 零基础/有美术基础/相关专业/有从业经验',
`skill_level_confidence` DECIMAL(4,3) COMMENT '基础水平置信度',
`intent_level` VARCHAR(16) DEFAULT '低' COMMENT '意向度等级: 高/中/低/无意向',
`intent_score` DECIMAL(6,2) DEFAULT 0.00 COMMENT '意向度分数',
`concern_focus` VARCHAR(32) COMMENT '关注重点: 价格敏感型/就业导向型/师资看重型/时间灵活型/品牌信任型',
`concern_focus_confidence` DECIMAL(4,3) COMMENT '关注重点置信度',
`decision_stage` VARCHAR(32) DEFAULT '信息了解' COMMENT '决策阶段: 信息了解/方案比较/购买决策/报名成交',
`decision_stage_confidence` DECIMAL(4,3) COMMENT '决策阶段置信度',
`interested_courses` TEXT COMMENT '意向课程列表,JSON字符串',
`budget_hint` VARCHAR(64) COMMENT '预算暗示',
`preferred_city` VARCHAR(32) COMMENT '意向城市',
`age` INT(11) COMMENT '年龄',
`education` VARCHAR(32) COMMENT '学历',
`current_occupation` VARCHAR(64) COMMENT '当前职业',
`slot_data` TEXT COMMENT '完整槽位数据,JSON字符串',
`conversation_count` INT(11) DEFAULT 0 COMMENT '对话次数',
`last_conversation_time` TIMESTAMP NULL COMMENT '上次对话时间',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_customer_corp` (`customer_id`, `corp_id`) COMMENT '学员+企业唯一',
INDEX `idx_intent_score` (`intent_score`) COMMENT '意向度分数索引',
INDEX `idx_decision_stage` (`decision_stage`) COMMENT '决策阶段索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员画像表';
-- ============================================================
-- 话术库表 (utterances)
-- ============================================================
CREATE TABLE IF NOT EXISTS `utterances` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`utterance_id` VARCHAR(64) NOT NULL COMMENT '话术唯一ID(业务编码)',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`title` VARCHAR(128) NOT NULL COMMENT '话术标题',
`content` TEXT NOT NULL COMMENT '话术内容(富文本)',
`content_text` TEXT COMMENT '纯文本内容(用于全文检索)',
`version` INT(11) DEFAULT 1 COMMENT '版本号',
`status` VARCHAR(32) DEFAULT 'DRAFT' COMMENT '状态: DRAFT-草稿 ACTIVE-启用 INACTIVE-停用 DEPRECATED-废弃',
`priority` INT(11) DEFAULT 5 COMMENT '优先级(1-10,越小越优先)',
`stage_tags` TEXT COMMENT '适用阶段标签,JSON数组字符串',
`intent_tags` TEXT COMMENT '匹配意图标签,JSON数组字符串',
`profile_tags` TEXT COMMENT '适用画像标签,JSON数组字符串',
`course_type_tags` TEXT COMMENT '适用课程标签,JSON数组字符串',
`emotion_tags` TEXT COMMENT '情感标签,JSON数组字符串',
`topic_tags` TEXT COMMENT '主题标签,JSON数组字符串',
`used_count` INT(11) DEFAULT 0 COMMENT '使用次数',
`selected_count` INT(11) DEFAULT 0 COMMENT '选中次数',
`positive_feedback` INT(11) DEFAULT 0 COMMENT '正面反馈数',
`negative_feedback` INT(11) DEFAULT 0 COMMENT '负面反馈数',
`conversion_count` INT(11) DEFAULT 0 COMMENT '转化次数',
`success_rate` DECIMAL(5,4) DEFAULT 0.0000 COMMENT '成功率(0-1)',
`avg_response_time_ms` INT(11) COMMENT '平均响应时间(毫秒)',
`has_vector` TINYINT DEFAULT 0 COMMENT '是否已生成向量: 0否 1是',
`vector_updated_at` TIMESTAMP NULL COMMENT '向量更新时间',
`trigger_keywords` TEXT COMMENT '触发关键词,JSON字符串',
`variables` TEXT COMMENT '变量定义,JSON字符串',
`created_by` VARCHAR(64) COMMENT '创建人',
`reviewed_by` VARCHAR(64) COMMENT '审核人',
`source` VARCHAR(32) DEFAULT 'MANUAL' COMMENT '来源: MANUAL-人工录入 IMPORTED-导入 LLM_GENERATED-AI生成',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_utterance_id` (`utterance_id`) COMMENT '话术ID唯一',
INDEX `idx_corp_status` (`corp_id`, `status`) COMMENT '企业+状态',
INDEX `idx_success_rate` (`success_rate`) COMMENT '成功率索引',
INDEX `idx_used_count` (`used_count`) COMMENT '使用次数索引',
FULLTEXT KEY `ft_content` (`content_text`) COMMENT '全文检索索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='话术库表';
-- ============================================================
-- 话术分类表 (utterance_categories)
-- ============================================================
CREATE TABLE IF NOT EXISTS `utterance_categories` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`code` VARCHAR(32) NOT NULL COMMENT '分类编码',
`name` VARCHAR(64) NOT NULL COMMENT '分类名称',
`parent_code` VARCHAR(32) DEFAULT 'ROOT' COMMENT '父级编码',
`sort_order` INT(11) DEFAULT 0 COMMENT '排序号',
`color` VARCHAR(16) DEFAULT '#1890ff' COMMENT '显示颜色',
`description` VARCHAR(256) COMMENT '分类说明',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UNIQUE KEY `uk_code` (`code`) COMMENT '分类编码唯一'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='话术分类表';
-- ============================================================
-- 话术效果表 (utterance_performance)
-- ============================================================
CREATE TABLE IF NOT EXISTS `utterance_performance` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`utterance_id` VARCHAR(64) NOT NULL COMMENT '话术ID',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`hour_window` VARCHAR(13) NOT NULL COMMENT '时间窗口,格式: 2025-01-15-14',
`show_count` INT(11) DEFAULT 0 COMMENT '展示次数',
`click_count` INT(11) DEFAULT 0 COMMENT '点击次数',
`send_count` INT(11) DEFAULT 0 COMMENT '发送次数',
`positive_count` INT(11) DEFAULT 0 COMMENT '正面反馈数',
`negative_count` INT(11) DEFAULT 0 COMMENT '负面反馈数',
`ignore_count` INT(11) DEFAULT 0 COMMENT '忽略次数',
`conversion_count` INT(11) DEFAULT 0 COMMENT '转化次数',
`ctr` DECIMAL(5,4) COMMENT '点击率',
`conversion_rate` DECIMAL(5,4) COMMENT '转化率',
`score` DECIMAL(6,4) COMMENT '综合评分(EWA算法)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UNIQUE KEY `uk_utterance_hour` (`utterance_id`, `hour_window`) COMMENT '话术+时间窗口唯一',
INDEX `idx_corp_hour` (`corp_id`, `hour_window`) COMMENT '企业+时间窗口'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='话术效果表';
-- ============================================================
-- 推荐记录表 (recommendations)
-- ============================================================
CREATE TABLE IF NOT EXISTS `recommendations` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`recommendation_id` VARCHAR(128) NOT NULL COMMENT '推荐记录ID',
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
`turn_id` VARCHAR(128) COMMENT '轮次ID',
`customer_id` VARCHAR(128) NOT NULL COMMENT '学员ID',
`staff_id` VARCHAR(128) NOT NULL COMMENT '坐席ID',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`primary_intent` VARCHAR(32) COMMENT '主意图编码',
`secondary_intents` TEXT COMMENT '辅意图列表,JSON字符串',
`student_type` VARCHAR(32) COMMENT '学员类型',
`current_stage` VARCHAR(32) COMMENT '当前阶段',
`student_message` VARCHAR(512) COMMENT '学员消息',
`recommended_count` INT(11) DEFAULT 0 COMMENT '推荐条数',
`recall_sources` TEXT COMMENT '召回来源统计,JSON字符串',
`generation_mode` VARCHAR(32) DEFAULT 'KB_ONLY' COMMENT '生成模式: KB_ONLY-话术库 KB_LLM_MIX-混合 LLM_ONLY-纯AI',
`elapsed_ms` INT(11) COMMENT '推荐耗时(毫秒)',
`staff_action` VARCHAR(32) DEFAULT 'NOT_SEEN' COMMENT '坐席操作: SENT-发送 EDITED-编辑后发送 IGNORED-忽略 NOT_SEEN-未查看',
`feedback` VARCHAR(32) DEFAULT 'NONE' COMMENT '反馈: POSITIVE-正面 NEGATIVE-负面 NONE-无',
`feedback_reason` VARCHAR(128) COMMENT '反馈原因',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`action_time` TIMESTAMP NULL COMMENT '操作时间',
UNIQUE KEY `uk_rec_id` (`recommendation_id`) COMMENT '推荐ID唯一',
INDEX `idx_session` (`session_id`, `created_at`) COMMENT '会话+时间',
INDEX `idx_staff` (`staff_id`, `created_at`) COMMENT '坐席+时间',
INDEX `idx_intent` (`primary_intent`, `created_at`) COMMENT '意图+时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='推荐记录表';
-- ============================================================
-- 知识库文档表 (knowledge_documents)
-- ============================================================
CREATE TABLE IF NOT EXISTS `knowledge_documents` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`doc_id` VARCHAR(64) NOT NULL COMMENT '文档唯一ID',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`title` VARCHAR(256) NOT NULL COMMENT '文档标题',
`content` LONGTEXT COMMENT '文档内容',
`content_text` LONGTEXT COMMENT '纯文本内容(用于全文检索)',
`doc_type` VARCHAR(32) DEFAULT 'KNOWLEDGE' COMMENT '文档类型: KNOWLEDGE-知识 UTTERANCE-话术 FAQ-常见问题',
`category` VARCHAR(64) COMMENT '分类',
`tags` TEXT COMMENT '标签,JSON数组字符串',
`status` VARCHAR(32) DEFAULT 'ACTIVE' COMMENT '状态: ACTIVE-启用 INACTIVE-停用',
`has_vector` TINYINT DEFAULT 0 COMMENT '是否已生成向量',
`vector_updated_at` TIMESTAMP NULL COMMENT '向量更新时间',
`created_by` VARCHAR(64) COMMENT '创建人',
`updated_by` VARCHAR(64) COMMENT '更新人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_doc_id` (`doc_id`) COMMENT '文档ID唯一',
INDEX `idx_corp_type` (`corp_id`, `doc_type`, `status`) COMMENT '企业+类型+状态',
FULLTEXT KEY `ft_content` (`content_text`) COMMENT '全文检索'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库文档表';
-- ============================================================
-- 员工表 (staffs)
-- ============================================================
CREATE TABLE IF NOT EXISTS `staffs` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`staff_id` VARCHAR(128) NOT NULL COMMENT '企微用户ID',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`name` VARCHAR(64) COMMENT '姓名',
`avatar` VARCHAR(512) COMMENT '头像URL',
`department` VARCHAR(128) COMMENT '部门',
`role` VARCHAR(32) DEFAULT 'ADVISOR' COMMENT '角色: ADMIN-管理员 SUPERVISOR-主管 ADVISOR-顾问',
`status` VARCHAR(32) DEFAULT 'ACTIVE' COMMENT '状态: ACTIVE-在职 INACTIVE-离职',
`push_settings` TEXT COMMENT '推送设置,JSON字符串',
`last_login_time` TIMESTAMP NULL COMMENT '最后登录时间',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_staff_corp` (`staff_id`, `corp_id`) COMMENT '员工+企业唯一',
INDEX `idx_corp_role` (`corp_id`, `role`) COMMENT '企业+角色'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工表';
-- ============================================================
-- 客户表 (customers)
-- ============================================================
CREATE TABLE IF NOT EXISTS `customers` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`customer_id` VARCHAR(128) NOT NULL COMMENT '外部联系人userid',
`corp_id` VARCHAR(64) NOT NULL COMMENT '企业ID',
`name` VARCHAR(64) COMMENT '姓名/昵称',
`avatar` VARCHAR(512) COMMENT '头像URL',
`type` VARCHAR(32) DEFAULT 'UNKNOWN' COMMENT '客户类型: UNKNOWN-未知 INDIVIDUAL-个人 PARENT-家长 ENTERPRISE-企业',
`gender` VARCHAR(8) COMMENT '性别: MALE-男 FEMALE-女',
`phone` VARCHAR(32) COMMENT '手机号',
`wechat_id` VARCHAR(64) COMMENT '微信号',
`unionid` VARCHAR(128) COMMENT '微信unionid',
`add_time` TIMESTAMP NULL COMMENT '添加时间',
`status` VARCHAR(32) DEFAULT 'ACTIVE' COMMENT '状态: ACTIVE-正常 BLOCKED-拉黑 DELETED-删除',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_customer_corp` (`customer_id`, `corp_id`) COMMENT '客户+企业唯一',
INDEX `idx_corp_status` (`corp_id`, `status`) COMMENT '企业+状态'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户表';
-- ============================================================
-- 管理员表 (admins)
-- ============================================================
CREATE TABLE IF NOT EXISTS `admins` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`username` VARCHAR(64) NOT NULL COMMENT '用户名',
`password` VARCHAR(256) NOT NULL COMMENT '密码(BCrypt加密)',
`name` VARCHAR(64) COMMENT '姓名',
`email` VARCHAR(128) COMMENT '邮箱',
`phone` VARCHAR(32) COMMENT '手机号',
`role` VARCHAR(32) DEFAULT 'ADMIN' COMMENT '角色: SUPER_ADMIN-超级管理员 ADMIN-管理员 OPERATOR-运营',
`status` VARCHAR(32) DEFAULT 'ACTIVE' COMMENT '状态: ACTIVE-启用 DISABLED-停用',
`last_login_time` TIMESTAMP NULL COMMENT '最后登录时间',
`last_login_ip` VARCHAR(64) COMMENT '最后登录IP',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY `uk_username` (`username`) COMMENT '用户名唯一'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员表';
-- ============================================================
-- 操作日志表 (operation_logs)
-- ============================================================
CREATE TABLE IF NOT EXISTS `operation_logs` (
`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
`operator_id` VARCHAR(64) NOT NULL COMMENT '操作人ID',
`operator_name` VARCHAR(64) COMMENT '操作人姓名',
`operator_type` VARCHAR(32) DEFAULT 'STAFF' COMMENT '操作人类型: STAFF-员工 ADMIN-管理员',
`module` VARCHAR(64) COMMENT '操作模块',
`action` VARCHAR(64) COMMENT '操作动作',
`description` TEXT COMMENT '操作描述',
`request_params` TEXT COMMENT '请求参数',
`response_result` TEXT COMMENT '响应结果',
`ip` VARCHAR(64) COMMENT '操作IP',
`user_agent` VARCHAR(512) COMMENT 'User-Agent',
`status` TINYINT DEFAULT 1 COMMENT '状态: 1成功 0失败',
`elapsed_ms` INT(11) COMMENT '耗时(毫秒)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX `idx_operator` (`operator_id`, `created_at`) COMMENT '操作人+时间',
INDEX `idx_module` (`module`, `action`, `created_at`) COMMENT '模块+动作+时间',
INDEX `idx_created_at` (`created_at`) COMMENT '创建时间索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志表';
-- ============================================================
-- 初始化数据
-- ============================================================
-- 40个意图分类
INSERT INTO `intent_categories` (`code`, `name`, `domain`, `description`, `priority`, `trigger_keywords`, `sample_expressions`, `status`) VALUES
('INT-COURSE-01', '课程内容咨询', '课程相关', '询问具体学什么内容', 'P1', '["学什么","课程","内容","教什么","学什么软件"]', '["你们的课程具体学什么内容?","课程都教哪些软件?","能说一下课程体系吗?"]', 1),
('INT-COURSE-02', '课程选择建议', '课程相关', '不知道该选哪个方向', 'P1', '["选哪个","推荐","适合我","怎么选","方向"]', '["我应该学3D建模还是原画?","哪个方向好就业?","您能帮我推荐一下吗?"]', 1),
('INT-COURSE-03', '课程大纲索要', '课程相关', '想看详细课程安排', 'P1', '["大纲","课程表","安排","详细","阶段"]', '["能发一下课程大纲吗?","具体是怎么安排的?","每个阶段学什么?"]', 1),
('INT-COURSE-04', '试听预约咨询', '课程相关', '想试听或体验课程', 'P1', '["试听","体验","免费","公开课","试学"]', '["有免费试听吗?","怎么预约试听课?","可以体验一下吗?"]', 1),
('INT-COURSE-05', '课程更新迭代', '课程相关', '担心课程内容过时', 'P2', '["更新","过时","新版","跟上","行业"]', '["课程内容会更新吗?","跟得上行业吗?","用的是最新技术吗?"]', 1),
('INT-COURSE-06', '线上vs线下选择', '课程相关', '不知道选哪种学习方式', 'P1', '["线上","线下","面授","直播","网课","区别"]', '["线上和线下有什么区别?","线上课程效果好吗?","可以线上学习吗?"]', 1),
('INT-COURSE-07', '课程难度询问', '课程相关', '担心零基础能否学会', 'P1', '["零基础","能学会吗","难吗","没有基础","小白","能不能学会"]', '["零基础能学会吗?","我没有美术基础可以学吗?","课程难度大不大?"]', 1),
('INT-COURSE-08', '学习周期询问', '课程相关', '想知道学多久', 'P2', '["多久","多长时间","几个月","学多久","周期"]', '["课程要学多久?","多长时间能学会?","几个月可以学完?"]', 1),
('INT-PRICE-01', '学费价格询问', '价格相关', '直接问学费多少', 'P1', '["多少钱","学费","价格","费用","收费","怎么收费"]', '["学费多少钱?","课程怎么收费?","一共多少钱?"]', 1),
('INT-PRICE-02', '优惠活动询问', '价格相关', '想知道有没有优惠', 'P1', '["优惠","活动","打折","减免","便宜","特价"]', '["现在有优惠活动吗?","能便宜点吗?","有没有折扣?"]', 1),
('INT-PRICE-03', '分期付款咨询', '价格相关', '关心付款方式', 'P2', '["分期","贷款","月付","首付","月供","花呗"]', '["可以分期付款吗?","有贷款方案吗?","月供多少?"]', 1),
('INT-PRICE-04', '退费政策询问', '价格相关', '关心退费保障', 'P2', '["退费","退款","退钱","学不好退","保障"]', '["学不好可以退费吗?","退费流程是怎样的?","有保障吗?"]', 1),
('INT-PRICE-05', '性价比比较', '价格相关', '和别家比较', 'P2', '["对比","比较","别家","其他机构","性价比","划算"]', '["你们的课程和XX比怎么样?","为什么价格比别人高?","性价比高吗?"]', 1),
('INT-JOB-01', '就业方向咨询', '就业相关', '学完能做什么', 'P1', '["就业","工作","岗位","方向","做什么"]', '["学完能去哪些公司工作?","就业方向有哪些?","能做什么岗位?"]', 1),
('INT-JOB-02', '薪资水平询问', '就业相关', '关心工资待遇', 'P1', '["工资","薪资","月薪","收入","待遇","多少钱一个月"]', '["毕业后工资能拿多少?","行业薪资水平怎么样?","能挣多少?"]', 1),
('INT-JOB-03', '就业率询问', '就业相关', '关心能否找到工作', 'P1', '["就业率","找到工作","保证","推荐","找工作"]', '["就业率高吗?","能保证就业吗?","好找工作吗?"]', 1),
('INT-JOB-04', '就业服务了解', '就业相关', '了解就业推荐服务', 'P2', '["就业服务","推荐","怎么找工作","帮找工作"]', '["你们怎么帮学员找工作?","有就业推荐吗?","就业服务包含什么?"]', 1),
('INT-JOB-05', '合作企业询问', '就业相关', '想知道合作企业', 'P2', '["合作企业","大厂","腾讯","米哈游","网易","公司"]', '["合作企业有哪些?","有米哈游/腾讯这样的公司吗?","就业单位有哪些?"]', 1),
('INT-JOB-06', '作品集指导', '就业相关', '关心作品质量', 'P2', '["作品集","作品","项目","Demo","案例"]', '["学完能做出作品集吗?","作品质量怎么样?","能参与项目吗?"]', 1),
('INT-JOB-07', '实习机会咨询', '就业相关', '想参与真实项目', 'P3', '["实习","真实项目","实训","参与项目","实战"]', '["有实习机会吗?","可以参与真实项目吗?","有企业实训吗?"]', 1),
('INT-TEACH-01', '师资背景询问', '师资相关', '想知道老师是谁', 'P2', '["老师","师资","讲师","谁教的","教学经验"]', '["老师是什么背景?","老师有项目经验吗?","谁来讲课?"]', 1),
('INT-TEACH-02', '教学模式了解', '师资相关', '想知道怎么上课', 'P2', '["怎么上课","教学方式","班型","一对一","多少人"]', '["是怎么上课的?","一个班多少人?","教学模式是怎样的?"]', 1),
('INT-TEACH-03', '课后答疑服务', '师资相关', '关心课后辅导', 'P2', '["答疑","辅导","课后","问问题","指导"]', '["课后有问题可以问老师吗?","答疑及时吗?","有课后辅导吗?"]', 1),
('INT-TEACH-04', '师生比例询问', '师资相关', '关心教学质量', 'P3', '["一个老师","带多少学生","比例","师生"]', '["一个老师带多少学生?","能照顾到每个人吗?","班级多大?"]', 1),
('INT-TEACH-05', '学习效果保障', '师资相关', '担心学不会怎么办', 'P2', '["学不会","怎么办","重修","保障","跟不上"]', '["学不会怎么办?","怎么保证学习效果?","跟不上怎么办?"]', 1),
('INT-BASIC-01', '学历要求咨询', '基础条件', '学历是否够', 'P2', '["学历","要求","高中","大专","本科"]', '["需要什么学历?","高中生可以学吗?","学历要求高吗?"]', 1),
('INT-BASIC-02', '年龄限制询问', '基础条件', '年龄是否合适', 'P2', '["年龄","多大","几岁","限制","30岁"]', '["有没有年龄限制?","30岁了还能学吗?","年龄大能学会吗?"]', 1),
('INT-BASIC-03', '零基础入学', '基础条件', '零基础可行性', 'P1', '["零基础","没有基础","小白","完全不会","从来没"]', '["我没有美术基础可以学吗?","零基础能学会吗?","完全没接触过可以学吗?"]', 1),
('INT-BASIC-04', '证书颁发询问', '基础条件', '学完发什么证书', 'P3', '["证书","毕业证","结业证","证明","认证"]', '["学完发证书吗?","证书有用吗?","有毕业证吗?"]', 1),
('INT-LOC-01', '校区地址询问', '校区相关', '想知道校区在哪', 'P2', '["校区","地址","在哪","位置","交通"]', '["校区在哪里?","附近有地铁吗?","具体地址是什么?"]', 1),
('INT-LOC-02', '校区参观预约', '校区相关', '想去参观', 'P2', '["参观","看看","实地考察","走访","预约"]', '["可以参观校区吗?","怎么预约参观?","能去看看吗?"]', 1),
('INT-LOC-03', '教学设备了解', '校区相关', '关心硬件条件', 'P3', '["设备","电脑","配置","硬件","机房"]', '["需要自备电脑吗?","校区提供设备吗?","电脑配置怎么样?"]', 1),
('INT-LOC-04', '住宿安排咨询', '校区相关', '外地学员住宿', 'P3', '["住宿","宿舍","外地","住哪","租房"]', '["外地学员有住宿吗?","住宿怎么安排?","有宿舍吗?"]', 1),
('INT-QUAL-01', '机构正规性', '机构资质', '是否正规机构', 'P2', '["正规","资质","办学","合法","备案"]', '["你们是正规机构吗?","有办学资质吗?","是国家认可的吗?"]', 1),
('INT-QUAL-02', '口碑评价询问', '机构资质', '想看学员评价', 'P3', '["评价","口碑","反馈","怎么样","好吗"]', '["学员评价怎么样?","有老学员反馈吗?","口碑如何?"]', 1),
('INT-QUAL-03', '媒体报道了解', '机构资质', '想看权威背书', 'P3', '["报道","媒体","电视","新闻","央视"]', '["有上过电视报道吗?","媒体报道过吗?","央视那个是真的吗?"]', 1),
('INT-OTHER-01', '大师课咨询', '其他', '进阶课程', 'P3', '["大师课","研修班","进阶","艺术家","高级"]', '["大师课和普通课什么区别?","研修班怎么报名?","大师课学费多少?"]', 1),
('INT-OTHER-02', '企业培训定制', '其他', 'B端需求', 'P3', '["企业培训","定制","公司","团队","B端"]', '["有企业定制培训吗?","公司团队能报名吗?","企业内训怎么合作?"]', 1),
('INT-OTHER-03', '比赛活动咨询', '其他', 'GGAC等赛事', 'P3', '["比赛","GGAC","大赛","活动","赛事"]', '["GGAC比赛怎么参加?","有比赛推荐吗?","学员能参加大赛吗?"]', 1),
('INT-OTHER-04', '转班转学咨询', '其他', '变更需求', 'P3', '["转班","换方向","转学","调整","换校区"]', '["可以换课程方向吗?","可以换校区吗?","转班怎么办理?"]', 1);
-- 8个话术分类(销售阶段)
INSERT INTO `utterance_categories` (`code`, `name`, `parent_code`, `sort_order`, `color`, `description`) VALUES
('STAGE-01', '开场白', 'ROOT', 1, '#52c41a', '首次接待学员/家长,建立信任,收集基础信息'),
('STAGE-02', '需求探询', 'ROOT', 2, '#1890ff', '了解学员背景和目标,精准画像,挖掘需求'),
('STAGE-03', '课程推荐', 'ROOT', 3, '#fa8c16', '匹配适合的课程方向,精准推荐1-2个方向'),
('STAGE-04', '价值塑造', 'ROOT', 4, '#722ed1', '强调优势和差异化,建立价值认同'),
('STAGE-05', '报价沟通', 'ROOT', 5, '#eb2f96', '价格说明和方案,化解价格顾虑'),
('STAGE-06', '异议处理', 'ROOT', 6, '#f5222d', '应对各类顾虑,消除障碍,建立信心'),
('STAGE-07', '促成报名', 'ROOT', 7, '#faad14', '推动转化成交,促成立即行动'),
('STAGE-08', '跟进维护', 'ROOT', 8, '#13c2c2', '未成交学员跟进,保持联系,等待时机');
-- 系统管理员(密码: admin123)
INSERT INTO `admins` (`username`, `password`, `name`, `email`, `role`, `status`, `created_at`) VALUES
('admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iOE1Qh6G', '系统管理员', 'admin@9artedu.com', 'SUPER_ADMIN', 'ACTIVE', NOW());
-- 九艺AI坐席辅助系统 - 核心话术库初始化
-- 覆盖8个阶段、40个意图分类
INSERT INTO utterances (
utterance_id, corp_id, title, content, content_text, status, priority,
stage_tags, intent_tags, profile_tags, course_type_tags, emotion_tags, topic_tags,
used_count, selected_count, success_rate, source, created_by
) VALUES
-- ========== 开场白 (STAGE-01) ==========
('UTT-001-001', 'corp001', '标准开场白-首次咨询',
'您好!欢迎咨询第九联盟艺术教育,我是您的专属课程顾问{{顾问姓名}}。请问怎么称呼您呢?是想了解咱们哪方面的课程呀?',
'您好!欢迎咨询第九联盟艺术教育,我是您的专属课程顾问。请问怎么称呼您呢?是想了解咱们哪方面的课程呀?',
'APPROVED', 9,
'["STAGE-01"]',
'["INT-COURSE-01","INT-COURSE-02"]',
'["新客户","未分类"]',
'["通用"]',
'["中性"]',
'["开场","问候","信息收集"]',
128, 96, 0.7500, 'MANUAL', 'admin'),
('UTT-001-002', 'corp001', '开场白-转介绍学员',
'您好!听说您是{{推荐人}}介绍来的,真是太好了!咱们第九联盟在{{课程方向}}方向口碑一直很好,我先给您简单介绍一下?',
'您好!听说您是朋友介绍来的,真是太好了!咱们第九联盟在课程方向口碑一直很好,我先给您简单介绍一下?',
'APPROVED', 8,
'["STAGE-01"]',
'["INT-COURSE-01","INT-QUAL-02"]',
'["转介绍","高信任度"]',
'["通用"]',
'["积极"]',
'["开场","信任建立","转介绍"]',
86, 72, 0.8372, 'MANUAL', 'admin'),
('UTT-001-003', 'corp001', '开场白-二次到访',
'{{学员姓名}}您好!上次咱们聊到{{上次话题}},这次过来是想进一步了解哪方面呢?',
'您好!上次咱们聊到课程话题,这次过来是想进一步了解哪方面呢?',
'APPROVED', 8,
'["STAGE-01"]',
'["INT-COURSE-01","INT-COURSE-04"]',
'["回访客户","有初步意向"]',
'["通用"]',
'["积极"]',
'["开场","跟进","二次到访"]',
64, 55, 0.8594, 'MANUAL', 'admin'),
-- ========== 需求探询 (STAGE-02) ==========
('UTT-002-001', 'corp001', '需求探询-零基础背景',
'完全没问题的!咱们{{课程名称}}就是专门为零基础学员设计的。先跟您确认几个信息:您现在是学生还是在职?每天能抽出多少时间学习?',
'完全没问题的!咱们课程就是专门为零基础学员设计的。先跟您确认几个信息:您现在是学生还是在职?每天能抽出多少时间学习?',
'APPROVED', 9,
'["STAGE-02"]',
'["INT-BASIC-03","INT-COURSE-07","INT-COURSE-08"]',
'["零基础","时间有限","转行意向"]',
'["通用"]',
'["中性","略有顾虑"]',
'["需求探询","背景了解","时间确认"]',
215, 168, 0.7814, 'MANUAL', 'admin'),
('UTT-002-002', 'corp001', '需求探询-职业提升',
'明白了,您是想通过系统学习来提升职业技能。方便问一下您目前从事什么行业吗?以及您希望学完后达到什么水平?这样我可以给您更精准的建议。',
'明白了,您是想通过系统学习来提升职业技能。方便问一下您目前从事什么行业吗?以及您希望学完后达到什么水平?这样我可以给您更精准的建议。',
'APPROVED', 8,
'["STAGE-02"]',
'["INT-JOB-01","INT-COURSE-02","INT-JOB-06"]',
'["在职提升","有明确目标","中级基础"]',
'["通用"]',
'["积极"]',
'["需求探询","职业规划","目标确认"]',
156, 124, 0.7949, 'MANUAL', 'admin'),
('UTT-002-003', 'corp001', '需求探询-学生党',
'了解!作为学生您的时间相对灵活,这是个很大的优势。您现在大几?是本专业相关还是想跨专业学习?毕业后的打算是什么?',
'了解!作为学生您的时间相对灵活,这是个很大的优势。您现在大几?是本专业相关还是想跨专业学习?毕业后的打算是什么?',
'APPROVED', 8,
'["STAGE-02"]',
'["INT-BASIC-01","INT-JOB-01","INT-COURSE-02"]',
'["在校学生","时间充裕","职业规划期"]',
'["通用"]',
'["积极"]',
'["需求探询","学业背景","职业规划"]',
178, 142, 0.7978, 'MANUAL', 'admin'),
-- ========== 课程推荐 (STAGE-03) ==========
('UTT-003-001', 'corp001', '课程推荐-原画方向',
'根据您的情况,我强烈推荐咱们的**原画概念设计班**。这个课程从素描基础到角色设计、场景设计全覆盖,6个月就能达到入行水平。咱们往期学员平均就业率是92%,起薪在8-12K。',
'根据您的情况,我强烈推荐咱们的原画概念设计班。这个课程从素描基础到角色设计、场景设计全覆盖,6个月就能达到入行水平。咱们往期学员平均就业率是92%,起薪在8-12K。',
'APPROVED', 10,
'["STAGE-03"]',
'["INT-COURSE-01","INT-COURSE-02","INT-JOB-01","INT-JOB-02"]',
'["零基础","转行意向","美术爱好者"]',
'["原画","概念设计"]',
'["积极","感兴趣"]',
'["课程推荐","就业数据","学习周期"]',
342, 268, 0.7836, 'MANUAL', 'admin'),
('UTT-003-002', 'corp001', '课程推荐-3D建模方向',
'基于您的背景,**3D游戏建模班**非常适合您!课程涵盖ZBrush雕刻、Maya建模、次世代流程,4个月系统学习。咱们和腾讯、网易、米哈游都有合作关系,优秀学员可以直接内推。',
'基于您的背景,3D游戏建模班非常适合您!课程涵盖ZBrush雕刻、Maya建模、次世代流程,4个月系统学习。咱们和腾讯、网易、米哈游都有合作关系,优秀学员可以直接内推。',
'APPROVED', 10,
'["STAGE-03"]',
'["INT-COURSE-01","INT-COURSE-02","INT-JOB-05","INT-JOB-04"]',
'["有基础","技术导向","就业优先"]',
'["3D建模","游戏设计"]',
'["积极","感兴趣"]',
'["课程推荐","企业合作","内推机会"]',
286, 224, 0.7832, 'MANUAL', 'admin'),
('UTT-003-003', 'corp001', '课程推荐-影视后期方向',
'如果您对影视感兴趣,**影视后期特效班**是咱们王牌课程之一。学完后可以从事电影特效、广告包装、短视频制作等方向,就业面非常广。现在报名还能享受早鸟优惠!',
'如果您对影视感兴趣,影视后期特效班是咱们王牌课程之一。学完后可以从事电影特效、广告包装、短视频制作等方向,就业面非常广。现在报名还能享受早鸟优惠!',
'APPROVED', 9,
'["STAGE-03"]',
'["INT-COURSE-01","INT-COURSE-02","INT-JOB-01"]',
'["兴趣驱动","创意型","影视爱好者"]',
'["影视后期","特效"]',
'["积极","感兴趣"]',
'["课程推荐","就业方向","优惠活动"]',
198, 156, 0.7879, 'MANUAL', 'admin'),
('UTT-003-004', 'corp001', '课程推荐-试听邀请',
'光听我介绍可能不够直观,建议您先来听一节**免费试听课**。我可以帮您预约明天下午3点的原画体验课,您看时间方便吗?',
'光听我介绍可能不够直观,建议您先来听一节免费试听课。我可以帮您预约明天下午3点的原画体验课,您看时间方便吗?',
'APPROVED', 9,
'["STAGE-03"]',
'["INT-COURSE-04","INT-COURSE-01"]',
'["犹豫中","需要体验","决策期"]',
'["通用"]',
'["中性","犹豫"]',
'["课程推荐","试听邀约","降低门槛"]',
412, 338, 0.8204, 'MANUAL', 'admin'),
-- ========== 价值塑造 (STAGE-04) ==========
('UTT-004-001', 'corp001', '价值塑造-师资力量',
'咱们的讲师团队非常强大,主讲老师都是来自一线大厂的高级美术总监,比如原画班的李老师之前在网易任职8年,参与过《阴阳师》《第五人格》的角色设计。您学的不是理论,是实打实的行业经验!',
'咱们的讲师团队非常强大,主讲老师都是来自一线大厂的高级美术总监,比如原画班的李老师之前在网易任职8年,参与过知名游戏的角色设计。您学的不是理论,是实打实的行业经验!',
'APPROVED', 9,
'["STAGE-04"]',
'["INT-TEACH-01","INT-QUAL-01","INT-TEACH-05"]',
'["注重师资","品质导向"]',
'["通用"]',
'["积极","信任"]',
'["价值塑造","师资介绍","行业背景"]',
268, 212, 0.7910, 'MANUAL', 'admin'),
('UTT-004-002', 'corp001', '价值塑造-教学模式',
'咱们采用**小班制+项目实战**的教学模式,每个班不超过20人,保证老师能照顾到每位学员。而且课程中会有4-5个真实商业项目贯穿,毕业时您已经有能直接放进作品集的项目经验了。',
'咱们采用小班制+项目实战的教学模式,每个班不超过20人,保证老师能照顾到每位学员。而且课程中会有4-5个真实商业项目贯穿,毕业时您已经有能直接放进作品集的项目经验了。',
'APPROVED', 9,
'["STAGE-04"]',
'["INT-TEACH-02","INT-TEACH-04","INT-JOB-06"]',
'["注重效果","实践导向"]',
'["通用"]',
'["积极","信任"]',
'["价值塑造","教学模式","项目实战"]',
224, 186, 0.8304, 'MANUAL', 'admin'),
('UTT-004-003', 'corp001', '价值塑造-学习保障',
'咱们有完善的**学习效果保障体系**:第一,每个阶段都有考核,没通过可以免费重修;第二,毕业后6个月内未就业,全额退费;第三,提供终身免费复训。您完全不用担心学不会或者学完后找不到工作。',
'咱们有完善的学习效果保障体系:第一,每个阶段都有考核,没通过可以免费重修;第二,毕业后6个月内未就业,全额退费;第三,提供终身免费复训。您完全不用担心学不会或者学完后找不到工作。',
'APPROVED', 10,
'["STAGE-04"]',
'["INT-TEACH-05","INT-PRICE-04","INT-QUAL-01"]',
'["风险厌恶","谨慎型","需要保障"]',
'["通用"]',
'["积极","信任","安心"]',
'["价值塑造","保障体系","退费政策"]',
312, 256, 0.8205, 'MANUAL', 'admin'),
-- ========== 报价沟通 (STAGE-05) ==========
('UTT-005-001', 'corp001', '报价沟通-透明报价',
'咱们的收费标准非常透明,{{课程名称}}全程6个月,总费用是{{价格}}元。这个费用包含了全部课程、教材、软件授权、项目指导,没有任何隐形收费。您可以和其他机构对比一下,咱们的性价比是非常高的。',
'咱们的收费标准非常透明,课程全程6个月,总费用是市场价。这个费用包含了全部课程、教材、软件授权、项目指导,没有任何隐形收费。您可以和其他机构对比一下,咱们的性价比是非常高的。',
'APPROVED', 8,
'["STAGE-05"]',
'["INT-PRICE-01","INT-PRICE-05"]',
'["价格敏感","理性对比"]',
'["通用"]',
'["中性","关注价格"]',
'["报价沟通","透明定价","性价比"]',
386, 298, 0.7720, 'MANUAL', 'admin'),
('UTT-005-002', 'corp001', '报价沟通-分期方案',
'如果一次性付款有压力,咱们支持**12期免息分期**,每个月只要还几百块,对您的生活完全没有影响。而且分期和全款享受的优惠是一样的。我可以帮您算一下具体的月供?',
'如果一次性付款有压力,咱们支持12期免息分期,每个月只要还几百块,对您的生活完全没有影响。而且分期和全款享受的优惠是一样的。我可以帮您算一下具体的月供?',
'APPROVED', 9,
'["STAGE-05"]',
'["INT-PRICE-03","INT-PRICE-01"]',
'["预算有限","学生党","在职转行"]',
'["通用"]',
'["中性","顾虑价格"]',
'["报价沟通","分期付款","降低门槛"]',
268, 224, 0.8358, 'MANUAL', 'admin'),
('UTT-005-003', 'corp001', '报价沟通-优惠活动',
'您来得正好!这个月是咱们**周年庆活动**,报名可以享受三重优惠:第一,学费直减2000元;第二,赠送价值1500元的数位板;第三,赠送3节大师公开课。这个优惠到月底就结束了,建议您尽快决定!',
'您来得正好!这个月是咱们周年庆活动,报名可以享受三重优惠:第一,学费直减2000元;第二,赠送价值1500元的数位板;第三,赠送3节大师公开课。这个优惠到月底就结束了,建议您尽快决定!',
'APPROVED', 9,
'["STAGE-05"]',
'["INT-PRICE-02","INT-PRICE-01"]',
'["价格敏感","犹豫中","等待优惠"]',
'["通用"]',
'["积极","紧迫感"]',
'["报价沟通","优惠活动","限时促销"]',
324, 276, 0.8519, 'MANUAL', 'admin'),
-- ========== 异议处理 (STAGE-06) ==========
('UTT-006-001', 'corp001', '异议处理-担心学不会',
'我完全理解您的担心!其实咱们80%的学员都是零基础开始的。关键是咱们有**一对一学习跟进**,每节课后助教都会检查您的作业,有问题随时答疑。而且如果阶段考核没通过,可以免费重修,直到学会为止。',
'我完全理解您的担心!其实咱们80%的学员都是零基础开始的。关键是咱们有一对一学习跟进,每节课后助教都会检查您的作业,有问题随时答疑。而且如果阶段考核没通过,可以免费重修,直到学会为止。',
'APPROVED', 10,
'["STAGE-06"]',
'["INT-BASIC-03","INT-TEACH-05","INT-TEACH-03"]',
'["零基础","自信心不足","风险厌恶"]',
'["通用"]',
'["顾虑","不安"]',
'["异议处理","零基础保障","学习跟进"]',
456, 368, 0.8070, 'MANUAL', 'admin'),
('UTT-006-002', 'corp001', '异议处理-担心找不到工作',
'这个您放心!咱们有专门的**就业服务团队**,从简历优化、作品集整理到模拟面试、企业内推,全程陪伴。而且咱们和200多家游戏、影视公司有人才合作,往期学员就业率是92%,平均薪资8-12K。',
'这个您放心!咱们有专门的就业服务团队,从简历优化、作品集整理到模拟面试、企业内推,全程陪伴。而且咱们和200多家游戏、影视公司有人才合作,往期学员就业率是92%,平均薪资8-12K。',
'APPROVED', 10,
'["STAGE-06"]',
'["INT-JOB-03","INT-JOB-04","INT-JOB-05"]',
'["就业导向","谨慎型","需要数据支撑"]',
'["通用"]',
'["顾虑","不安"]',
'["异议处理","就业保障","数据说服"]',
398, 328, 0.8241, 'MANUAL', 'admin'),
('UTT-006-003', 'corp001', '异议处理-要和家人商量',
'当然应该和家人商量!这是大事嘛。我帮您准备一份**详细的课程资料包**,包括课程大纲、师资介绍、就业案例、学费明细,您拿回去给家人看。如果需要,我也可以和您家人直接沟通,解答他们的疑问。',
'当然应该和家人商量!这是大事嘛。我帮您准备一份详细的课程资料包,包括课程大纲、师资介绍、就业案例、学费明细,您拿回去给家人看。如果需要,我也可以和您家人直接沟通,解答他们的疑问。',
'APPROVED', 9,
'["STAGE-06"]',
'["INT-OTHER-04","INT-QUAL-02"]',
'["决策依赖","家庭决策","犹豫中"]',
'["通用"]',
'["中性","犹豫"]',
'["异议处理","家庭沟通","资料支持"]',
286, 242, 0.8462, 'MANUAL', 'admin'),
('UTT-006-004', 'corp001', '异议处理-想再比较比较',
'完全理解,货比三家是应该的!我建议您从这几个维度去对比:**师资背景**(是否一线大厂出身)、**项目实战**(是否有真实商业项目)、**就业数据**(是否有真实就业案例)、**后续服务**(是否有就业保障)。这几点恰恰是咱们最强的优势。',
'完全理解,货比三家是应该的!我建议您从这几个维度去对比:师资背景(是否一线大厂出身)、项目实战(是否有真实商业项目)、就业数据(是否有真实就业案例)、后续服务(是否有就业保障)。这几点恰恰是咱们最强的优势。',
'APPROVED', 8,
'["STAGE-06"]',
'["INT-QUAL-02","INT-PRICE-05","INT-QUAL-01"]',
'["理性对比","谨慎型","多家咨询"]',
'["通用"]',
'["中性","犹豫"]',
'["异议处理","对比引导","优势强化"]',
198, 162, 0.8182, 'MANUAL', 'admin'),
-- ========== 促成报名 (STAGE-07) ==========
('UTT-007-001', 'corp001', '促成报名-限时优惠',
'{{学员姓名}},我理解您还需要考虑,但这个**周年庆优惠今天就是最后一天**了。现在报名立减2000,还送数位板。错过这个活动,同样的课程要多花3500块。我先帮您预留一个名额,您今天内确认就行,好吗?',
'我理解您还需要考虑,但这个周年庆优惠今天就是最后一天了。现在报名立减2000,还送数位板。错过这个活动,同样的课程要多花3500块。我先帮您预留一个名额,您今天内确认就行,好吗?',
'APPROVED', 9,
'["STAGE-07"]',
'["INT-PRICE-02","INT-COURSE-04"]',
'["犹豫中","价格敏感","决策期"]',
'["通用"]',
'["紧迫感","积极"]',
'["促成报名","限时优惠","名额预留"]',
356, 298, 0.8371, 'MANUAL', 'admin'),
('UTT-007-002', 'corp001', '促成报名-从众心理',
'这个月已经有12个学员报名了原画班,其中3个是和您情况很像的零基础转行者。他们上周已经开始上课了,反馈都特别好。您要是这周报名,还能赶上同一期,大家起点一样,学习氛围会更好。',
'这个月已经有12个学员报名了原画班,其中3个是和您情况很像的零基础转行者。他们上周已经开始上课了,反馈都特别好。您要是这周报名,还能赶上同一期,大家起点一样,学习氛围会更好。',
'APPROVED', 8,
'["STAGE-07"]',
'["INT-COURSE-04","INT-QUAL-02"]',
'["社交型","从众心理","决策期"]',
'["通用"]',
'["积极","信任"]',
'["促成报名","从众效应","同期开班"]',
224, 186, 0.8304, 'MANUAL', 'admin'),
('UTT-007-003', 'corp001', '促成报名-降低门槛',
'这样吧,您先交**500元定金**锁定今天的优惠和名额,这500元抵1000元学费。给您3天时间考虑,如果最终决定不报名,定金全额退还。这样您既没有损失,又能保留优惠,您看行吗?',
'这样吧,您先交500元定金锁定今天的优惠和名额,这500元抵1000元学费。给您3天时间考虑,如果最终决定不报名,定金全额退还。这样您既没有损失,又能保留优惠,您看行吗?',
'APPROVED', 9,
'["STAGE-07"]',
'["INT-PRICE-03","INT-PRICE-04"]',
'["谨慎型","风险厌恶","犹豫中"]',
'["通用"]',
'["积极","安心"]',
'["促成报名","定金策略","零风险"]',
312, 268, 0.8590, 'MANUAL', 'admin'),
-- ========== 跟进维护 (STAGE-08) ==========
('UTT-008-001', 'corp001', '跟进维护-未成交回访',
'{{学员姓名}}您好!上次咱们聊完后,您考虑得怎么样了?我这边又整理了几个和您背景相似的学员案例,以及最新的就业数据,发您微信了,您有空看看。有任何问题随时找我!',
'您好!上次咱们聊完后,您考虑得怎么样了?我这边又整理了几个和您背景相似的学员案例,以及最新的就业数据,发您微信了,您有空看看。有任何问题随时找我!',
'APPROVED', 7,
'["STAGE-08"]',
'["INT-QUAL-02","INT-JOB-03"]',
'["未成交","犹豫中","需要推动"]',
'["通用"]',
'["中性","友好"]',
'["跟进维护","案例分享","保持联系"]',
186, 142, 0.7634, 'MANUAL', 'admin'),
('UTT-008-002', 'corp001', '跟进维护-已报名关怀',
'{{学员姓名}},上课一周了,感觉怎么样?有没有哪里跟不上的?咱们助教老师每周都会做学习反馈,如果您有任何问题,不管是学习上的还是生活里的,都可以随时找我。希望您在咱们这儿学习愉快!',
'上课一周了,感觉怎么样?有没有哪里跟不上的?咱们助教老师每周都会做学习反馈,如果您有任何问题,不管是学习上的还是生活里的,都可以随时找我。希望您在咱们这儿学习愉快!',
'APPROVED', 7,
'["STAGE-08"]',
'["INT-TEACH-03","INT-TEACH-05"]',
'["已报名","学习期","需要关怀"]',
'["通用"]',
'["积极","温暖"]',
'["跟进维护","学员关怀","学习反馈"]',
124, 98, 0.7903, 'MANUAL', 'admin'),
('UTT-008-003', 'corp001', '跟进维护-新活动通知',
'{{学员姓名}},告诉您个好消息!咱们下周六有个**行业大咖分享会**,邀请到了网易美术总监来讲《游戏原画的职业发展路径》。您要是有兴趣,我可以给您预留个名额,免费的!',
'告诉您个好消息!咱们下周六有个行业大咖分享会,邀请到了网易美术总监来讲游戏原画的职业发展路径。您要是有兴趣,我可以给您预留个名额,免费的!',
'APPROVED', 7,
'["STAGE-08"]',
'["INT-OTHER-01","INT-JOB-01","INT-TEACH-01"]',
'["潜在学员","兴趣驱动","活动爱好者"]',
'["通用"]',
'["积极","感兴趣"]',
'["跟进维护","活动邀约","价值输出"]',
98, 76, 0.7755, 'MANUAL', 'admin');