Skip to content

Jiiiin/close-bi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BI Agent 数据分析应用

基于 Vite + React 前端和 Python FastAPI + LangGraph 后端的 BI 数据分析 Agent,支持 CSV 文件上传、自然语言查询、数据分析和可视化。

功能特性

  • 📊 CSV 文件上传和管理
  • 💬 自然语言数据分析查询
  • 🤖 LangGraph Agent 工作流
  • 🔧 5 个数据分析工具(analyze_data, generate_chart, query_data, get_data_info, suggest_analysis)
  • 📈 数据可视化(ECharts)
  • 👀 实时 Agent 执行过程可视化
  • 🔄 WebSocket 实时通信

项目结构

close-bi/
├── frontend/          # Vite + React + TypeScript 前端
├── backend/           # Python FastAPI 后端
└── README.md

快速开始

后端设置

  1. 进入后端目录:
cd backend
  1. 创建虚拟环境(推荐):
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置环境变量(.env 文件已创建,请确认 API Key):
DASHSCOPE_API_KEY=your_api_key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
UPLOAD_DIR=./uploads
  1. 启动后端服务:
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

前端设置

  1. 进入前端目录:
cd frontend
  1. 安装依赖:
npm install
  1. 启动开发服务器:
npm run dev
  1. 打开浏览器访问:http://localhost:3000

使用说明

  1. 上传 CSV 文件:点击或拖拽 CSV 文件到上传区域
  2. 发送查询:在输入框中输入自然语言查询,例如:
    • "计算销售额总和"
    • "按地区分组统计销售额"
    • "显示前10行数据"
    • "生成销售额的柱状图"
  3. 查看结果:Agent 会执行分析并返回结果,包括:
    • 数据分析结果(表格、统计信息)
    • 图表可视化
    • Agent 执行过程(工具调用详情)

Agent 和 Tools

Agent

  • BI Analysis Agent:主 Agent,协调整个数据分析流程

Tools

  1. analyze_data:使用 LLM 生成 pandas 代码并安全执行数据分析
  2. generate_chart:生成 ECharts 图表配置
  3. query_data:执行简单数据查询(head/tail/sample/describe/info)
  4. get_data_info:获取数据基本信息
  5. suggest_analysis:根据数据特征建议分析方向

技术栈

前端:

  • Vite + React + TypeScript
  • ECharts(图表库)
  • WebSocket API
  • Axios(HTTP 客户端)

后端:

  • FastAPI(异步 Web 框架)
  • LangChain + LangGraph(Agent 框架)
  • Pandas(数据处理)
  • DashScope API(LLM 服务)

开发注意事项

  1. Windows 系统下代码执行超时使用 threading 实现(signal.SIGALRM 不可用)
  2. WebSocket 连接需要保持活跃
  3. CSV 文件会保存在 backend/uploads/ 目录
  4. Agent 执行过程会实时通过 WebSocket 发送状态更新

License

MIT

About

for test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors