工具集成架构

了解系统如何集成FastGPT知识库与自定义工具,以及数据流转逻辑。

FastGPT工具集成特点

考勤制度生成与风险分析系统利用FastGPT平台的工作流能力,将知识库检索工具与自定义工具无缝集成。系统的知识库工具直接使用FastGPT的知识库检索功能,工具调用结果通过中间缓存机制存储,统一传递给回答生成模型。

工具集成架构图:

工具集成架构 FastGPT工作流平台 FastGPT知识库工具 标准规范知识库 劳动法知识库 企业文档知识库 自定义工具 制度生成工具 风险可视化工具 飞书消息发送工具 数据集成层 工具结果缓存 前端组件状态管理 数据持久化 后端系统 工具结果数据库 前端组件状态控制 API接口层

工具调用与数据缓存逻辑

了解工具调用结果如何缓存和传递给后续模型的完整流程。

1
工具调用决策过程

流程目的:分析用户问题,确定需要调用哪些工具

主要步骤

  • 分析用户意图,确定所需工具组合
  • 生成会话ID用于跟踪整个交互过程
  • 初始化结果缓存,为存储工具结果做准备
  • 返回工具调用决策信息

数据结构示例

{ "sessionId": "session_12345", "toolDecisions": [ {"toolName": "标准规范模板知识库搜索工具", "parameters": {...}}, {"toolName": "中华人民共和国劳动法知识库搜索工具", "parameters": {...}} ] }
2
知识库工具调用

流程特点:直接使用FastGPT平台的知识库检索能力

工作原理

  • FastGPT平台内部执行知识库检索操作
  • 检索结果通过API传递给后端系统
  • 结果存入会话缓存,以便后续模型使用
  • 每个工具调用独立进行,互不影响
3
自定义工具调用

流程特点:根据工具类型调用不同的处理逻辑

工具类型及处理

  • 制度生成工具:生成制度内容并触发前端模板编辑组件
  • 风险可视化工具:分析风险并触发前端可视化组件
  • 飞书消息工具:发送消息到飞书,但不触发前端更新

前端交互逻辑

  • 部分工具(制度生成、风险可视化)会更新active_component表
  • 前端通过轮询检测表变化,触发界面更新
4
结果缓存机制

目的:统一管理所有工具调用结果,便于后续模型使用

工作原理

  • 使用映射表将工具名称转换为数据库字段
  • 每个工具结果单独存储在对应字段中
  • 结果以JSON字符串形式存储,保留完整信息
  • 以会话ID为索引,确保同一会话中的工具结果关联

字段映射关系

工具名称 数据库字段
标准规范模板知识库搜索工具 tool1_result
中华人民共和国劳动法知识库搜索工具 tool2_result
用户上传的现有制度文档搜索工具 tool3_result
考勤制度风险可视化分析工具 tool4_result
考勤制度智能生成工具 tool5_result
飞书消息发送工具 tool6_result
5
结果聚合与回答生成

流程目的:将所有工具结果整合,传递给回答生成模型

工作流程

  1. 从数据库获取当前会话的所有工具调用结果
  2. 将JSON字符串解析为结构化对象
  3. 获取当前前端组件状态信息
  4. 将所有信息传递给回答生成模型
  5. 生成最终对用户的回答

数据流向

工具1结果 ┐ 工具2结果 │ 工具3结果 ├──→ 结果聚合 ──→ 回答生成模型 ──→ 用户回答 前端状态 │ 用户上下文┘
6
前端组件状态管理

目的:控制前端界面动态更新,展示可视化或模板内容

核心逻辑

  • 更新active_component表中的组件类型和ID
  • 对特定类型组件(可视化、模板)添加历史记录
  • 前端通过轮询检测active_component表变化
  • 检测到变化时,前端动态切换显示相应组件

优势

  • 实现前后端解耦,通过数据库作为中间层通信
  • 支持状态持久化,即使页面刷新也能恢复正确状态
  • 避免复杂的实时通信机制,简化系统设计

工具调用缓存机制的优势

通过实现工具调用结果的缓存机制,系统获得了以下关键优势:

  • 批量处理 - 支持在一次请求中调用多个工具,结果统一传递给回答模型
  • 状态保持 - 工具调用结果在会话期间持久保存,支持多轮对话引用
  • 异步处理 - 工具调用与回答生成解耦,支持长时间运行的工具操作
  • 错误隔离 - 单个工具失败不影响整体流程,系统可以继续处理
  • 调试便利 - 缓存机制便于查看工具调用历史和诊断问题

API集成实例

了解如何通过API与考勤制度生成与风险分析系统集成,包含完整的数据流转过程。

1
API请求构建

构建API请求需要包含用户查询、身份信息和上下文变量:

{ "chatId": "session_1234", // 会话ID "stream": true, // 启用流式响应 "detail": true, // 返回详细信息 "responseChatItemId": "resp_5678", // 响应ID "variables": { // 上下文变量 "uid": "USER_12345", // 用户ID "name": "张三", // 用户姓名 "cTime": "2025-03-20 14:30:00", // 当前时间 "部门": "研发部", // 部门信息 "职位": "高级工程师", // 职位信息 "角色": "部门管理者", // 用户角色 "行业类型": "IT", // 行业类型(制度生成用) "企业规模": "中型企业", // 企业规模(制度生成用) "工时制度": "弹性工作制" // 工时类型(制度生成用) }, "messages": [ // 对话历史 { "role": "user", "content": "请为研发部制定一份弹性工作的考勤规则" } ] }
2
处理流式响应

系统API支持流式响应,实现打字机效果:

  • 发送请求后获取响应流
  • 按行解析数据,处理每个数据块
  • 提取增量内容并实时显示
  • 监控前端组件更新信息并处理
3
处理前端组件更新

当响应中包含前端组件更新信息时,进行相应处理:

  • 检测响应中的frontendUpdate字段
  • 根据组件类型(template/visualization)显示相应界面
  • 加载对应ID的组件内容
  • 更新界面布局,展示组件

工具类型与前端交互

不同类型工具对前端界面的影响与交互方式。

知识库工具

FastGPT工具

直接利用FastGPT平台的知识库检索能力,搜索考勤管理相关的法规、标准和最佳实践。

前端影响: 不触发界面更新,结果仅用于生成文本回答

内容生成工具

自定义工具 触发前端更新

生成考勤制度模板,将结果存储到数据库并触发前端界面更新。

前端影响: 触发侧边栏显示模板编辑界面,支持在线编辑和导出

可视化工具

自定义工具 触发前端更新

将考勤制度风险分析结果以可视化方式呈现,直观展示风险分布。

前端影响: 触发侧边栏显示风险可视化界面,支持交互式风险探索

外部集成工具

自定义工具 外部API

与外部系统集成,如飞书消息发送,执行具体的业务操作。

前端影响: 不触发界面更新,在对话中显示操作结果确认