466 lines
39 KiB
SQL
466 lines
39 KiB
SQL
-- 物业 AI HR 对练记录最小表结构。
|
||
-- ponytail: one session table covers history, review list and profile aggregation for MVP.
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_case_record` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`case_id` varchar(80) NOT NULL COMMENT '案例ID',
|
||
`file_name` varchar(255) DEFAULT NULL COMMENT '来源文件',
|
||
`project_ext_org_id` varchar(100) DEFAULT NULL COMMENT '项目外部组织ID',
|
||
`title` varchar(120) DEFAULT NULL COMMENT '标题',
|
||
`type` varchar(80) DEFAULT NULL COMMENT '案例类型',
|
||
`status` varchar(30) DEFAULT '已转写' COMMENT '状态',
|
||
`transcript` text DEFAULT NULL COMMENT 'ASR转写',
|
||
`summary` varchar(1000) DEFAULT NULL COMMENT '摘要',
|
||
`learning_points` text DEFAULT NULL COMMENT '案例学习点JSON',
|
||
`supervisor_comment` varchar(1000) DEFAULT NULL COMMENT '主管点评',
|
||
`media_oss_id` bigint DEFAULT NULL COMMENT '原始音频OSS文件ID',
|
||
`media_url` varchar(500) DEFAULT NULL COMMENT '原始音频访问地址',
|
||
`owner` varchar(80) DEFAULT '培训组' COMMENT '负责人',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_case_record_case` (`tenant_id`, `case_id`),
|
||
KEY `idx_aihr_case_record_status` (`tenant_id`, `status`, `update_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 案例沉淀记录';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_session` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`session_id` varchar(100) NOT NULL COMMENT '训练会话ID',
|
||
`ext_party_id` varchar(100) DEFAULT NULL COMMENT '外部主体或手机号',
|
||
`trainee_name` varchar(100) DEFAULT NULL COMMENT '学员名称',
|
||
`scenario_id` varchar(80) DEFAULT NULL COMMENT '场景ID',
|
||
`scenario_name` varchar(100) DEFAULT NULL COMMENT '场景名称',
|
||
`mode` varchar(30) DEFAULT 'text' COMMENT '训练模式',
|
||
`total_score` int DEFAULT NULL COMMENT '总分',
|
||
`dim_task_completion` int DEFAULT NULL COMMENT '任务完成度分',
|
||
`dim_response_timeliness` int DEFAULT NULL COMMENT '响应时效分',
|
||
`response_latency_ms` int DEFAULT NULL COMMENT '平均陪练响应时长毫秒',
|
||
`dim_compliance` int DEFAULT NULL COMMENT '合规分',
|
||
`dim_emotion` int DEFAULT NULL COMMENT '情绪分',
|
||
`dim_communication` int DEFAULT NULL COMMENT '沟通分',
|
||
`dim_marketing` int DEFAULT NULL COMMENT '营销分',
|
||
`mentor_rewrite` varchar(1000) DEFAULT NULL COMMENT '导师改写',
|
||
`ai_comment` varchar(1000) DEFAULT NULL COMMENT 'AI点评',
|
||
`review_advice` varchar(1000) DEFAULT NULL COMMENT '主管复盘建议',
|
||
`incentive_point` int DEFAULT NULL COMMENT '主管人工贡献分',
|
||
`satisfaction_score` tinyint DEFAULT NULL COMMENT '员工训练满意度1-5分',
|
||
`satisfaction_comment` varchar(500) DEFAULT NULL COMMENT '员工训练满意度意见',
|
||
`summary` varchar(1000) DEFAULT NULL COMMENT '摘要',
|
||
`dialogue_json` text DEFAULT NULL COMMENT '对练话术JSON',
|
||
`annotations_json` text DEFAULT NULL COMMENT '逐句标注JSON',
|
||
`trust_curve` varchar(100) DEFAULT NULL COMMENT '信任曲线',
|
||
`status` varchar(30) DEFAULT '待复盘' COMMENT '状态',
|
||
`started_time` datetime DEFAULT NULL COMMENT '开始时间',
|
||
`finished_time` datetime DEFAULT NULL COMMENT '完成时间',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_session` (`tenant_id`, `session_id`),
|
||
KEY `idx_aihr_practice_party` (`tenant_id`, `ext_party_id`, `finished_time`),
|
||
KEY `idx_aihr_practice_review` (`tenant_id`, `mode`, `status`, `finished_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练记录';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_annotation` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`session_id` varchar(100) NOT NULL COMMENT '训练会话ID',
|
||
`turn_index` int NOT NULL COMMENT '话术序号',
|
||
`source_text` varchar(1000) DEFAULT NULL COMMENT '原话',
|
||
`issue_text` varchar(1000) DEFAULT NULL COMMENT '问题点',
|
||
`rewrite_text` varchar(1000) DEFAULT NULL COMMENT '推荐改写',
|
||
`sop_point` varchar(1000) DEFAULT NULL COMMENT '命中或漏掉的SOP点',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_annotation` (`tenant_id`, `session_id`, `turn_index`),
|
||
KEY `idx_aihr_practice_annotation_session` (`tenant_id`, `session_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练逐句标注';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_audio` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`session_id` varchar(100) NOT NULL COMMENT '训练会话ID',
|
||
`turn_index` int NOT NULL COMMENT '话术序号',
|
||
`role` varchar(30) NOT NULL COMMENT '音频角色',
|
||
`oss_id` bigint DEFAULT NULL COMMENT 'OSS文件ID',
|
||
`audio_url` varchar(1000) DEFAULT NULL COMMENT '音频URL',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_audio` (`tenant_id`, `session_id`, `turn_index`, `role`),
|
||
KEY `idx_aihr_practice_audio_session` (`tenant_id`, `session_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练音频';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_audio_upload` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`oss_id` bigint NOT NULL COMMENT 'OSS文件ID',
|
||
`owner_user_id` bigint NOT NULL COMMENT '上传用户ID',
|
||
`owner_identity` varchar(100) NOT NULL COMMENT '上传主体',
|
||
`audio_url` varchar(1000) DEFAULT NULL COMMENT '音频URL',
|
||
`status` varchar(20) NOT NULL DEFAULT 'staged' COMMENT 'staged/bound',
|
||
`expires_time` datetime NOT NULL COMMENT '过期时间',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_audio_upload` (`tenant_id`, `oss_id`),
|
||
KEY `idx_aihr_practice_audio_upload_expire` (`tenant_id`, `status`, `expires_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练音频上传暂存';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_assignment` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`ext_party_id` varchar(100) NOT NULL COMMENT '员工外部主体或手机号',
|
||
`trainee_name` varchar(100) DEFAULT NULL COMMENT '员工姓名',
|
||
`scenario_id` varchar(80) NOT NULL COMMENT '场景ID',
|
||
`scenario_name` varchar(100) DEFAULT NULL COMMENT '场景名称',
|
||
`source` varchar(30) NOT NULL DEFAULT 'manual' COMMENT '来源 daily/camp/retry/manual',
|
||
`reason` varchar(500) DEFAULT NULL COMMENT '派发原因',
|
||
`status` varchar(30) NOT NULL DEFAULT '待训练' COMMENT '状态',
|
||
`answer_text` varchar(1000) DEFAULT NULL COMMENT '每日三题作答',
|
||
`answer_audio_url` varchar(500) DEFAULT NULL COMMENT '每日三题语音回放地址',
|
||
`answer_audio_oss_id` bigint DEFAULT NULL COMMENT '每日三题语音OSS编号',
|
||
`feedback` varchar(1000) DEFAULT NULL COMMENT '每日三题反馈',
|
||
`correct` tinyint DEFAULT NULL COMMENT '是否答对',
|
||
`score` int DEFAULT NULL COMMENT '每日三题得分',
|
||
`score_mode` varchar(30) DEFAULT NULL COMMENT '评分模式 LLM/RULE_FALLBACK',
|
||
`finished_time` datetime DEFAULT NULL COMMENT '完成时间',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_aihr_assignment_party` (`tenant_id`, `ext_party_id`, `status`, `create_time`),
|
||
KEY `idx_aihr_assignment_source` (`tenant_id`, `source`, `status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练派发任务';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_calibration` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`session_id` varchar(100) NOT NULL COMMENT '训练会话ID',
|
||
`reviewer` varchar(100) DEFAULT NULL COMMENT '校准人',
|
||
`original_score` int DEFAULT NULL COMMENT 'AI原始总分',
|
||
`corrected_score` int DEFAULT NULL COMMENT '人工校准总分',
|
||
`corrected_dimensions_json` text DEFAULT NULL COMMENT '校准维度JSON',
|
||
`reason` varchar(500) DEFAULT NULL COMMENT '校准原因',
|
||
`status` varchar(30) DEFAULT '已记录' COMMENT '状态',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_aihr_calibration_session` (`tenant_id`, `session_id`, `create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 评分校准记录';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_scenario` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`scenario_code` varchar(80) NOT NULL COMMENT '场景编码',
|
||
`scenario_name` varchar(100) NOT NULL COMMENT '场景名称',
|
||
`position` varchar(80) NOT NULL COMMENT '岗位',
|
||
`scenario_type` varchar(50) NOT NULL COMMENT '场景类型',
|
||
`project_type` varchar(80) DEFAULT NULL COMMENT '项目类型',
|
||
`difficulty` tinyint DEFAULT 1 COMMENT '难度',
|
||
`customer_persona` varchar(500) DEFAULT NULL COMMENT '业主人设',
|
||
`opening_text` varchar(500) DEFAULT NULL COMMENT '开场白',
|
||
`explicit_need` varchar(300) DEFAULT NULL COMMENT '显性诉求',
|
||
`hidden_need` varchar(300) DEFAULT NULL COMMENT '隐性诉求',
|
||
`irritants` varchar(500) DEFAULT NULL COMMENT '雷点',
|
||
`delights` varchar(500) DEFAULT NULL COMMENT '爽点',
|
||
`sop_refs` varchar(500) DEFAULT NULL COMMENT 'SOP引用',
|
||
`success_criteria` varchar(500) DEFAULT NULL COMMENT '成功条件',
|
||
`strategy` varchar(500) DEFAULT NULL COMMENT '训练策略',
|
||
`goal` varchar(500) DEFAULT NULL COMMENT '训练目标',
|
||
`trainee_name` varchar(100) DEFAULT '张三' COMMENT '默认学员',
|
||
`trust_start` int DEFAULT 60 COMMENT '起始信任',
|
||
`trust_end` int DEFAULT 80 COMMENT '目标信任',
|
||
`rounds_json` text DEFAULT NULL COMMENT '回合seed JSON',
|
||
`enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
||
`sort_order` int DEFAULT 0 COMMENT '排序',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_scenario` (`tenant_id`, `scenario_code`),
|
||
KEY `idx_aihr_practice_scenario_filter` (`tenant_id`, `position`, `scenario_type`, `enabled`, `sort_order`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练场景';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_rubric` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`rubric_code` varchar(100) NOT NULL COMMENT 'Rubric编码',
|
||
`scenario_code` varchar(80) NOT NULL COMMENT '场景编码',
|
||
`rubric_name` varchar(100) NOT NULL COMMENT 'Rubric名称',
|
||
`version` varchar(30) DEFAULT 'v1' COMMENT '版本',
|
||
`enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
||
`description` varchar(500) DEFAULT NULL COMMENT '说明',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_rubric` (`tenant_id`, `rubric_code`),
|
||
KEY `idx_aihr_practice_rubric_scenario` (`tenant_id`, `scenario_code`, `enabled`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练评分标准';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_practice_rubric_dimension` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`rubric_code` varchar(100) NOT NULL COMMENT 'Rubric编码',
|
||
`dimension_code` varchar(50) NOT NULL COMMENT '维度编码',
|
||
`dimension_name` varchar(50) NOT NULL COMMENT '维度名称',
|
||
`weight` decimal(5,2) NOT NULL COMMENT '权重',
|
||
`description` varchar(500) DEFAULT NULL COMMENT '评分说明',
|
||
`sort_order` int DEFAULT 0 COMMENT '排序',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_practice_rubric_dimension` (`tenant_id`, `rubric_code`, `dimension_code`),
|
||
KEY `idx_aihr_practice_rubric_dimension` (`tenant_id`, `rubric_code`, `sort_order`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练评分维度';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_prompt_template` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`code` varchar(80) NOT NULL COMMENT '模板编码',
|
||
`name` varchar(100) NOT NULL COMMENT '模板名称',
|
||
`category` varchar(50) NOT NULL COMMENT '业务分类',
|
||
`output_format` varchar(50) NOT NULL COMMENT '输出文体',
|
||
`system_prompt` text DEFAULT NULL COMMENT '系统提示词',
|
||
`template` text NOT NULL COMMENT '用户提示词模板',
|
||
`variables` varchar(1000) DEFAULT NULL COMMENT '变量清单',
|
||
`version` varchar(30) DEFAULT 'v1' COMMENT '版本',
|
||
`enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
||
`description` varchar(500) DEFAULT NULL COMMENT '说明',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_prompt_template` (`tenant_id`, `code`, `output_format`, `version`),
|
||
KEY `idx_aihr_prompt_template_enabled` (`tenant_id`, `code`, `enabled`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 提示词模板';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_knowledge_gap` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`query_text` varchar(1000) NOT NULL COMMENT '未命中问题',
|
||
`category` varchar(100) DEFAULT NULL COMMENT '知识分类',
|
||
`position` varchar(80) DEFAULT NULL COMMENT '岗位',
|
||
`source` varchar(50) DEFAULT 'knowledge_search' COMMENT '来源',
|
||
`status` varchar(30) DEFAULT '待补充' COMMENT '状态',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_aihr_knowledge_gap_status` (`tenant_id`, `status`, `create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 知识缺口日志';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_sop_answer_review` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`query_text` varchar(1000) NOT NULL COMMENT '问题',
|
||
`category` varchar(100) DEFAULT NULL COMMENT '知识分类',
|
||
`answer_text` varchar(2000) DEFAULT NULL COMMENT '回答',
|
||
`reference_text` varchar(1000) DEFAULT NULL COMMENT '引用',
|
||
`snippet_count` int DEFAULT 0 COMMENT '命中片段数',
|
||
`source` varchar(50) DEFAULT 'knowledge_search' COMMENT '来源',
|
||
`requester_ext_party_id` varchar(100) DEFAULT NULL COMMENT '提问员工外部主体ID',
|
||
`prompt_version` varchar(80) DEFAULT NULL COMMENT '答案生成提示词版本',
|
||
`usable` tinyint DEFAULT NULL COMMENT '人工评审是否可用',
|
||
`reviewer` varchar(100) DEFAULT NULL COMMENT '评审人',
|
||
`note` varchar(500) DEFAULT NULL COMMENT '评审备注',
|
||
`status` varchar(30) DEFAULT '待评审' COMMENT '状态',
|
||
`reviewed_time` datetime DEFAULT NULL COMMENT '评审时间',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_aihr_sop_answer_review_status` (`tenant_id`, `status`, `create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR SOP问答人工评审';
|
||
|
||
CREATE TABLE IF NOT EXISTS `aihr_knowledge_answer_feedback` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||
`query_text` varchar(1000) NOT NULL COMMENT '问题原文',
|
||
`query_norm` varchar(500) NOT NULL COMMENT '规范化问题',
|
||
`fragment_id` bigint NOT NULL COMMENT '知识片段ID',
|
||
`verdict` varchar(10) NOT NULL COMMENT '反馈: up/down',
|
||
`category` varchar(100) DEFAULT NULL COMMENT '知识分类',
|
||
`position` varchar(80) DEFAULT NULL COMMENT '岗位',
|
||
`source` varchar(50) DEFAULT 'knowledge_search' COMMENT '来源',
|
||
`review_id` bigint DEFAULT NULL COMMENT '对应SOP问答评审ID',
|
||
`review_status` varchar(30) DEFAULT '待复核' COMMENT '复核状态',
|
||
`reviewer` varchar(100) DEFAULT NULL COMMENT '复核人',
|
||
`reviewed_time` datetime DEFAULT NULL COMMENT '复核时间',
|
||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_aihr_answer_feedback_pair` (`tenant_id`, `query_norm`, `fragment_id`),
|
||
KEY `idx_aihr_answer_feedback_verdict` (`tenant_id`, `query_norm`, `fragment_id`, `verdict`),
|
||
KEY `idx_aihr_answer_feedback_review` (`tenant_id`, `review_status`, `create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 知识答案反馈';
|
||
|
||
INSERT INTO `aihr_practice_scenario`
|
||
(`tenant_id`, `scenario_code`, `scenario_name`, `position`, `scenario_type`, `project_type`, `difficulty`,
|
||
`customer_persona`, `opening_text`, `explicit_need`, `hidden_need`, `irritants`, `delights`, `sop_refs`,
|
||
`success_criteria`, `strategy`, `goal`, `trainee_name`, `trust_start`, `trust_end`, `rounds_json`, `enabled`, `sort_order`, `create_time`, `update_time`)
|
||
VALUES
|
||
('000000', 'complaint-water', '客服应对投诉', '生活顾问', '投诉处理', '住宅', 2,
|
||
'高情绪、追问进度、质疑服务的业主', '你们说今天处理,到现在都没人联系我,这个车库还怎么停?', '投诉车库积水未处理', '想确认物业是否持续跟进', '被敷衍、只讲流程、推给工程', '先安抚、给责任人、给首次反馈时间', '投诉处理SOP;高情绪沟通话术',
|
||
'先承接情绪,确认点位,给责任人与首次反馈时间,说明升级路径', '仅在漏关键步骤时提示', '训练学员先安抚、再确认诉求,并给出责任人和首次反馈时间。', '张三', 68, 82,
|
||
'[{"customer":"你们说今天处理,到现在都没人联系我,这个车库还怎么停?","coachHint":"命中安抚、责任人、首次反馈时间后继续追问处理承诺。","emotion":76,"trust":75},{"customer":"我不要流程,我要知道如果今天还处理不好怎么办。","coachHint":"补上升级路径和兜底承诺,可以进入评分。","emotion":64,"trust":82}]', 1, 10, NOW(), NOW()),
|
||
('000000', 'complaint-noise', '楼上噪音投诉', '生活顾问', '投诉处理', '住宅', 2,
|
||
'长期受扰、睡眠受影响、对物业不信任的业主', '楼上每天晚上拖椅子,你们物业到底管不管?', '投诉夜间噪音', '希望物业持续跟踪而不是一次性劝说', '让业主自己协商、说没有执法权、不给反馈节点', '先共情睡眠影响、承诺核实、给回访时间', '噪音投诉SOP;邻里协调SOP',
|
||
'记录时间段和房号,说明核实方式,约定首次沟通和回访时间', '提示不要先讲权限边界', '训练生活顾问在权限边界内给出可执行跟进。', '张三', 60, 80,
|
||
'[{"customer":"楼上每天晚上拖椅子,你们物业到底管不管?","coachHint":"先承接睡眠受影响,再收集时间段和楼栋房号。","emotion":78,"trust":66},{"customer":"你别又说去问问,我要看到结果。","coachHint":"给出上门/电话沟通和回访节点,避免空泛承诺。","emotion":70,"trust":80}]', 1, 20, NOW(), NOW()),
|
||
('000000', 'complaint-attitude', '服务态度投诉', '生活顾问', '投诉处理', '住宅', 1,
|
||
'对前台态度不满、要求道歉的业主', '你们前台刚才那是什么态度?我要投诉。', '投诉服务态度', '希望被尊重并看到内部改进', '替同事辩解、追问业主责任、让业主冷静', '先道歉、复述问题、承诺核查和反馈', '服务投诉SOP;客户情绪安抚',
|
||
'表达歉意,记录经过,明确核查责任人和反馈时限', '提示先道歉不等于先定责', '训练生活顾问把道歉、核查和后续反馈拆开说清。', '张三', 62, 82,
|
||
'[{"customer":"你们前台刚才那是什么态度?我要投诉。","coachHint":"先为体验道歉,再记录时间、地点和涉及岗位。","emotion":74,"trust":68},{"customer":"你是不是想包庇你同事?","coachHint":"强调会客观核查并按节点反馈,不做现场定责。","emotion":66,"trust":82}]', 1, 30, NOW(), NOW()),
|
||
('000000', 'fee-collection', '催缴沟通技巧', '生活顾问', '催费/停车费', '住宅', 2,
|
||
'拒绝缴费、质疑服务、要求先整改的业主', '服务做成这样还让我缴费?你先把问题解决了再说。', '物业费催缴', '希望服务问题被负责到底', '压缴费、忽略服务问题、威胁停服务', '承接问题、争议复核、缴费与整改并行', '催缴沟通SOP;费用争议处理',
|
||
'拆分费用和服务问题,说明复核、整改跟进和缴费节点', '提示服务改进与缴费并行', '训练学员把费用沟通和服务整改拆开处理,避免激化争议。', '张三', 61, 76,
|
||
'[{"customer":"服务做成这样还让我缴费?你先把问题解决了再说。","coachHint":"表达方向正确,但要补争议项复核和责任人。","emotion":72,"trust":68},{"customer":"那我怎么知道你不是随便记一下?","coachHint":"补上主管复核和节点同步,可以进入评分。","emotion":66,"trust":76}]', 1, 40, NOW(), NOW()),
|
||
('000000', 'fee-parking', '停车费催缴', '生活顾问', '催费/停车费', '住宅', 2,
|
||
'对停车费涨价敏感、担心权益受损的业主', '停车费又催,我车位入口问题一直没解决,凭什么交?', '停车费缴费提醒', '希望停车体验问题同步解决', '只重复收费规则、否认问题、催得太硬', '先记录停车问题、说明费用依据、给处理节点', '停车费催缴SOP;停车场服务SOP',
|
||
'说明费用依据,记录入口问题,给整改反馈时间和缴费办理方式', '提示先服务后收费说明', '训练收费季停车费沟通时的共情和政策表达。', '张三', 58, 78,
|
||
'[{"customer":"停车费又催,我车位入口问题一直没解决,凭什么交?","coachHint":"先确认入口问题,再说明费用依据和复核方式。","emotion":75,"trust":65},{"customer":"你说的优惠和截止时间到底是什么?","coachHint":"把折扣、截止时间和办理路径一次说清。","emotion":62,"trust":78}]', 1, 50, NOW(), NOW()),
|
||
('000000', 'fee-prepay-discount', '预交折扣沟通', '生活顾问', '催费/停车费', '住宅', 2,
|
||
'精打细算、关注优惠边界和历史欠费的业主', '你们说预交有折扣,那我以前欠的怎么算?', '预交折扣咨询', '希望弄清优惠、欠费和办理路径', '含糊优惠口径、承诺无法兑现、回避欠费', '先说明以系统账单为准、再给办理路径', '预交折扣SOP;历史欠费沟通',
|
||
'解释预交折扣、历史欠费处理口径和办理材料', '提示金额必须以系统账单为准', '训练收费季预交优惠和历史欠费的稳妥表达。', '张三', 65, 84,
|
||
'[{"customer":"你们说预交有折扣,那我以前欠的怎么算?","coachHint":"先说明金额以系统账单为准,避免口头承诺具体金额。","emotion":60,"trust":72},{"customer":"我要今天就知道能省多少钱。","coachHint":"给出查询路径和反馈时间,不现场编金额。","emotion":58,"trust":84}]', 1, 60, NOW(), NOW()),
|
||
('000000', 'repair-leak-followup', '漏水报修跟进', '生活顾问', '报修跟进', '住宅', 2,
|
||
'家中受损、担心维修拖延和赔偿的业主', '我家天花还在滴水,报修两天了怎么没人来?', '漏水报修跟进', '希望明确上门时间和后续责任', '只说已派单、不给时限、回避损失记录', '确认安全、给上门时间、记录受损情况', '报修跟进SOP;漏水应急SOP',
|
||
'确认漏水现状,安排上门节点,记录损失并同步责任人', '提示先排安全风险', '训练报修跟进中的时限、责任人和证据记录。', '张三', 57, 81,
|
||
'[{"customer":"我家天花还在滴水,报修两天了怎么没人来?","coachHint":"先确认是否仍在漏水和用电安全,再给上门安排。","emotion":77,"trust":64},{"customer":"如果家具泡坏了谁负责?","coachHint":"说明先记录现场和照片,后续按责任认定处理。","emotion":69,"trust":81}]', 1, 70, NOW(), NOW()),
|
||
('000000', 'repair-elevator-delay', '电梯故障跟进', '生活顾问', '报修跟进', '住宅', 3,
|
||
'住高层、老人出行受影响、要求明确恢复时间的业主', '电梯坏了一上午,老人怎么下楼?你们给个准话。', '电梯故障跟进', '希望知道预计恢复和临时协助', '只说维保在路上、没有临时方案、不给播报', '先共情出行影响、说明维保进展、提供临时协助', '电梯故障SOP;应急协助SOP',
|
||
'说明维保进展、预计反馈时间、老人出行临时协助和公告节奏', '提示不要承诺未经确认的恢复时间', '训练高影响报修的进展播报和临时协助。', '张三', 55, 80,
|
||
'[{"customer":"电梯坏了一上午,老人怎么下楼?你们给个准话。","coachHint":"先承接老人出行影响,再说明维保进展和下一次反馈。","emotion":80,"trust":62},{"customer":"你就说几点能好。","coachHint":"不能编恢复时间,要承诺确认后反馈并给临时协助。","emotion":72,"trust":80}]', 1, 80, NOW(), NOW()),
|
||
('000000', 'repair-public-light', '公区照明维修', '生活顾问', '报修跟进', '住宅', 1,
|
||
'晚上回家担心安全、希望小问题快处理的业主', '楼道灯坏了三天,晚上黑漆漆的。', '公区照明维修', '希望确认维修时间', '轻视小问题、不给工单、让业主等', '记录点位、给工单和处理时限', '公区维修SOP;夜间安全巡查',
|
||
'记录楼栋楼层点位,说明派单和反馈时间', '提示给出工单闭环', '训练轻量报修也要闭环表达。', '张三', 66, 86,
|
||
'[{"customer":"楼道灯坏了三天,晚上黑漆漆的。","coachHint":"记录准确点位,并给派单和预计反馈时间。","emotion":62,"trust":76},{"customer":"别又登记完没下文。","coachHint":"补充工单编号或责任人和回访时间。","emotion":56,"trust":86}]', 1, 90, NOW(), NOW()),
|
||
('000000', 'emergency-water-outage', '突发停水求助', '生活顾问', '突发求助', '住宅', 2,
|
||
'家中有老人小孩、对突发停水焦虑的业主', '家里突然没水了,孩子还要洗澡,怎么回事?', '突发停水求助', '希望知道原因和临时供水办法', '不知道原因就乱猜、只让等待、不给通知渠道', '先核实范围、同步排查、提供临时取水信息', '停水应急SOP;突发通知SOP',
|
||
'核实是否区域性停水,说明排查进展、通知渠道和临时方案', '提示未知原因时说排查中', '训练突发问题的原因核实和临时安置表达。', '张三', 60, 83,
|
||
'[{"customer":"家里突然没水了,孩子还要洗澡,怎么回事?","coachHint":"先核实楼栋范围,不要猜测原因。","emotion":73,"trust":68},{"customer":"那现在怎么办?总不能一直等。","coachHint":"给临时取水点或下一次公告时间。","emotion":65,"trust":83}]', 1, 100, NOW(), NOW()),
|
||
('000000', 'emergency-elder-fall', '老人摔倒求助', '生活顾问', '突发求助', '住宅', 3,
|
||
'情绪慌张、需要立即协助的家属', '我爸在楼下摔倒了,你们快来帮忙!', '老人摔倒求助', '希望物业迅速到场并联系救助', '先追责、慢吞吞登记、忽略急救安全', '先确认位置和意识状态、派人到场、建议急救电话', '突发救助SOP;急救协助SOP',
|
||
'确认位置和安全状态,派人到场,提醒拨打急救电话并联系家属', '提示物业协助不替代专业急救', '训练高紧急求助中的优先级和措辞。', '张三', 52, 79,
|
||
'[{"customer":"我爸在楼下摔倒了,你们快来帮忙!","coachHint":"先问清准确位置和意识状态,同时安排人员到场。","emotion":88,"trust":60},{"customer":"你们到了能不能处理?","coachHint":"说明会协助保护现场和联系急救,不替代医生判断。","emotion":78,"trust":79}]', 1, 110, NOW(), NOW()),
|
||
('000000', 'emergency-security', '陌生人尾随求助', '生活顾问', '突发求助', '住宅', 3,
|
||
'夜间回家、感到被尾随、需要安全协助的业主', '我刚进小区感觉有人跟着我,你们保安在哪里?', '安全求助', '希望马上获得陪同和安全确认', '要求业主自己确认、轻描淡写、泄露巡逻盲区', '先确认位置、安排安保、保持通话或引导到安全点', '安全巡逻SOP;突发求助SOP',
|
||
'确认实时位置,安排安保接应,引导到明亮公共区域并保留记录', '提示不要透露安防盲区', '训练夜间安全求助的接警式沟通。', '张三', 54, 82,
|
||
'[{"customer":"我刚进小区感觉有人跟着我,你们保安在哪里?","coachHint":"先确认当前位置和是否安全,安排安保接应。","emotion":86,"trust":62},{"customer":"我要不要直接回家?","coachHint":"引导到明亮公共区域或岗亭,保持联系。","emotion":76,"trust":82}]', 1, 120, NOW(), NOW()),
|
||
('000000', 'service-promotion-needs', '增值服务需求识别与推介', '生活顾问', '服务推介/增值', '住宅', 2,
|
||
'关注生活品质、但对营销话术敏感的业主', '最近家里老人要长期出门,社区有没有更方便的生活服务?', '识别真实需求并介绍适配的增值服务', '希望得到有用建议而不是被强行推销', '不问需求就罗列产品、夸大承诺、把推介当成收费催促', '先确认家庭场景和预算,再介绍适配服务并说明价格与取消规则', '增值服务推介SOP;客户需求识别SOP',
|
||
'先提问确认需求,再说明服务适用范围、价格口径和后续咨询路径', '提示不得编造优惠、效果或未确认的服务承诺', '训练生活顾问在真实需求基础上完成合规的增值服务介绍。', '张三', 63, 84,
|
||
'[{"customer":"我不喜欢被推销,你先说这个服务到底能解决什么问题。","coachHint":"先复述业主需求,再说明适用场景,不要直接报一串产品。","emotion":68,"trust":72},{"customer":"那具体多少钱?可以随时取消吗?","coachHint":"金额和取消规则必须以正式价目与合同口径为准,不能现场编造。","emotion":58,"trust":84}]', 1, 130, NOW(), NOW()),
|
||
('000000', 'daily-service-followup', '日常服务主动回访', '生活顾问', '日常服务', '住宅', 1,
|
||
'刚办理过服务、希望有人持续跟进的业主', '上次你们帮我处理完了,我想知道后面还会有人跟进吗?', '完成日常服务回访与问题闭环', '希望被持续关注,避免问题处理后无人回应', '只说已经完成、不给回访节点、不记录新的服务需求', '确认结果是否满足、记录新问题、约定回访节点并留下服务记录', '日常服务回访SOP;服务闭环SOP',
|
||
'确认满意度和遗留问题,明确责任人、回访时间和记录方式', '提示已完成不等于已闭环,必须确认业主感受和后续动作', '训练生活顾问把一次性服务延伸为有记录、有节点的日常回访。', '张三', 66, 85,
|
||
'[{"customer":"事情是处理了,但我不知道以后有问题找谁。","coachHint":"确认当前结果和遗留问题,给出明确联系人和回访节点。","emotion":62,"trust":74},{"customer":"那你们会记下来吗?别下次又要从头说。","coachHint":"说明服务记录和后续跟进方式,避免只做口头承诺。","emotion":54,"trust":85}]', 1, 140, NOW(), NOW())
|
||
ON DUPLICATE KEY UPDATE
|
||
`scenario_name` = VALUES(`scenario_name`),
|
||
`position` = VALUES(`position`),
|
||
`scenario_type` = VALUES(`scenario_type`),
|
||
`project_type` = VALUES(`project_type`),
|
||
`difficulty` = VALUES(`difficulty`),
|
||
`customer_persona` = VALUES(`customer_persona`),
|
||
`opening_text` = VALUES(`opening_text`),
|
||
`explicit_need` = VALUES(`explicit_need`),
|
||
`hidden_need` = VALUES(`hidden_need`),
|
||
`irritants` = VALUES(`irritants`),
|
||
`delights` = VALUES(`delights`),
|
||
`sop_refs` = VALUES(`sop_refs`),
|
||
`success_criteria` = VALUES(`success_criteria`),
|
||
`strategy` = VALUES(`strategy`),
|
||
`goal` = VALUES(`goal`),
|
||
`trainee_name` = VALUES(`trainee_name`),
|
||
`trust_start` = VALUES(`trust_start`),
|
||
`trust_end` = VALUES(`trust_end`),
|
||
`rounds_json` = VALUES(`rounds_json`),
|
||
`enabled` = VALUES(`enabled`),
|
||
`sort_order` = VALUES(`sort_order`),
|
||
`update_time` = VALUES(`update_time`);
|
||
|
||
INSERT INTO `aihr_practice_rubric`
|
||
(`tenant_id`, `rubric_code`, `scenario_code`, `rubric_name`, `version`, `enabled`, `description`, `create_time`, `update_time`)
|
||
SELECT
|
||
`tenant_id`,
|
||
CONCAT('rubric-', `scenario_code`),
|
||
`scenario_code`,
|
||
CONCAT(`scenario_name`, ' Rubric'),
|
||
'v1',
|
||
1,
|
||
'生活顾问试点五维评分标准',
|
||
NOW(),
|
||
NOW()
|
||
FROM `aihr_practice_scenario`
|
||
WHERE `tenant_id` = '000000'
|
||
ON DUPLICATE KEY UPDATE
|
||
`rubric_name` = VALUES(`rubric_name`),
|
||
`scenario_code` = VALUES(`scenario_code`),
|
||
`enabled` = VALUES(`enabled`),
|
||
`description` = VALUES(`description`),
|
||
`update_time` = VALUES(`update_time`);
|
||
|
||
INSERT INTO `aihr_practice_rubric_dimension`
|
||
(`tenant_id`, `rubric_code`, `dimension_code`, `dimension_name`, `weight`, `description`, `sort_order`, `create_time`, `update_time`)
|
||
SELECT
|
||
r.`tenant_id`,
|
||
r.`rubric_code`,
|
||
d.`dimension_code`,
|
||
d.`dimension_name`,
|
||
d.`weight`,
|
||
d.`description`,
|
||
d.`sort_order`,
|
||
NOW(),
|
||
NOW()
|
||
FROM `aihr_practice_rubric` r
|
||
JOIN `aihr_practice_scenario` s
|
||
ON s.`tenant_id` = r.`tenant_id` AND s.`scenario_code` = r.`scenario_code`
|
||
JOIN (
|
||
SELECT 'task_completion' AS `dimension_code`, '任务完成度' AS `dimension_name`, 0.40 AS `weight`, '问题解决有效性、工单闭环率、首解率、SOP关键点执行率' AS `description`, 10 AS `sort_order`
|
||
UNION ALL SELECT 'standardization', '话术规范性', 0.25, '流程完整性、法规引用准确性、沟通合规、用语专业度', 20
|
||
UNION ALL SELECT 'emotion', '情绪管理能力', 0.20, '共情、语速语气控制、业主情绪引导安抚有效性', 30
|
||
UNION ALL SELECT 'response_timeliness', '响应时效', 0.10, '首响时长、处理周期、跟进频率', 40
|
||
UNION ALL SELECT 'marketing', '增值转化潜力', 0.05, '活动引导、产品推介时机与成功率', 50
|
||
) d
|
||
WHERE r.`tenant_id` = '000000'
|
||
ON DUPLICATE KEY UPDATE
|
||
`dimension_name` = VALUES(`dimension_name`),
|
||
`weight` = VALUES(`weight`),
|
||
`description` = VALUES(`description`),
|
||
`sort_order` = VALUES(`sort_order`),
|
||
`update_time` = VALUES(`update_time`);
|
||
|
||
INSERT INTO `aihr_prompt_template`
|
||
(`tenant_id`, `code`, `name`, `category`, `output_format`, `system_prompt`, `template`, `variables`, `version`, `enabled`, `description`, `create_time`, `update_time`)
|
||
VALUES
|
||
('000000', 'summary_card', 'SOP总结卡', 'knowledge', 'json_card',
|
||
'你是物业一线员工的SOP总结卡助手。只返回JSON,不要markdown。固定输出title、steps、objections、scripts、reminders。steps必须且只包含问题、建议、标准三项。',
|
||
'员工问题:{{queryText}}。知识片段:{{context}}。请生成可拆分展示的总结卡,问题写员工当前要处理的核心问题,建议写下一步动作,标准写SOP依据和红线。',
|
||
'queryText,context', 'v1', 1, '总结卡固定问题/建议/标准三段式', NOW(), NOW()),
|
||
('000000', 'sop_answer', 'SOP问答直给', 'knowledge', 'json_answer',
|
||
'你是物业一线员工的SOP助手。只返回 JSON,不要 markdown。字段固定为 answer, keyPoints, cautions。answer 必须结论先行,60字内直接告诉员工现在怎么做;keyPoints 必须是3到5条可执行步骤,每条以「一、」「二、」「三、」「四、」「五、」开头,包含责任人、动作、时限或留痕要求;cautions 是0到3条注意事项或红线。引用片段由系统后置展示,不要在 answer 中堆大段原文。硬约束:只能基于给定片段内容作答,片段中没有的信息不得编造;若片段无法回答问题,answer 固定为「未在已入库 SOP 中找到明确依据」且 keyPoints 为空数组。',
|
||
'员工的问题:{{queryText}}\n\n检索命中的 SOP 片段:\n{{context}}',
|
||
'queryText,context', 'v1', 1, 'SOP问答结论先行+编号步骤+引用后置', NOW(), NOW()),
|
||
('000000', 'mentor_rewrite', '导师改写', 'practice', 'text',
|
||
'你是物业管家带教师傅。只基于本场对话给出一段更稳妥的话术,不评价人格。',
|
||
'场景:{{scenarioName}}。目标:{{goal}}。员工原话:{{traineeText}}。请改写成可直接说出口的版本,80字以内。',
|
||
'scenarioName,goal,traineeText', 'v1', 1, '训练后标杆话术生成', NOW(), NOW()),
|
||
('000000', 'review_annotation', '逐句标注', 'practice', 'json_annotation',
|
||
'你是物业AI陪练复盘教练。只返回JSON数组,每项包含quote、problem、rewrite、sopPoint。',
|
||
'场景:{{scenarioName}}。Rubric:{{rubric}}。对话:{{dialogue}}。请只标注员工关键句,指出问题、推荐改写和命中或漏掉的SOP点。',
|
||
'scenarioName,rubric,dialogue', 'v1', 1, 'finish后逐句标注', NOW(), NOW()),
|
||
('000000', 'prep_card', '训练前预习卡', 'practice', 'json_prep',
|
||
'你是物业培训教练。只返回JSON,字段固定为keyPoints、redLines、scripts。',
|
||
'场景:{{scenarioName}}。SOP引用:{{sopRefs}}。成功条件:{{successCriteria}}。请生成训练前预习卡:要点3条、红线3条、可说话术2条。',
|
||
'scenarioName,sopRefs,successCriteria', 'v1', 1, '训练前卡固定三栏结构', NOW(), NOW()),
|
||
('000000', 'supervision_image_analysis_maintenance', '图片督导分析', 'supervision', 'json_card',
|
||
'你是物业现场督导助手。只返回JSON,字段固定为problem、suggestion、standard。',
|
||
'图片/视频描述:{{visualText}}。相关标准:{{standard}}。请按问题、建议、标准三段输出,不要扩写无依据内容。',
|
||
'visualText,standard', 'v1', 1, '督导图片分析三段式', NOW(), NOW())
|
||
ON DUPLICATE KEY UPDATE
|
||
`name` = VALUES(`name`),
|
||
`category` = VALUES(`category`),
|
||
`system_prompt` = VALUES(`system_prompt`),
|
||
`template` = VALUES(`template`),
|
||
`variables` = VALUES(`variables`),
|
||
`enabled` = VALUES(`enabled`),
|
||
`description` = VALUES(`description`),
|
||
`update_time` = VALUES(`update_time`);
|