- 🗣️ 自然语言查询:用普通话描述需求,自动生成SQL查询
- 📊 智能可视化:基于ECharts的动态图表展示,支持柱状图、折线图、饼图等多种类型
- 🧠 AI驱动:集成OpenAI API,提供智能SQL生成和自然语言解答
- 🔍 向量搜索:基于Milvus的相似查询模板匹配,提升响应速度
- 🛡️ 安全可靠:SQL安全验证,防止危险操作
- 📱 现代化UI:基于React + TypeScript + Tailwind CSS的响应式界面
Frontend (React + TypeScript)
↓
Backend API (FastAPI + Python)
↓
┌─────────────────┬─────────────────┐
│ Business DB │ System DB │
│ (MySQL) │ (MySQL) │
└─────────────────┴─────────────────┘
↓
Vector Database (Milvus)
↓
AI Services (OpenAI)
后端:Python 3.10+ · FastAPI · SQLAlchemy · PyMilvus · OpenAI
前端:React 19 · TypeScript · Tailwind CSS · ECharts · Vite
存储:MySQL · Milvus
git clone https://github.com/sumingcheng/chat-bi.git
cd chat-bi
复制并编辑环境配置文件:
cp .env-temp .env
编辑 .env
文件,配置必要参数:
# 调试模式
DEBUG=False
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=admin123456
DB_NAME=chat_bi
DB_SYS_NAME=chat_bi_system
MILVUS_HOST=milvus-standalone
MILVUS_PORT=19530
OPENAI_API_KEY=sk-
EMBEDDING_API_URL=http://172.19.221.125:11434/api/embeddings
EMBEDDING_MODEL=bge-m3
# 进入根目录和 web 目录执行
make build
# 回到根目录
make up
# 安装依赖
uv sync
# 启动后端服务
python main.py
# 启动成功显示
⚡ root@DESKTOP-AETE0Q9 /data/chat-bi main docker logs -f f341b3959a99
INFO: Will watch for changes in these directories: ['/chat-bi']
INFO: Uvicorn running on http://0.0.0.0:13000 (Press CTRL+C to quit)
INFO: Started reloader process [1] using StatReload
INFO: Started server process [8]
INFO: Waiting for application startup.
2025-06-03 04:01:07 [INFO] app:57 - 🚀 应用启动中...
2025-06-03 04:01:07 [INFO] app:58 - 📊 开始检查数据库表状态...
2025-06-03 04:01:07 [INFO] app:39 - ✓ 业务数据库表 'category' 已存在
2025-06-03 04:01:07 [INFO] app:39 - ✓ 业务数据库表 'customer' 已存在
2025-06-03 04:01:07 [INFO] app:39 - ✓ 业务数据库表 'product' 已存在
2025-06-03 04:01:07 [INFO] app:39 - ✓ 业务数据库表 'sales_order' 已存在
2025-06-03 04:01:07 [INFO] app:39 - ✓ 业务数据库表 'order_item' 已存在
2025-06-03 04:01:07 [INFO] app:39 - ✓ 业务数据库表 'sales' 已存在
2025-06-03 04:01:07 [INFO] app:49 - ✓ 系统数据库表 'sql_templates' 已存在
2025-06-03 04:01:07 [INFO] app:49 - ✓ 系统数据库表 'sql_template_params' 已存在
2025-06-03 04:01:07 [INFO] app:49 - ✓ 系统数据库表 'query_history' 已存在
2025-06-03 04:01:07 [INFO] app:63 - 📊 开始初始化数据库表...
2025-06-03 04:01:07 [INFO] app:68 - 开始初始化业务数据库表: ['category', 'customer', 'product', 'sales_order', 'order_item', 'sales']
2025-06-03 04:01:07 [INFO] app:71 - 业务数据库表初始化完成
2025-06-03 04:01:07 [INFO] app:68 - 开始初始化系统数据库表: ['sql_templates', 'sql_template_params', 'query_history']
2025-06-03 04:01:07 [INFO] app:71 - 系统数据库表初始化完成
2025-06-03 04:01:07 [INFO] app:71 - ✅ 数据库表初始化完成
2025-06-03 04:01:07 [INFO] app:72 - 🎉 Chat-BI API 启动成功!
INFO: Application startup complete.
cd web
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run dev
启动成功后,您可以访问:
- 前端:http://localhost:8888
- 后端API文档:http://localhost:13000/docs
- Milvus管理界面:http://localhost:19000
项目提供了测试数据生成工具:
# 生成测试数据
python test/generate_test_data.py
# 运行测试查询
python test/run_test_data.py
我们欢迎所有形式的贡献!
- Fork 项目:点击右上角 Fork 按钮
- 创建分支:
git checkout -b feature/your-feature
- 提交更改:
git commit -am "Add your feature"
- 推送分支:
git push origin feature/your-feature
- 提交PR:创建 Pull Request
- 代码规范:遵循PEP 8(Python)和Prettier(TypeScript)
- 提交信息:使用语义化提交格式
- 测试覆盖:新功能需要对应的测试用例
本项目采用 Apache License 2.0 许可证。详见 LICENSE 文件。
- 作者:sumingcheng
- 邮箱:通过GitHub Issues联系
- 项目主页:https://github.com/sumingcheng/chat-bi
⭐ 如果这个项目对您有帮助,请给我们一个Star!