【AI培训中台-对话链路】

陪练对话 sendMessage 完整链路

一、架构总览

陪练对话系统采用 对话生成与目标判定分离 的架构设计,拆分为两个独立 HTTP

分离的设计动机:避免目标达成条件泄露到 AI 回复中,减少 LLM 幻觉风险。

调用时序(前端视角):

html 复制代码
createSession → sendMessage(循环) → judgeGoal(循环, 仅 PROCESS) → checkFinish / stopSession → 查看报告
层级 职责
Controller PracticeSessionController HTTP 入口、参数校验、权限
编排层 PracticeDialogueService 对话主流程编排、RAG、TTS、异步任务
会话层 PracticeSessionService 会话生命周期(创建/终止/完成),不调用 LLM
目标判定 PracticeGoalJudgeService PROCESS 模式的 LLM 目标判定 + Java 硬规则
LLM 封装 PracticeLLMService Prompt 模板组装 + 上下文构建
底层调用 LangChainChatService LangChain4j HTTP 调用、JSON 解析、格式纠正重试

二、sendMessage 主流程(6 步)

  1. Per-Session 互斥锁,- 防止前端并发双发导致同一轮消息被重复写入
  2. 校验绘话状态 + 构建上下文
  3. 幂等检查(10 秒去重窗口),- 若内容完全相同且时间间隔 < 10 秒 → 直接返回该轮已有的 AI 回复
  • 覆盖两种场景:并发双发(同一 round)和串行双发(用户快速重复提交)
  1. 保存学员消息
  2. 调用AI生成回复
  3. 保存AI回复+更新绘话
  4. 组装响应 + TTS
  5. 异步任务 润色+ RAG日志和对比

三、RAG 知识增强

场景 配置开关 查询文本 知识库方向 失败策略
对话 dialogueRagEnabled 学员消息 坐席问 → AI 答 空串,主流程继续
灵感 inspirationRagEnabled AI 最后消息 + 目标 AI 问 → 坐席答 空串
润色 polishRagEnabled AI 消息 + 学员消息 + 目标 AI 问 → 坐席答 空串
评分 复用 inspiration 开关 场景 + 维度 + 学员话术 检索模式 空串

注入方式:RAG 内容通过 Prompt 模板的 {{ragReferenceContent}} 占位符注入 system prompt。

RAG 对比实验:对话 RAG 命中时,异步再调一次无 RAG 的 LLM,将有/无 RAG 的两个回复写入 tra_rag_history,用于评估 RAG 对回复质量的影响。

AI培训对话的完整链路

相关推荐
火山引擎开发者社区1 小时前
火山AgentPlan/CodingPlan同步上线GLM-5.2
人工智能
冬奇Lab2 小时前
Skill 系列(05):Skill 工作流串联——4 种模式实测,并发加速 1.5x
人工智能·开源
冬奇Lab3 小时前
每日一个开源项目(第141篇):hiring-agent - HackerRank 开源了他们的简历评分系统,你的简历能得几分?
人工智能·面试·开源
甲维斯3 小时前
又升级咯!坦克大战2026,科技与复古并存!
前端·人工智能·游戏开发
姗姗来迟了5 小时前
用React Hook封装AI对话状态
人工智能
Goodbye5 小时前
从 Token 到 Embedding:LLM 核心基础深度解析
javascript·人工智能
阿瑞IT5 小时前
AI Agent 在甘特计划变更场景中的动态响应工程实践
人工智能
用户938515635075 小时前
工具调用背后:LLM 如何突破“缸中大脑”,操控真实世界?
javascript·人工智能