Skip to content

项目概述

**本文引用的文件** - [[README.md]](../file/readme.md) - [[bi-analysis/README.md]](../file/bi-analysis/readme.md) - [[bi-common/README.md]](../file/bi-common/readme.md) - [[bi-common/go.mod]](../file/bi-common/go.mod) - [[bi-analysis/go.mod]](../file/bi-analysis/go.mod) - [[ui-web/README.md]](../file/ui-web/readme.md) - [[ui-web/package.json]](../file/ui-web/package.json) - [[bi-chat/docs/chat_v1_design.md]](../file/bi-chat/docs/chat-v1-design.md)

目录

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

引言

本项目是一个面向企业的商业智能(BI)分析平台,旨在提供数据可视化、指标管理与深度分析能力。平台采用现代化技术栈:前端以 Next.js + TypeScript + ECharts 为核心,后端以 Go + Kratos + gRPC 为基础,并引入 AI 多智能体系统用于数据分析对话与智能辅助。项目强调可扩展性、可观测性与工程化效率,支持容器化与云原生部署。

平台目标用户包括:

  • 业务分析师:通过可视化仪表板与指标管理进行日常分析
  • 数据工程师:基于 gRPC/Protobuf 的服务化数据接入与治理
  • 平台运营人员:通过系统后台管理租户、权限与资源
  • 开发团队:依托统一的公共组件库与规范化的开发流程

项目结构

项目采用多模块分层组织,围绕“服务 + 前端 + AI + 公共组件”的架构划分,便于职责分离与独立演进。

图表来源

章节来源

核心组件

  • 前端技术栈:Next.js 16(App Router)、TypeScript、Tailwind CSS、ECharts 6.x、Zustand、Iconfont;构建与部署通过 Docker + Kubernetes。
  • 后端技术栈:Go 1.25+、Kratos v2.9.2+、gRPC + Protobuf、Apache Kafka、Apache Flink、StarRocks(OLAP)、APISIX 网关。
  • AI 组件:Python + AngentScope + FastAPI,Restful API,Qwen-Max,多智能体数据分析对话系统。

这些技术选择的优势:

  • 前端:Next.js 提供优秀的开发体验与性能;TypeScript 提升类型安全;ECharts 专注数据可视化。
  • 后端:Kratos 提供微服务框架能力;gRPC/Protobuf 明确契约;Kafka/Flink 支撑实时数据处理;StarRocks 适配在线分析场景。
  • AI:多智能体对话提升人机协作效率,结合向量检索与工具调用实现“理解—推理—行动”。

章节来源

架构总览

平台整体采用“前端 SPA + 后端微服务 + AI 智能体”的三层架构。前端通过 HTTP/gRPC 与后端交互;后端服务通过 Nacos 进行配置与服务发现;数据层以 StarRocks 为主,配合 Kafka/Flink 实现实时与准实时分析;AI 智能体通过 Restful API 与后端协同,提供自然语言到 SQL/指标的推理能力。

图表来源

章节来源

详细组件分析

前端组件(Next.js + TypeScript + ECharts)

  • 开发体验:支持多包管理与脚本命令,提供开发、构建、测试、打包等常用脚本。
  • 可视化:ECharts 6.x 与 React 集成,支持多种图表类型与响应式布局。
  • 状态管理:Zustand 提供轻量级状态管理方案。
  • 样式与工具:Tailwind CSS、Day.js、React Hooks 生态(ahooks、dnd-kit 等)。

快速开始(前端)

  • 进入 ui-web 目录,安装依赖并启动开发服务器,访问本地端口查看页面。

章节来源

后端组件(Go + Kratos + gRPC)

  • 框架与工具:Kratos 提供服务生命周期、中间件、路由等能力;Wire 用于依赖注入;Protobuf 定义 API 约束。
  • 统一响应与文档:apitypes 统一响应结构;OpenAPI 文档自动生成并可同步至 Apifox。
  • 配置与注册:Nacos 配置中心与服务发现;支持多环境配置优先级。
  • 数据与消息:gormx(MySQL/StarRocks)、redisx、kafkax 提供数据库、缓存与消息队列能力。
  • 部署:Docker 容器化,Kubernetes 编排。

快速开始(后端)

  • 在 bi-analysis 目录执行初始化、构建与运行命令,支持 dev/test/prod 环境切换。

章节来源

AI 智能体系统(多智能体数据分析对话)

  • 架构:FastAPI + AngentScope,Restful API,Qwen-Max 大模型,支持 ReAct 推理循环。
  • 会话与记忆:会话缓存(LRU + 超时)、短期记忆(InMemoryMemory)与长期记忆(Milvus 向量存储),支持记忆压缩与增量保存。
  • 工具与输出:工具集包含实体搜索、指标搜索、SQL 执行、数据库信息获取等;支持 SSE 流式输出与 OpenAI 兼容格式。
  • 资源共享:模型与嵌入向量模型为应用级单例,工具与短期记忆为会话级独立,长期记忆为用户级共享。

图表来源

章节来源

公共组件库(bi-common)

  • 零配置优先:开箱即用,1-10 行代码完成集成。
  • Kratos 原生:与 Kratos 生态深度集成,提供统一响应、日志、数据库、缓存、消息队列、配置中心等能力。
  • 环境变量与配置优先级:环境变量 > 用户配置 > 配置文件 > 智能推断 > 默认配置。
  • 依赖版本:Kratos v2.9.2+、Nacos Go SDK v2.3.5+、GORM v1.25+、go-redis v9 等。

章节来源

依赖关系分析

  • 服务依赖:bi-analysis 依赖 bi-common 与 bi-proto,通过 replace 指向本地模块,确保版本一致性。
  • 前端依赖:ui-web 使用 Next.js 16、TypeScript、ECharts 6.x、Zustand 等,构建脚本支持多环境打包。
  • AI 依赖:bi-chat 通过 FastAPI 提供 Restful API,与后端服务协同。

图表来源

章节来源

性能考量

  • 前端性能:Next.js App Router 与静态优化;ECharts 按需渲染与主题配置;Tailwind CSS 减少样式体积。
  • 后端性能:Kratos 中间件与 OpenTelemetry 集成;Kafka/Flink 实现实时处理;StarRocks 适配 OLAP 场景。
  • AI 性能:模型与嵌入向量模型单例共享,降低资源占用;工具调用与流式输出减少等待时间;记忆压缩避免上下文膨胀。

[本节为通用指导,无需列出具体文件来源]

故障排查指南

  • 前端常见问题:端口冲突、依赖缺失、TypeScript 类型错误;建议检查开发脚本与 Node 版本。
  • 后端常见问题:配置未生效(检查 Nacos 配置与环境变量)、gRPC 连接失败、数据库连接异常;建议核对配置优先级与网络连通性。
  • AI 常见问题:会话超时、工具调用失败、流式输出中断;建议检查 Agent 缓存与工具注册、向量存储连通性。

章节来源

结论

本项目通过“前端 + 后端 + AI”的一体化设计,为企业提供了从数据接入、实时分析到智能对话的完整能力闭环。技术栈选择兼顾性能、可维护性与扩展性,公共组件库与规范化的开发流程进一步提升了工程效率。建议在实际落地中重点关注配置中心与服务发现、实时计算与存储的协同、以及 AI 智能体的工具与记忆体系的持续优化。

[本节为总结性内容,无需列出具体文件来源]

附录

  • 快速开始(前端):进入 ui-web,安装依赖并启动开发服务器,访问本地端口。
  • 快速开始(后端):在 bi-analysis 目录执行初始化、构建与运行命令,支持 dev/test/prod 环境。
  • 部署:前后端均可通过 Docker 容器化部署,结合 Kubernetes 进行编排。

章节来源