ChatNode调用流程图

ChatNode处理流程 调用 compiledGraph.invoke START 记录开始时间 识别意图 判断意图类型 是 否 普通聊天 其他意图 解析用户消息 检查特殊问题 是 否 获取响应 是 获取工具结果 生成最终响应 否 直接输出 返回响应 处理完成 记录结束时间 返回 提取文本/图片 ChatNode 是否匹配特殊问题? 返回预设答案 调用大模型 是否需要工具调用? 执行工具调用 将结果返回大模型 构建响应对象 用户请求
ChatMessagesBO AgentServiceImpl.chat 状态图执行 StartRecordNode IntentNode IntentDispatcher 是否需要澄清? DirectOutputNode 意图类型? 其他节点 EndRecordNode 构建最终响应 ChatMessagesDTO

流程图说明

1. 请求入口阶段

  • 用户请求: 用户通过前端发送聊天请求,包含会话ID、查询消息等信息
  • AgentServiceImpl.chat(): 作为服务入口,接收ChatMessagesBO参数并调用编译好的状态图

2. 图执行阶段

  • 状态图执行: 从START节点开始执行预定义的图流程
  • StartRecordNode: 记录会话开始时间
  • IntentNode: 进行意图识别,判断用户请求类型
  • IntentDispatcher : 根据意图识别结果分发到不同节点
    • 如果需要澄清,直接进入DirectOutputNode
    • 根据意图类型分发到对应的处理节点(如ChatNode处理普通聊天)

3. ChatNode处理阶段

  1. 解析用户消息: 提取用户消息中的文本和图片内容
  2. 检查特殊问题 : 匹配预定义的特殊问题配置
    • 如果匹配,直接返回预设答案
    • 如果不匹配,继续调用大模型
  3. 调用大模型: 使用配置的系统提示词和用户消息调用大模型
  4. 处理工具调用 :
    • 如果大模型返回需要工具调用,执行相应的工具调用
    • 获取工具调用结果并返回给大模型
    • 大模型根据工具结果生成最终响应
  5. 构建响应对象: 整合所有结果,构建ChatMessagesDTO响应对象

4. 结束处理阶段

  • EndRecordNode: 记录会话结束时间
  • 构建最终响应: 整合所有节点的处理结果
  • 返回响应: 将ChatMessagesDTO返回给调用方

技术要点

1. 图结构组织

  • 使用Alibaba Cloud AI Graph框架构建状态图
  • 通过AgentConfig配置节点和边的关系
  • 支持条件分支和异步执行

2. 节点职责

  • StartRecordNode/EndRecordNode: 会话生命周期管理
  • IntentNode: 意图识别
  • ChatNode: 核心聊天处理,包含大模型调用和工具调用逻辑
  • DirectOutputNode: 直接输出内容(如澄清请求)

3. 工具调用机制

  • 大模型可动态调用注册的工具
  • 支持多轮工具调用和结果处理
  • 工具调用结果自动整合到最终响应中

4. 特殊问题处理

  • 支持通过配置文件定义特殊问题和预设答案
  • 优先使用预设答案,提高响应速度和准确性

配置说明

1. Graph配置

  • 在AgentConfig.java中定义图结构
  • 配置节点间的流转关系和条件分支

2. ChatNode配置

  • 通过application.yml配置系统提示词
  • 通过Apollo配置特殊问题列表

3. 意图配置

  • 在IntentDispatcher中定义意图分发逻辑
  • 支持动态扩展意图类型和处理节点

关键类说明

类名 职责 位置
AgentServiceImpl 服务入口,调用状态图 agent/impl/AgentServiceImpl.java
AgentConfig 配置状态图结构 config/agent/AgentConfig.java
ChatNode 核心聊天处理节点 graph/node/ChatNode.java
IntentDispatcher 意图分发器 graph/dispatcher/IntentDispatcher.java
IntentNode 意图识别节点 graph/node/IntentNode.java

使用说明

  1. 查看完整流程: 使用支持Mermaid语法的编辑器打开此文件
  2. 理解调用路径: 从用户请求到响应的完整路径
  3. 分析节点职责: 了解每个节点的具体处理逻辑
  4. 扩展功能: 根据需要在图中添加新节点或修改流转关系
sequenceDiagram participant Client as 用户端 participant Agent as AgentServiceImpl participant Graph as 状态图 participant Intent as IntentNode participant Dispatcher as IntentDispatcher participant Chat as ChatNode participant Model as 大模型 participant Tool as 工具 participant End as EndRecordNode Client->>Agent: 发送聊天请求 Agent->>Graph: 调用状态图 Graph->>Intent: 执行IntentNode Intent->>Dispatcher: 意图识别 Dispatcher->>Chat: 分发到ChatNode Chat->>Model: 调用大模型 Model-->>Chat: 返回响应 alt 需要工具调用 Chat->>Tool: 执行工具调用 Tool-->>Chat: 返回工具结果 Chat->>Model: 提交工具结果 Model-->>Chat: 生成最终响应 end Chat->>End: 返回响应 End->>Graph: 记录结束时间 Graph->>Agent: 返回处理结果 Agent->>Client: 返回最终响应
相关推荐
min1811234561 天前
分公司组织架构图在线设计 总部分支管理模板
大数据·人工智能·信息可视化·架构·流程图
趣学习2 天前
C011基于博途西门子1200PLC加热炉恒温控制系统仿真
毕业设计·流程图·课程设计·plc·西门子
Glad_R3 天前
巧用AI流程图,让信息呈现更全面
人工智能·信息可视化·产品运营·流程图·产品经理
Thomas21434 天前
pydantic AI Graph 打印流程图
流程图
Glad_R4 天前
免费流程图工具深度对比:零成本也能专业绘图
流程图
咨询QQ:4877392784 天前
基于DP动态规划的混合动力汽车P2构型探索
流程图
min1811234566 天前
集团公司组织机构图在线设计 总部分支架构呈现
大数据·人工智能·信息可视化·架构·流程图
檐下翻书1736 天前
互联网企业组织结构图在线设计 扁平化架构模板
论文阅读·人工智能·信息可视化·架构·流程图·论文笔记
humstone7 天前
流程图技术选型
流程图