使用说明
SQLGenius-基于AI的SQL助手
SQLGenius是一个智能SQL助手,可以帮助您使用自然语言查询BigQuery数据库。使用MCP(模型上下文协议)、Vertex AI的Gemini Pro和Streamlit构建。
🌟 特性
- 使用Gemini Pro进行自然语言到SQL的转换
- 带有多个选项卡的交互式Streamlit UI
- 实时查询执行和可视化
- 数据库架构浏览器
- 查询历史跟踪
- 安全查询验证
- BigQuery集成
- 基于MCP的架构
🎥 演示
观看SQLGenius的实际操作!以下是如何使用该应用程序的快速演示:
在这个演示中,您可以看到:
- 自然语言查询转换为SQL
- 交互式数据可视化
- 模式探索
- 查询历史跟踪
🚀 安装
- 克隆存储库并导航到项目目录:
cd sql_mcp_server
- 安装依赖项:
pip install -r requirements.txt
- 复制
.env.example文件到.env并填写您的配置:
cp .env.example .env
- 在中设置环境变量
.env:
PROJECT_ID=your-project-id
DATASET_ID=your-dataset-id
GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service-account.json
VERTEX_AI_LOCATION=us-central1
🎮 用法
- 启动应用程序:
streamlit run streamlit_app.py
-
当Streamlit应用程序启动时,MCP服务器将自动启动
-
使用选项卡可以:
- 询问有关数据的自然语言问题
- 直接编写SQL查询
- 探索您的数据库架构
📊 界面选项卡
💬 自然语言查询
用简单的英语提问并获得SQL结果:
- “按收入显示前5名客户”
- “什么产品一月份的销售额最高?”
- “上个月下了多少订单?”
📊 SQL查询
直接编写和执行SQL查询:
SELECT * FROM orders
WHERE order_date > '2023-01-01'
ORDER BY total_amount DESC
LIMIT 10
📋 数据库浏览器
- 浏览可用表格
- 查看表架构
- 查看任何表格中的示例数据
🔒 安全功能
- 只允许SELECT查询
- 查询验证以防止危险操作
- 安全的凭证管理
- 错误处理和输入验证
🛠️ 建筑
SQLGenius使用模型上下文协议(MCP)来公开工具,以实现:
- 自然语言处理:将英语问题转换为SQL
- 数据探索:获取架构信息和示例数据
- SQL执行:对数据库运行经过验证的查询
该架构由以下部分组成:
- MCP服务器:处理数据库连接并提供工具
- 流线型前端:用于与系统交互的用户界面
- 顶点AI(Gemini Pro):增强自然语言理解能力
- BigQuery:对数据执行SQL查询
📝 MCP工具
以下MCP工具可用:
execute_nl_query:执行自然语言查询execute_sql_query:执行原始SQL查询list_tables:列出所有可用表get_table_schema:获取特定表的架构
📚 高级用法
要向MCP服务器添加自定义工具,请执行以下操作:
- 编辑
register_tools()方法insql_mcp_server.py - 使用添加自定义工具
@self.tool()装饰器 - 重新启动服务器
🤝 贡献
欢迎投稿!请随时提交拉取请求。