Skip to content

工具系统

**本文引用的文件** - [[[[[bi-analysis/cmd/bi-analysis/main.go]]]]](file/bi-analysis/cmd/bi-analysis/main.go) - [[[[[bi-common/utils/validation/validate.go]]]]](file/bi-common/utils/validation/validate.go) - [[[[[bi-common/apitypes/request.go]]]]](file/bi-common/apitypes/request.go) - [[[[[bi-chat/bi_chat/src/agents/tools.py]]]]](file/bi-chat/bi-chat/src/agents/tools.py) - [[[[[bi-chat/bi_chat/src/tools/knowledge.py]]]]](file/bi-chat/bi-chat/src/tools/knowledge.py) - [[[[[bi-chat/bi_chat/src/core/vector_db.py]]]]](file/bi-chat/bi-chat/src/core/vector-db.py) - [[[[[bi-chat/scripts/test_milvus.py]]]]](file/bi-chat/scripts/test-milvus.py) - [[[[[mcp-server-starrocks/src/mcp_server_starrocks/db_client.py]]]]](file/mcp-server-starrocks/src/mcp-server-starrocks/db-client.py) - [[[[[bi-chat/bi-chat-web/src/components/chat/ChartViewer.tsx]]]]](file/bi-chat/bi-chat-web/src/components/chat/chartviewer.tsx) - [[[[[bi-chat/bi-chat-web/src/components/chat/ChartRenderer.tsx]]]]](file/bi-chat/bi-chat-web/src/components/chat/chartrenderer.tsx) - [[[[[_bmad/bmb/workflows/workflow/steps-c/step-04-tools.md]]]]](file/bmad/bmb/workflows/workflow/steps-c/step-04-tools.md) - [[[[[ui-web/src/components/common/biTable/components/PersonalizationDrawer.tsx]]]]](file/ui-web/src/components/common/bitable/components/personalizationdrawer.tsx) - [[[[[AGENTS.md]]]]](file/agents.md)

目录

  1. 引言
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

引言

本文件面向BI分析平台的“工具系统”,系统性梳理并规范工具接口的设计与实现,覆盖以下主题:

  • 工具注册机制与调用约定
  • 参数校验与结果处理
  • 数据查询工具:SQL构建、查询优化、结果格式化
  • 报表生成工具:模板渲染、样式定制、导出格式支持
  • 图表绘制工具:图表类型选择、数据映射、交互功能
  • 向量数据库工具:向量检索、相似度计算、语义搜索
  • 工具扩展开发:自定义工具的创建、测试与集成流程
  • 安全性与性能优化策略

项目结构

工具系统横跨多个子系统:

  • 后端服务入口与配置:bi-analysis/cmd/bi-analysis/main.go
  • 通用参数校验与请求模型:bi-common/utils/validation/validate.go、bi-common/apitypes/request.go
  • 向量检索与知识工具:bi-chat/bi_chat/src/agents/tools.py、bi-chat/bi_chat/src/tools/knowledge.py、bi-chat/bi_chat/src/core/vector_db.py、bi-chat/scripts/test_milvus.py
  • 数据库查询与性能分析:mcp-server-starrocks/src/mcp_server_starrocks/db_client.py
  • 图表渲染:bi-chat/bi-chat-web/src/components/chat/ChartViewer.tsx、ChartRenderer.tsx
  • 表格模板与个性化:ui-web/src/components/common/biTable/components/PersonalizationDrawer.tsx
  • 工具工作流与规范:_bmad/bmb/workflows/workflow/steps-c/step-04-tools.md
  • 质量与安全基线:AGENTS.md

图表来源

章节来源

核心组件

  • 服务启动与配置装载:负责从Nacos加载配置、初始化日志与注册中心、装配Kratos应用。
  • 通用参数校验:提供端口、主机、URL、超时、IP、非空、正整数、范围等校验器,统一约束输入。
  • 请求模型:提供ID、批量ID、时间范围、排序、分页+排序等通用请求体,便于统一绑定与校验。
  • 向量检索工具:封装实体与指标检索,对接Milvus向量数据库,返回结构化上下文。
  • 数据查询工具:封装StarRocks/MCP查询客户端,支持性能分析、分页、CSV导出、错误处理。
  • 图表绘制工具:基于Recharts的图表组件,支持饼图、柱状图、折线图,可切换类型与样式。
  • 报表生成工具:表格列模板解析与持久化,支持列可见性、聚合方式、趋势配置等个性化。

章节来源

架构总览

工具系统采用“后端服务 + 通用能力 + 前端可视化”的分层架构:

  • 服务入口负责配置与注册,统一对外提供HTTP/GRPC服务。
  • 通用能力模块提供参数校验与请求模型,确保输入一致性。
  • 工具模块按领域拆分:向量检索、数据查询、图表渲染、报表模板。
  • 前端组件负责用户交互与结果展示,支持模板与样式定制。

图表来源

详细组件分析

工具注册与调用规范

  • 注册机制:工具通过统一的服务入口装配,结合配置中心动态加载工具清单与参数。
  • 调用约定:所有工具均遵循“输入参数校验 → 执行工具 → 输出结果格式化 → 错误处理”的流程。
  • 工具清单:参考工具清单与工作流规范,确保工具具备上下文与明确的集成点。

图表来源

章节来源

参数校验与结果处理

  • 参数校验:提供端口、主机、URL、超时、IP、非空、正整数、范围等校验器,统一错误语义。
  • 请求模型:ID、批量ID、时间范围、排序、分页+排序等模型,便于统一绑定与校验。
  • 结果处理:工具返回统一的响应结构,包含状态码、消息与数据体;错误时返回结构化错误信息。

图表来源

章节来源

数据查询工具(SQL构建、查询优化、结果格式化)

  • SQL构建:根据输入参数动态拼接条件与排序,限制最大分页大小,避免全表扫描。
  • 查询优化:启用分页、索引提示、查询计划分析;对大结果集进行截断与统计。
  • 结果格式化:支持CSV导出、字典结构、执行耗时统计、错误信息包装。

图表来源

章节来源

报表生成工具(模板渲染、样式定制、导出格式支持)

  • 模板渲染:解析列配置与趋势配置,支持默认列与聚合方式。
  • 样式定制:网格线、汇总行、列顺序、颜色等个性化设置。
  • 导出格式:CSV/Excel等格式导出,包含元数据与执行信息。

图表来源

章节来源

图表绘制工具(图表类型选择、数据映射、交互功能)

  • 图表类型:支持饼图、柱状图、折线图,自动切换与手动切换。
  • 数据映射:X/Y轴键、系列映射、单元格样式、颜色主题。
  • 交互功能:图例、网格、提示框、尺寸自适应。

图表来源

章节来源

向量数据库工具(向量检索、相似度计算、语义搜索)

  • 实体检索:根据自然语言查询,从向量库检索相关实体表定义。
  • 指标检索:检索业务指标定义,包含指标名称、含义、计算口径/公式。
  • 相似度计算:使用L2距离与nprobe参数控制召回质量与性能。
  • 语义搜索:支持多轮上下文与错误兜底,保证稳定性。

图表来源

章节来源

工具扩展开发指南

  • 自定义工具创建:定义输入参数、实现工具函数、注册到服务入口。
  • 测试:提供单元测试与集成测试,覆盖成功路径与异常路径。
  • 集成:通过配置中心管理工具清单与参数,确保上下文与集成点明确。

章节来源

依赖关系分析

  • 服务入口依赖配置中心、日志与注册中心,统一装配Kratos应用。
  • 工具模块依赖通用校验与请求模型,确保输入一致。
  • 向量检索依赖Milvus,数据查询依赖StarRocks/MCP。
  • 前端组件依赖Recharts与UI组件库。

图表来源

章节来源

性能考量

  • 查询性能:分页限制、索引提示、查询计划分析、执行耗时统计。
  • 向量检索:nprobe参数权衡召回与性能,批量查询与缓存策略。
  • 前端渲染:图表容器自适应、懒加载与虚拟化,减少DOM压力。
  • 服务治理:Kratos服务的并发与资源限制,配置中心热更新。

[本节为通用指导,不直接分析具体文件]

故障排查指南

  • 参数校验失败:检查必填项、范围与格式,参考通用校验器。
  • 工具调用异常:查看工具日志与错误返回,定位输入参数与工具实现。
  • 向量检索失败:确认Milvus服务状态、连接参数与索引构建。
  • 数据查询异常:检查SQL构造、权限与网络连通性,关注性能分析输出。
  • 前端图表不显示:确认数据结构与键名映射,检查Recharts版本兼容性。

章节来源

结论

工具系统通过统一的参数校验、请求模型与服务入口,实现了向量检索、数据查询、图表渲染与报表模板的标准化与可扩展。建议在后续迭代中持续完善:

  • 工具清单与上下文管理
  • 性能监控与告警
  • 安全基线与合规检查
  • 前后端一致性与可测试性提升

[本节为总结性内容,不直接分析具体文件]

附录

  • 安全与可靠性基线:认证、授权、令牌过期、密钥管理、OWASP Top 10防护、错误处理与健康检查等。
  • 快速参考:安全、性能、可靠性、可维护性四大NFR维度的关键检查点。

章节来源