【AI培训中台项目介绍】
AI智能培训中台 – 产品说明与技术设计文档
版本:v1.0 | 日期:2026-04-10 | 作者:田旭旭
一、产品概述
1.1 产品定位
AI智能培训中台(YQG AI Training Center)是一款面向金融催收行业的AI驱动全场景培训平台。平台通过大语言模型(LLM)模拟真实催收场景中的借款人角色,为催收员提供沉浸式的对话陪练、智能评分、个性化学习路径等能力,实现"AI替代传统师傅带徒弟"的培训模式革新。
1.2 核心价值
| 维度 | 传统培训痛点 | AI培训中台方案 |
|---|---|---|
| 成本 | 资深员工带教成本高,占用产能 | AI 24小时可用,零边际成本陪练 |
| 标准化 | 带教质量因人而异 | 统一Prompt+评分规则,输出一致 |
| 效率 | 新员工上手周期长(2-4周) | 高频反复练习+即时反馈,缩短50%+ |
| 覆盖 | 场景单一,难以覆盖极端case | 多剧本多角色,覆盖首催/复催/投诉等全场景 |
| 数据 | 培训效果难量化 | 多维度评分+数据看板,效果可追踪 |
1.3 目标用户
- 培训管理员:配置剧本、培训计划、评分规则,查看数据看板
- 催收员(学员):执行陪练任务,查看评分报告,持续改进
- AI工程师:管理Prompt模板、评测实验、LLM调用监控
- 业务运营:通过数据看板监控培训ROI
二、产品功能全景
2.1 功能架构图
┌─────────────────────────────────────────────────────────────────────────┐
│ AI 智能培训中台 │
├──────────────┬──────────────┬───────────────┬──────────────────────────┤
│ 培训管理 │ 内容管理 │ AI 工程 │ 系统管理 │
├──────────────┼──────────────┼───────────────┼──────────────────────────┤
│ · 培训计划 │ · 剧本管理 │ · Prompt管理 │ · 用户管理 │
│ · 数据看板 │ · AI角色库 │ · Prompt调试 │ · 权限控制 │
│ · 全部练习 │ · 话术知识库 │ · DAG编排画布 │ · 通用配置 │
│ · 练习任务 │ │ · 评测中心 │ │
│ 看板 │ │ · LLM调用日志 │ │
│ · 员工学习 │ │ · RAG调用历史 │ │
│ 看板 │ │ │ │
├──────────────┴──────────────┴───────────────┴──────────────────────────┤
│ 学员门户 │
├──────────────┬──────────────┬───────────────┬──────────────────────────┤
│ · 学习首页 │ · 我的学习计划 │ · AI陪练对话 │ · 练习报告 │
│ · 排行榜 │ · 剧本详情 │ · 语音/文字输入 │ · 历史记录 │
└──────────────┴──────────────┴───────────────┴──────────────────────────┘
2.2 核心功能模块详述
2.2.1 剧本管理(Script Management)
剧本是培训的基础内容单元,定义了一次陪练对话的完整上下文。
两种对话模式:
- 开放式(OPEN):无固定流程,学员自由发挥,AI根据角色设定灵活应对。适合综合能力评估。
- 流程式(PROCESS):预设多个目标节点(如自我介绍→身份核实→共情→方案提出→异议处理→微信邀约→礼貌挂机),学员需按序推进。适合标准化技能训练。
剧本组成要素:
| 要素 | 说明 |
|---|---|
| 基本信息 | 剧本名称、场景描述、对话模式 |
| AI角色 | 关联的借款人角色(性格、背景、年龄) |
| 对话目标 | 开放式为整体目标,流程式为多个分步目标 |
| 目标达成/失败条件 | 每个目标的可观测、原子化判定条件 |
| 行为策略 | 每个目标下AI的触发行为和回应策略 |
| 过程反馈 | 学员特定行为时的即时系统反馈 |
| 标准话术 | 业务标准应答参考 |
| 评分规则 | 多维度评分体系(满分100分) |
| 禁用词 | 违规词汇列表及扣分规则 |
AI辅助创建流程(8步DAG流水线):
场景润色 → 问卷确认 → 角色生成 → 剧本生成 → 目标生成 → 评分规则生成 → 对话模拟 → 评分验证
2.2.2 AI陪练对话(Practice Session)
核心交互场景,学员与AI角色进行实时对话练习。
对话流程:
创建会话 → AI发送开场白 → 学员回复(文字/语音)
↓
[并行触发]
├── AI回复生成(LLM对话)
├── 话术润色(实时点评学员回复)
├── 灵感提示(推荐下一句话术)
├── 目标判定(流程式:是否达成当前目标)
└── 结束判定(开放式:是否满足结束条件)
↓
AI回复 + TTS语音 → 学员继续回复
↓
对话结束 → 触发AI评分 → 生成练习报告
关键特性:
- 实时灵感提示:学员卡壳时,AI基于RAG知识库+标准话术推荐回复
- 实时话术润色:每轮对话后,AI以"教练"视角点评并提供改进版话术
- 语音支持:WebSocket + 阿里云NLS实现ASR(语音转文字)和TTS(文字转语音)
- 目标追踪:流程式对话实时展示目标进度,达成/失败即时通知
- 屏幕切换限制:防止学员切屏查阅资料(考试模式)
- 倒计时机制:限制每轮回复时间,模拟真实通话压力
2.2.3 AI智能评分(Scoring System)
评分架构 – MapReduce模式:
Map阶段:每个评分维度独立调用LLM打分(可并行)
↓
Reduce阶段:汇总各维度分数,生成综合评价和改进建议
评分三级对齐原则:
- Rule A(80%+):学员话术覆盖了标准话术的核心要点
- Rule B(50%起):标准话术未要求的内容,不额外扣分
- Rule C(50%以下):严重偏离且有具体违规行为,必须引用原文
评分输出:
- 各维度得分及详细说明(含对话原文引用)
- 目标达成情况展示
- 综合评价(HTML折叠格式)
- 改进建议("你说了X → 问题是Y → 建议改为Z"格式)
2.2.4 培训计划(Training Plan)
两种计划模式:
- 周期模式(CYCLE):每月/每周定期轮训
- 日期范围模式(DATE_RANGE):固定时间段内的一次性培训
计划组成:
- 多阶段(Stage)结构,支持顺序解锁和自由访问
- 每阶段包含多个剧本,可配置练习/考试模式
- 学员分配(支持组织架构导入)
- 通过分数线、考试次数上限、灵感提示开关、屏幕切换限制等精细配置
2.2.5 Prompt工程中心
Prompt版本管理:
- 模板内容 + 模型配置(模型名、温度)版本化存储
- 状态生命周期:Draft → Published → Active
- 配置中心热切换(DynamicProperties覆盖classpath模板)
Prompt调试:
- 在线输入变量执行测试
- AI建议输入变量
- 人工标注(满意/不满意)
- AI辅助Prompt修订(对比Diff展示)
- 调试历史记录追溯
DAG编排画布:
- 可视化展示8步Prompt DAG流水线
- 支持选择起止节点部分执行
- 节点级版本覆盖
- 中间结果传递与查看
评测中心(Eval Center):
- Golden数据集管理
- 自动评测实验(Dokimos LLM-as-Judge框架)
- 5维度10分制评分:格式正确性(20%) + 指令遵循(25%) + 内容质量(30%) + 一致性(15%) + 安全性(10%)
- A/B实验对比
- 多次重复执行衡量稳定性(方差统计)
2.2.6 数据看板
三大看板:
- 练习任务看板:总览卡片、剧本统计、学员排行榜(练习次数/时长/平均分)
- 员工学习看板:完成率/参与率、部门排行、计划/剧本/维度诊断
- 剧本使用看板:剧本使用频次、部门平均分、使用/学习/分数排行
可视化组件:
- ECharts 6 部门率对比图(水平柱状图)
- 饼图(完成率分布)
- 排行榜柱状图(多色调色板)
- 全部支持Excel导出
2.2.7 知识库与RAG
知识库类型:
| 类型 | 说明 |
|---|---|
| CUSTOM | 自定义Q&A知识库 |
| SCRIPT_STANDARD_QA | 剧本标准话术Q&A |
| SCRIPT_KNOWLEDGE | 剧本背景知识 |
| SCRIPT_TRANSITIONAL_REPLY | 剧本目标过渡回复Q&A |
两种交互模式:
- AGENT_ASK_AI_REPLY:催收员提问场景的标准回复
- AI_ASK_AGENT_REPLY:借款人提问时催收员应如何回复
RAG集成:
- 对话生成、灵感提示、话术润色、评分建议均注入RAG检索结果
- 优先级:RAG知识 > 标准话术 > 行为策略 > 兜底策略库
三、技术架构设计
3.1 系统架构总览
┌──────────────────────────────────────────────────────────────────────────┐
│ 用户层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 管理员PC端 │ │ 学员PC端 │ │ 学员移动端 │ │
│ │ (Vue 3) │ │ (Vue 3) │ │ (H5适配) │ │
│ └──────┬───────┘ └──────┬──────┘ └──────┬───────┘ │
│ │ │ │ │
│ └───────────────────┼──────────────────┘ │
│ │ │
├─────────────────────────────┼─────────────────────────────────────────────┤
│ 接入层 │
│ ┌────────────┴──────────────┐ │
│ │ Nginx / API Gateway │ │
│ │ (SSO + Token双认证) │ │
│ └────────────┬──────────────┘ │
│ │ │
├─────────────────────────────┼─────────────────────────────────────────────┤
│ 应用层 │
│ ┌──────────────────────────┴──────────────────────────────────┐ │
│ │ Spring Boot 2.7 + JDK 21 │ │
│ │ ┌─────────┐ ┌──────────┐ ┌───────────┐ ┌────────────┐ │ │
│ │ │ Admin │ │ API │ │ Scheduler │ │ Consumer │ │ │
│ │ │ (REST) │ │ (RPC) │ │ (YJob) │ │ (Kafka) │ │ │
│ │ └────┬─────┘ └────┬─────┘ └─────┬─────┘ └─────┬──────┘ │ │
│ │ └─────────────┼─────────────┼─────────────┘ │ │
│ │ │ │ │ │
│ │ ┌──────┴──────┐ │ │ │
│ │ │ Core Module │ │ │ │
│ │ │ (业务逻辑) │ │ │ │
│ │ └──────┬──────┘ │ │ │
│ └─────────────────────┼─────────────┘ │ │
│ │ │ │
├────────────────────────┼────────────────────────────────────────┤ │
│ AI 服务层 │ │
│ ┌─────────────────────┴──────────────────────────────────┐ │ │
│ │ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │
│ │ │PracticeLLM │ │ ScoreLLM │ │ ScriptLLM │ │ │ │
│ │ │Service │ │ Service │ │ Service │ │ │ │
│ │ │(陪练对话编排) │ │ (评分规则生成) │ │ (剧本生成) │ │ │ │
│ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │
│ │ └─────────────────┼──────────────────┘ │ │ │
│ │ │ │ │ │
│ │ ┌──────────┴──────────┐ │ │ │
│ │ │ LangChainChatService │ │ │ │
│ │ │ (统一LLM调用封装) │ │ │ │
│ │ └──────────┬──────────┘ │ │ │
│ │ │ │ │ │
│ │ ┌──────────┴──────────┐ │ │ │
│ │ │ ChatModelFactory │ │ │ │
│ │ │ (模型路由+缓存) │ │ │ │
│ │ └──────────┬──────────┘ │ │ │
│ └───────────────────────────┼──────────────────────────────┘ │ │
│ │ │ │
├──────────────────────────────┼───────────────────────────────────┤ │
│ 模型层 │ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
│ │ GPT-5.4 │ │DeepSeek │ │ Qwen3 │ │ Kimi K2 │ │ │
│ │ (Azure) │ │ V3.2 │ │ 系列 │ │ │ │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │
│ │ │
├──────────────────────────────────────────────────────────────────┤ │
│ 数据层 │ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
│ │ MySQL 8 │ │ Redis │ │ Kafka │ │ RAG │ │ │
│ │ (JOOQ) │ │ (缓存+锁) │ │ (消息队列) │ │ Gateway │ │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │
│ │ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
│ │ 阿里云NLS │ │ InfluxDB │ │ 七牛云 │ │ │
│ │ (ASR/TTS) │ │ (监控) │ │ (文件存储) │ │ │
│ └───────────┘ └───────────┘ └───────────┘ │ │
└──────────────────────────────────────────────────────────────────┘ │
3.2 技术栈明细
3.2.1 后端技术栈
| 类别 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 语言 | Java | 21 | 主开发语言,启用虚拟线程等新特性 |
| 框架 | Spring Boot | 2.7.x | Web框架 + 依赖注入 |
| 云原生 | Spring Cloud | - | 服务治理 |
| ORM | JOOQ | 3.18.7 | 类型安全SQL,代码生成 |
| 数据库迁移 | Flyway | 9.22.3 | Schema版本管理(36个迁移文件) |
| LLM框架 | LangChain4j | 1.12.2 | 统一LLM调用抽象 |
| LLM评测 | Dokimos | - | LLM-as-Judge评测框架 |
| 语音 | 阿里云NLS SDK | 2.2.19 | ASR(语音识别)+ TTS(语音合成) |
| 消息队列 | Kafka | - | 异步事件处理 |
| 缓存 | Redis | - | 分布式缓存 + 锁 + WebSocket广播 |
| 调度 | YJob | - | 分布式定时任务 |
| HTTP | OkHttp | 4.9.0 | 外部API调用 |
| NLP | HanLP | - | 中文自然语言处理 |
| 工具 | Hutool | 5.7.12 | 通用工具集 |
| 认证 | Chidori SSO | - | 内部员工单点登录 |
3.2.2 前端技术栈
| 类别 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 框架 | Vue 3 | 3.x | Composition API + TSX |
| 构建 | Max (Vite) | - | 内部构建工具链 |
| UI | Ant Design Vue | 4.2.1 | 组件库 |
| 图表 | ECharts | 6.0 | 数据可视化 |
| 状态 | Pinia | - | 全局状态管理 |
| HTTP | Axios | - | API请求封装 |
| 拖拽 | vuedraggable | - | 剧本/阶段排序 |
| Diff | diff | - | Prompt版本对比 |
| Markdown | markdown-it | 14.1.1 | Prompt内容渲染 |
| 样式 | LESS | - | CSS预处理 |
| 语言 | TypeScript | - | 类型安全 |
3.3 后端模块架构
3.3.1 Maven多模块设计
training-center-parent (pom.xml)
├── training-center-common # 共享工具类、异常定义
├── training-center-client # RPC客户端接口
├── training-center-core # 核心业务:Service + Model + 数据库迁移 + JOOQ生成
├── training-center-admin # HTTP REST API(主服务入口)
├── training-center-api # 内部RPC接口
├── training-center-scheduler # YJob定时任务
└── training-center-consumer # Kafka消费者
依赖规则(严格单向):
- 所有Web模块 → core + common
- core → 仅依赖 common
- 模块间禁止交叉引用
3.3.2 分层架构
Controller层 (training-center-admin)
│ 25+ Controller包,REST风格 /admin/training/{module}
│ 所有接口 @PreAuthorize 权限控制
│ 独立VO类(请求/响应)
▼
Service层 (training-center-core)
│ 33+ Service包
│ PracticeLLMService (841行) -- 对话编排核心
│ LangChainChatService (457行) -- LLM调用封装(含多策略JSON解析管道)
│ ChatModelFactory (197行) -- 模型路由
│ PromptDynamicService (535行) -- Prompt模板管理
▼
Model层 (training-center-core)
│ JOOQ生成的Record类(54个表)
│ TraBaseModel<T,R> 基类提供通用CRUD
│ 57个Model类(命名为*Model而非*Dao)
▼
Database (MySQL 8.0)
46张表,utf8mb4编码,InnoDB引擎
3.4 LLM调用架构
3.4.1 多模型路由
┌─────────────────────────────────────────────────────────┐
│ ChatModelFactory │
│ │
│ 配置指纹热重载:computeConfigFingerprint() │
│ 指纹变化 → 缓存清空 → 模型实例重建 │
│ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ Azure Gateway │ │ Qwen Compatible │ │
│ │ (GPT系列) │ │ Gateway │ │
│ │ │ │ (Qwen/DeepSeek/ │ │
│ │ · GPT-5.4 │ │ Kimi) │ │
│ │ · GPT-5.2 │ │ │ │
│ │ · GPT-5 │ │ · Qwen3-Next 80B │ │
│ │ │ │ · Qwen3.5-35B │ │
│ └──────────────┘ │ · Qwen3-Max │ │
│ │ · Qwen3-8B/14B │ │
│ │ · DeepSeek V3/ │ │
│ │ V3.1/V3.2 │ │
│ │ · Kimi K2.5 │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
5级配置优先级:
training.center.llm.scenario.{场景}.model.{模型}.api.url– 场景+模型级training.center.llm.scenario.{场景}.url– 场景级training.center.llm.model.{模型}.api.url– 模型级training.center.llm.api.url– 全局级- 硬编码默认值
场景化模型分配:
| 场景 | 默认模型 | 说明 |
|---|---|---|
| practice | GPT-5.4 | 陪练对话 |
| inspiration | GPT-5.4 | 灵感提示 |
| score | DeepSeek V3.2 | 评分 |
| script | GPT-5.4 | 剧本生成 |
| scenario | GPT-5.4 | 场景润色 |
| eval_judge | 可配置 | 评测裁判 |
3.4.2 LLM调用流水线
业务Service调用
↓
LangChainChatService.chatForJsonObject() / chatForText()
↓
构建ChatMessages (system + user)
↓
ChatModelFactory.getModel(modelType, scenario, jsonMode)
↓
LangChain4j ChatModel.chat() → HTTP调用
↓
[异常处理]
├── 网络/超时 → TIMEOUT → TrainingException
├── 内容过滤 → CONTENT_FILTER → TrainingException
├── 线程中断 → REQUEST_CANCELLED → 保留中断标志
└── HTTP错误 → HTTP_ERROR → TrainingException
↓
[响应清洗]
├── 正则去除 ```json...```代码块包裹
├── 去除格式化伪影
└── JSON反序列化 → TypeReference<T> 强类型VO
↓
[自愈重试] JSON解析失败 + 输出含{/[ + 上下文<60K
├── 拼接失败输出 + 纠正Prompt
└── 重试一次
↓
[异步记录] LlmCallLogRecordingService → tra_llm_call_log
↓
返回结果
3.4.3 Prompt模板管理
32个Prompt模板,存放于 training-center-core/src/main/resources/promot/
模板加载策略:
- 配置中心
DynamicProperties.getString("training.center.prompt." + key)– 最高优先级(热切换) - Classpath文件缓存 – 默认
变量替换: Mustache语法 {{camelCaseVariable}},通过 LangChain4j PromptTemplate.from().apply() 渲染
核心模板矩阵:
| 模板Key | 文件 | 用途 |
|---|---|---|
| practiceDialogueOpen | ai_practice_dialogue_open.md | 开放式陪练对话 |
| practiceDialogueProcess | ai_practice_dialogue_process.md | 流程式陪练对话 |
| practicePolish | ai_practice_polish.md | 话术润色 |
| practiceInspiration | ai_practice_inspiration.md | 灵感提示(RAG优先+3步生成+难度策略库) |
| practiceGoalJudge | ai_practice_goal_judge.md | 目标判定(已移除RAG依赖,精简输入) |
| practiceGoalSummary | ai_practice_goal_summary.md | 目标摘要 |
| practiceFinishCheck | ai_practice_finish_check.md | 结束判定 |
| practiceScoring | ai_practice_scoring.md | 整体评分 |
| practiceScoringDimension | ai_practice_scoring_dimension.md | 维度评分(Map) |
| practiceScoringReduce | ai_practice_scoring_reduce.md | 评分汇总(Reduce,折叠HTML+三行改进格式) |
| practiceScoringS suggestion | ai_practice_scoring_suggestion.md | 评分建议 |
| scriptCreateOpen | ai_script_create_open.md | 开放式剧本生成 |
| scriptCreateProcess | ai_script_create_process.md | 流程式剧本生成(3-5目标+强制收尾目标) |
| scoreGenerateOpen | ai_score_generate_open.md | 开放式评分规则 |
| scoreGenerateProcess | ai_score_generate_process.md | 流程式评分规则 |
| trainingPolishedScenario | ai_training_polished_scenario.md | 场景润色 |
| trainingQuestionChecklist | ai_training_question_checklist.md | 问卷生成 |
| trainingRoleDef | ai_training_role_def.md | 角色生成 |
| knowledgeQaParse | ai_knowledge_qa_parse.md | 知识库Q&A提取 |
| qaKeywordExtract | ai_qa_keyword_extract.md | 质检QA关键词提取+质量评分 |
| qaSelectRepresentative | ai_qa_select_representative.md | 代表性QA对筛选 |
| qaKeywordCatalogCollection | ai_qa_keyword_catalog_collection.md | 催收关键词目录(18类180+词) |
3.5 数据库设计
3.5.1 核心ER关系
tra_character (AI角色)
↑ character_id
tra_script (剧本) ──1:N──→ tra_script_goal (目标)
│ │
│ 1:N ↓
│ tra_script_goal_strategy (策略)
│
├──1:N──→ tra_script_feedback (反馈规则)
├──1:N──→ tra_script_standard_reply (标准话术)
└──1:N──→ tra_score_dimension (评分维度)
│
1:N ↓
tra_score_detail (评分细则)
tra_plan (培训计划)
├──1:N──→ tra_plan_stage (阶段)
├──1:N──→ tra_plan_script (计划-剧本关联)
├──1:N──→ tra_plan_user (计划-学员关联)
└──────→ tra_plan_script_user (三方进度)
tra_practice_session (练习会话)
├──1:N──→ tra_practice_dialogue (对话消息)
└──1:1──→ tra_practice_report (评分报告)
│
1:N ↓
tra_practice_report_detail (维度得分)
tra_ai_prompt (Prompt定义)
└──1:N──→ tra_ai_prompt_version (版本)
│
┌─────┴─────┐
↓ ↓
tra_ai_prompt_ tra_eval_experiment
debug_run (评测实验)
│
1:N ↓
tra_eval_result
3.5.2 数据库演进(9个阶段,36个迁移)
| 阶段 | 版本 | 表数 | 核心能力 |
|---|---|---|---|
| 基础设施 | V1-V7 | 12 | 用户、角色、配置、Kafka |
| 内容创作 | V8-V12 | 8 | AI角色、剧本、评分规则 |
| 培训管理 | V13-V16 | 5 | 培训计划、学习进度 |
| 知识库 | V14,V24,V30 | 2 | Q&A对、RAG知识 |
| 陪练引擎 | V17,V29,V33,V34 | 4 | 会话、对话、报告 |
| Prompt管理 | V18-V21 | 3 | 模板、版本控制 |
| 评测系统 | V26 | 6 | 数据集、实验、结果 |
| 可观测性 | V22,V28,V31-V35 | 7 | RAG日志、热词、LLM日志 |
| 质检集成 | V36-V37 | 3 | 质检数据同步+关键词提取 |
| 标注闭环 | V38,V41 | 2 | 标注修复追踪(fix_session_id) |
| 多租户 | V40 | 1(影响18张表) | 全表business_id扩展 |
设计模式:
- 软删除:大部分域表使用
deleted字段(‘T’/‘F’) - 毫秒时间戳:所有
time_created/time_updated为bigint(20)毫秒精度 - 报告快照:
tra_practice_report_detail冗余维度名、评估点、满分等,确保历史数据不受规则变更影响 - Kafka Outbox:
kafka_message+kafka_message_lock保证消息可靠投递 - 状态机:会话(IN_PROGRESS→COMPLETED|TERMINATED)、报告(NONE→GENERATING→COMPLETED|FAILED)、版本(Draft→Published)
3.6 前端架构
3.6.1 双门户SPA
src/
├── pages/ # 40+ 页面模块
│ ├── [Admin Portal]
│ │ ├── training-plan/ # 培训计划管理
│ │ ├── script-management/ # 剧本管理
│ │ ├── script-editor/ # 剧本编辑器
│ │ ├── ai-role-library/ # AI角色库
│ │ ├── speech-library/ # 话术知识库
│ │ ├── prompt-list/ # Prompt管理
│ │ ├── prompt-debug/ # Prompt调试
│ │ ├── prompt-dag/ # DAG编排画布
│ │ ├── eval-center/ # 评测中心
│ │ ├── data-dashboard/ # 数据看板
│ │ ├── llm-call-log/ # LLM调用日志
│ │ └── user-management/ # 用户管理
│ │
│ └── [Student Portal]
│ ├── student-home/ # 学员首页
│ ├── learning-plan/ # 学习计划
│ ├── practice-session/ # AI陪练对话(核心交互页)
│ ├── practice-report/ # 练习报告
│ └── my-practice-records/ # 历史记录
│
├── resources/ # API服务层(28个文件)
├── components/ # 共享组件(14个)
├── stores/ # Pinia状态(3个Store)
├── hooks/ # 自定义Hooks
└── constants/ # 枚举 & 常量
3.6.2 API集成模式
所有API请求遵循统一模式:
// resources/practice-session.ts
export async function sendChatMessage(sessionId: number, params: SendMessageParams) {
const res = await axios.post(`/admin/training/practiceSession/${sessionId}/sendMessage`, params);
return unwrapBody<SendMessageResponse>(res);
}
响应信封: { status: { code: number }, body: T }
错误拦截: 统一interceptor处理 token过期(302重定向)、权限不足(403)
3.6.3 实时通信 – WebSocket语音
浏览器 (Web Audio API)
│ getUserMedia → ScriptProcessorNode
│ 16kHz 16bit Mono PCM → Base64编码
│ 200ms/帧 (3200样本)
↓
WebSocket (/admin/practiceVoice)
│ ESTABLISH → DATA(base64) → SEND → CLOSE
↓
后端 PracticeVoiceWebSocketHandler
│ 积累ASR句末结果
│ SEND时:flush转写器,等待4秒最终句
│ 拼接所有片段
↓
返回 TRANSCRIPTION → 前端展示 → 触发HTTP sendMessage
3.7 关键设计决策
| 决策 | 选择 | 理由 |
|---|---|---|
| JOOQ而非JPA | JOOQ + Flyway | 类型安全SQL,编译期校验,避免N+1问题 |
| 禁用@Transactional | 手动事务 | 与加密JDBC驱动冲突 |
| 禁用@Async | ExecutorService | 更精细的线程池控制 |
| WebSocket仅做ASR | HTTP做对话 | 避免WS+HTTP双写消息 |
| MapReduce评分 | 维度并行+聚合 | 单维度prompt更精确,可并行加速 |
| Prompt配置中心热切换 | DynamicProperties覆盖classpath | 生产环境无需重启即可调优prompt |
| 配置指纹热重载 | fingerprint比对 | LLM配置变更自动重建模型实例 |
| LLM日志异步写入 | 2线程守护池 | 不阻塞主流程,保障可观测性 |
3.8 多区域部署
| 环境 | 用途 | 数据库 |
|---|---|---|
| dev | 本地开发 | localhost |
| test | 测试环境(中国) | 远程MySQL |
| test-indo | 印尼测试 | 印尼集群 |
| test-sea | 东南亚测试 | 东南亚集群 |
| test-mex | 墨西哥测试 | 墨西哥集群 |
| prod | 生产(中国) | 生产MySQL |
| prod-indo | 印尼生产 | 印尼集群 |
| prod-phi | 菲律宾生产 | 菲律宾集群 |
| prod-mex-huawei | 墨西哥生产 | 华为云 |
| feat | 预发布 | Staging |
四、AI Prompt工程设计
4.1 8步DAG流水线
Step 1: 场景润色 (trainingPolishedScenario)
↓ 用户原始输入 → 结构化Markdown场景描述
Step 2: 问卷确认 (trainingQuestionChecklist)
↓ 场景 → 4道ABCDE选择题,细化训练维度
Step 3: 角色生成 (trainingRoleDef)
↓ 场景+问卷+素材 → AI借款人角色(姓名/年龄/性格/背景)
Step 4: 剧本生成 (scriptCreate[Open|Process])
↓ 角色+场景+问卷 → 完整剧本(目标+策略+反馈+话术)
Step 5: 目标生成 (scriptGoal[Open|Process])
↓ 补充/追加训练目标
Step 6: 评分规则生成 (scoreGenerate[Open|Process])
↓ 剧本 → 多维度评分体系(总分100分)
Step 7: 对话模拟 (practiceDialogue[Open|Process])
↓ 学员与AI实时对话
Step 8: 评分验证 (practiceScoring)
对话历史 → 多维度评分+改进建议
4.2 核心Prompt工程技术
| 技术 | 应用 | 示例 |
|---|---|---|
| 角色扮演(Persona) | 全部模板 | “你是一名逾期借款人” / “你是资深催收培训师” |
| 结构化JSON输出 | 28/32模板 | 严格字段定义+长度约束 |
| Few-Shot示例 | 8个模板 | 灵感提示5个完整示例、润色6个示例 |
| Chain-of-Thought | 5个模板 | 目标判定3步推理、灵感3步生成 |
| 领域知识注入 | 15+模板 | 催收全流程、还款方案分类、客户心理模型 |
| 负面约束 | 20+模板 | 禁用词列表、禁止格式、反面示例 |
| 情绪递进模型 | 对话模板 | 5阶段情绪弧:防御→试探软化→方案博弈→异议波动→理性回归 |
| 绝对被动原则 | 流程式对话 | AI只在学员主动提及话题后才响应 |
| 输出自检 | 3个模板 | “输出前检查:1.无行业术语? 2.回应了问题? 3.无泄密?” |
| 优先级层级 | 5个模板 | RAG知识 > 标准话术 > 行为策略 > 兜底策略库 |
| 互斥规则 | 3个模板 | “achieved和failed不能同时为true” |
| Meta-Prompt | 1个模板 | ai_prompt_revise_meta.md – 用Prompt修改Prompt |
五、Agent与开发效能工具
5.1 Claude Code Skill体系
项目深度集成了Claude Code的Skill生态,构建了完整的AI辅助开发工具链:
| Skill | 用途 |
|---|---|
| backend-local-run | JDK 21构建并本地启动Admin服务 |
| local-acceptance | 前后端同时启动+验收清单生成 |
| local-mysql-ops | Flyway迁移、JOOQ代码生成、Mock数据 |
| schema-pull-sync | 团队迁移脚本同步 |
| code-style-review | 代码规范审查 |
| review-java | 阿里巴巴Java规范+项目CodeStyle审查 |
| eval-center-backend | 评测中心后端开发专用 |
| training-center-prd | AI辅助PRD生成 |
| ut-scan | 单测覆盖率扫描+自动补充 |
| skill-reviewer | Skill质量审核 |
5.2 Cursor Agent
| Agent | 功能 | 规模 |
|---|---|---|
| code-to-docs | 代码变更→飞书技术文档 | 36KB配置 |
| feishu-to-docs | 飞书文档整理美化 | 40KB配置 |
5.3 Speckit工作流(15个命令)
speckit analyze → 需求分析
speckit specify → SDD规约生成
speckit plan → 实现计划
speckit implement → 代码实现
speckit verify → 验证
speckit parallel-* → 并行版本
speckit save/restore-context → 上下文保存/恢复
六、项目数据概览
| 指标 | 数值 |
|---|---|
| 后端总提交数 | ~362次 |
| 前端总提交数 | ~504次 |
| 贡献者 | 7人(后端)/ 11人(前端) |
| 数据库表 | 46张+(V40多租户扩展18张表) |
| Flyway迁移 | 41个 |
| JOOQ生成类 | 54个 |
| Model类 | 57个 |
| Controller包 | 25+ |
| Service包 | 33+ |
| 前端页面模块 | 40+ |
| API资源文件 | 28个 |
| Prompt模板 | 32个 |
| 支持LLM模型 | 13个 |
| 部署区域 | 10个环境 |
| 活跃开发周期 | 2026.03 - 2026.04 |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)