VoloData——基于LangChain的智能数据分析系统

🚀 VoloData

README | English | 中文

项目地址 | github | gitee

🤖 一个基于 AI 的数据库交互平台,支持多数据源连接、自然语言查询和智能对话。我开源的目的是,想让全球的开发者推动此项目更加安全、更加专业、更加智能。

  • 这是我的首个开源项目,如果哪里做得不好,或者有疑问,欢迎到评论区或者github上中讨论,感谢支持!!!

❓ 为什么要使用 Volo Data

现有的 NL2SQL 工具通常存在以下问题:

  • 难以接入多数据源
  • 缺少可扩展 AI 工作流
  • 不支持实时流式响应

VoloData 提供:

  • 针对开源项目 Vanna 中 SQL 生成阶段的 LLM 提示词进行深度优化
  • LangGraph AI workflow
  • 多数据库统一接口
  • SSE 实时响应
  • 安全代码沙箱

✨ 主要特性

特性 描述
🔗 多数据源支持 MySQL、PostgreSQL、SQLite、Excel、CSV
💬 自然语言查询 AI 模型将自然语言转换为 SQL
🧠 智能对话系统 向量数据库 + 对话历史管理
实时流式响应 Server-Sent Events (SSE) 即时推送
🔒 API Key 认证 内置安全认证机制
📦 Docker 容器化 开箱即用的 Docker Compose
🛡️ 代码沙箱 安全运行 LLM 生成的指标计算代码

🖼️ 项目预览

主页

数据源

聊天界面

更多项目预览信息,请查看产品使用手册(正在完善中)

🏗️ 核心业务流程

🛠️ 技术栈

Backend

框架 用途
FastAPI 现代 Web 框架
SQLAlchemy ORM 框架
Alembic 数据库迁移
ChromaDB 向量数据库
Redis 缓存 & 队列
Pydantic 数据验证
Langgraph AI 工作流

Frontend

框架 用途
Next.js React 框架
TypeScript 类型安全
TailwindCSS 样式框架

DevOps

工具 用途
Docker 容器化部署
Docker Compose 多容器编排
GitHub Actions CI/CD

🚀 快速部署

Docker 一键部署

bash 复制代码
# 克隆项目
git clone https://github.com/keminze/volo-data.git
cd volo-data

# 启动所有服务
docker-compose up -d

开发环境中的 Docker 一键部署

运行以下命令前,可修改 .env.langsmith 文件(非必须),随后在 LangSmith 中可查看工作流运行日志,具体配置请查阅 LangSmith Docs

bash 复制代码
docker-compose -f docker-compose.dev.yml up -d

✅ 启动完成后访问: http://localhost:3000

📁 项目结构

复制代码
volo-data/
├── main.py                    # 🏁 应用入口
├── requirements.txt           # 📦 Python 依赖
├── Dockerfile                 # 🐳 Docker 配置
├── docker-compose.yml         # 🧩 完整环境配置
├── docker-compose.dev.yml     # 💻 开发环境配置
├── alembic.ini               # 🔄 数据库迁移配置
├── redis_client.py           # 📡 Redis 客户端
│
├── config/                   # ⚙️ 配置模块
│   ├── database.py          # 数据库配置
│   ├── logging_config.py    # 日志配置
│   ├── models.py            # SQLAlchemy 模型
│   └── parameter.py         # 参数配置
│
├── routers/                 # 🛤️ API 路由
│   ├── connection.py        # 数据源连接
│   ├── conversation.py      # 对话管理
│   ├── database.py          # 数据库操作
│   ├── generate.py          # 任务生成
│   └── log.py               # 日志查询
│
├── services/                # 🧩 业务逻辑
│   ├── db.py                # 数据库业务
│   ├── graph.py             # 图相关操作
│   ├── graph_sse.py         # SSE 流式响应
│   ├── tools.py             # 工具函数
│   ├── prompt.py            # 提示词管理
│   ├── vanna.py             # SQL 生成
│   └── log.py               # 日志业务
│
├── middlewares/             # 🔧 中间件
│   ├── api_key_middleware.py # API Key 认证
│   └── logging.py            # 日志中间件
│
├── vanna/                   # 🤖 Vanna SQL 生成
├── frontend/                # 🎨 Next.js 前端
└── alembic/                 # 🔁 数据库迁移

本地开发

前置要求
  • Python 3.12+
  • Node.js 20+
步骤
bash 复制代码
# 1. 克隆项目
git clone https://github.com/keminze/volo-data.git
cd volo-data

# 2. 创建虚拟环境
python -m venv env
# Windows
env\Scripts\activate
# Linux/macOS
source env/bin/activate

# 3. 安装依赖
pip install -r requirements.txt

# 4. 环境配置
# 复制 .env.example 为 .env 并修改配置

# 5. 初始化数据库
alembic upgrade head

# 6. 启动后端 (端口 9000)
python main.py --port 9000

# 7. 启动前端 (新终端)
cd frontend
npm install
npm run dev

📚 API 文档

启动服务后访问:

文档 地址
Swagger UI http://localhost:9000/docs
ReDoc http://localhost:9000/redoc

🔐 安全配置

API 认证

所有请求需携带 API Key:

bash 复制代码
curl -H "X-API-Key: your-api-key" http://localhost:9000/connections

环境变量

⚠️ 敏感信息通过环境变量配置,不要提交到代码库

bash 复制代码
# 添加到 .gitignore
echo ".env" >> .gitignore

🗃️ 数据库迁移

bash 复制代码
# 创建新迁移
alembic revision --autogenerate -m "描述迁移内容"

# 应用迁移
alembic upgrade head

# 回滚迁移
alembic downgrade -1

🤝 贡献

欢迎贡献!请阅读 CONTRIBUTING.md 了解详情。

bash 复制代码
1. Fork 项目
2. 创建功能分支: git checkout -b feature/AmazingFeature
3. 提交更改: git commit -m 'Add AmazingFeature'
4. 推送到分支: git push origin feature/AmazingFeature
5. 开启 Pull Request

✍️ 未来计划

即将发布的功能特性

  • 更多数据源支持
  • SQL 安全审计(自愈/纠错)
  • 更优秀的 Agent 记忆管理
  • 前端接入 i18n,面向国际化

正在规划的功能特性

  • 可视化仪表盘
  • 数据权限与行级过滤
  • 企业级文档 RAG,增强数据分析准确性

📄 许可证

本项目采用 Apache 2.0 License 许可证。

📬 联系方式

渠道 链接
🐛 问题反馈 Issues
💬 讨论 Discussions
📧 邮箱 kmz3225147671@gmail.com

💖 致谢

感谢以下开源项目:

项目 用途
Vanna SQL 生成
ChromaDB 向量数据库
FastAPI Web 框架
langchain-sandbox 代码沙箱
LangGraph AI 工作流

如果对此项目满意,希望给我一颗星星,这是我维护项目的动力!

相关推荐
flying_13142 小时前
图神经网络分享系列-MPNN(Neural Message Passing for Quantum Chemistry)(二)
人工智能·深度学习·神经网络·图神经网络·消息传递·门控机制·mpnn
HyperAI超神经2 小时前
AI驱动量子精修,卡内基梅隆大学等提出AQuaRef,首次用量子力学约束精修蛋白质全原子模型
人工智能·深度学习·机器学习·架构·机器人·cpu·量子计算
balmtv3 小时前
Grok 3技术深度拆解:20万卡集群、思维链推理与DeepSearch的架构实现
人工智能·架构
毅航3 小时前
告别 AI 名词焦虑:一文读懂从 LLM 到 Agent Skill的演进
人工智能·后端
秦ぅ时3 小时前
Grok-3-Fast-Beta 完整解析:xAI 低延迟大模型 + 可直接运行调用代码
人工智能·gpt·microsoft
带娃的IT创业者3 小时前
Weclaw 请求路由实战:一个 request_id 如何在 800 个并发连接中精准找到目标浏览器?
python·websocket·fastapi·架构设计·实时通信·openclaw·weclaw
肖恭伟3 小时前
VScode入门学习
ide·vscode·学习
聚客AI4 小时前
✅自托管AI网关的正确姿势:OpenClaw远程访问与安全配置
人工智能·agent·掘金·日新计划
brave and determined4 小时前
工程设计类学习(DAY25):高频PCB设计:射频布局与屏蔽腔体规范
人工智能·emc·电磁兼容·emi·屏蔽罩·电磁屏蔽·层叠设计