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}},通过 LangChain4jPromptTemplate.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_result3.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/ # 评测中心 │ │ ├──>3.6.2 API集成模式所有API请求遵循统一模式:
// resources/practice-session.tsexportasyncfunctionsendChatMessage(sessionId:number,params:SendMessageParams){constres=awaitaxios.post(`/admin/training/practiceSession/${sessionId}/sendMessage`,params);returnunwrapBody<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