feat: 初始化考培练系统项目

- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
111
2026-01-24 19:33:28 +08:00
commit 998211c483
1197 changed files with 228429 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
-- 陪练分析报告功能数据库表
-- 创建时间2025-10-13
-- 1. 陪练会话表
CREATE TABLE IF NOT EXISTS `practice_sessions` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`session_id` VARCHAR(50) NOT NULL UNIQUE COMMENT '会话ID如PS006',
`user_id` INT NOT NULL COMMENT '学员ID',
`scene_id` INT COMMENT '场景ID',
`scene_name` VARCHAR(200) COMMENT '场景名称',
`scene_type` VARCHAR(50) COMMENT '场景类型phone/face/complaint等',
`conversation_id` VARCHAR(100) COMMENT 'Coze对话ID',
-- 会话时间信息
`start_time` DATETIME NOT NULL COMMENT '开始时间',
`end_time` DATETIME COMMENT '结束时间',
`duration_seconds` INT DEFAULT 0 COMMENT '时长(秒)',
`turns` INT DEFAULT 0 COMMENT '对话轮次',
`status` VARCHAR(20) DEFAULT 'in_progress' COMMENT '状态in_progress/completed/canceled',
-- 审计字段
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` BOOLEAN DEFAULT FALSE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (scene_id) REFERENCES practice_scenes(id) ON DELETE SET NULL,
INDEX idx_user_id (user_id),
INDEX idx_session_id (session_id),
INDEX idx_start_time (start_time),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练会话表';
-- 2. 对话记录表
CREATE TABLE IF NOT EXISTS `practice_dialogues` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`session_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
`speaker` VARCHAR(20) NOT NULL COMMENT '说话人user/ai',
`content` TEXT NOT NULL COMMENT '对话内容',
`timestamp` DATETIME NOT NULL COMMENT '时间戳',
`sequence` INT NOT NULL COMMENT '顺序号从1开始',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_session_id (session_id),
INDEX idx_sequence (session_id, sequence)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练对话记录表';
-- 3. 分析报告表
CREATE TABLE IF NOT EXISTS `practice_reports` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`session_id` VARCHAR(50) NOT NULL UNIQUE COMMENT '会话ID',
-- AI分析结果JSON存储
`total_score` INT COMMENT '综合得分0-100',
`score_breakdown` JSON COMMENT '分数细分:开场技巧、需求挖掘等',
`ability_dimensions` JSON COMMENT '能力维度:沟通表达、倾听理解等',
`dialogue_review` JSON COMMENT '对话复盘(标注亮点话术/金牌话术)',
`suggestions` JSON COMMENT '改进建议',
-- Dify工作流信息
`workflow_run_id` VARCHAR(100) COMMENT 'Dify工作流运行ID',
`task_id` VARCHAR(100) COMMENT 'Dify任务ID',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_session_id (session_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练分析报告表';
-- 验证表创建
SELECT
TABLE_NAME,
TABLE_ROWS,
TABLE_COMMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'kaopeilian'
AND TABLE_NAME IN ('practice_sessions', 'practice_dialogues', 'practice_reports');