DBChat 智能体
DBChat 是一款将传统数据库操作从”SQL 驱动”升级为”语义驱动”的智能桌面工具。用户通过自然语言查询数据库,系统自动完成 Schema 理解、SQL 生成、安全验证与执行,大幅降低数据库使用门槛。
项目背景
传统数据库管理工具(如 Navicat、DBeaver)要求用户具备 SQL 编写能力,对非技术人员不够友好。即使是有经验的开发者,在面对复杂查询时也需要反复调试 SQL 语句。随着大语言模型(LLM)技术的成熟,我们探索将自然语言处理能力引入数据库管理场景,让用户可以用日常语言与数据库对话。
系统架构
采用 React + FastAPI + Tauri 三端架构:
- 前端(React + TypeScript):负责用户界面渲染、对话交互管理、结果可视化展示
- 后端(FastAPI + Python):核心业务逻辑层,集成 LangGraph Agent、数据库连接池、SQL 执行引擎
- 桌面壳(Tauri v2 + Rust):将 Web 应用打包为跨平台桌面程序,集成 Python Sidecar 进程
支持主流数据库:MySQL、PostgreSQL、SQLite、SQL Server。
核心技术实现
1. 多阶段 Agent 有向图
基于 LangGraph 构建多阶段 Agent 工作流,串联完整查询链路:
用户输入 → Schema 理解 → 意图识别 → SQL 生成 → 安全验证 → 执行 → 结果返回
每个阶段独立可回溯,支持子图路由与容错机制。相比 LLM 直出 SQL,准确率显著提升,有效解决表名幻觉问题。
2. Tauri v2 桌面集成
使用 Tauri v2 套壳集成 Python Sidecar 进程,通过 PyInstaller 将 FastAPI 服务打包为独立可执行文件。消除 Web 部署依赖,实现真正的跨平台桌面应用分发(Windows/macOS/Linux)。
3. 双重安全防护
- Prompt 守卫:在 LLM 输入层拦截潜在的危险指令(如”删除所有数据”)
- SQL Validator:在执行前验证 SQL 语句,拦截无 WHERE 条件的 UPDATE/DELETE、DROP TABLE 等高风险操作
双重机制降低误操作风险,保障数据安全。
4. 四层数据生命周期模型
- 连接验证层:建立数据库连接时验证凭证有效性
- Schema 刷新层:定期同步数据库元数据,确保 Agent 掌握最新表结构
- 会话激活层:管理多轮对话上下文,支持连续查询
- 消息持久化层:保存历史对话记录,支持回溯与复用
技术栈
- 前端:React, TypeScript, TailwindCSS
- 后端:Python, FastAPI, LangGraph, SQLAlchemy
- 桌面:Tauri v2, Rust, PyInstaller
- 数据库:MySQL, PostgreSQL, SQLite, SQL Server
项目价值
- 降低数据库使用门槛,非技术人员可通过自然语言查询数据
- 多阶段 Agent 架构提升 SQL 生成准确率,减少幻觉问题
- 桌面部署模式保障数据隐私,无需将敏感数据上传至云端
- 双重安全机制防止误操作,适合生产环境使用