SQL智能助手

SQLGenius是一款基于自然语言处理的AI SQL助手,可将自然语言转换为SQL查询,支持实时执行和可视化,适用于BigQuery数据库的数据查询和分析。

  • by pawankumar94
  • Python
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 pawankumar94/SQL_MCP_Server

使用说明

SQLGenius-基于AI的SQL助手

SQLGenius是一个智能SQL助手,可以帮助您使用自然语言查询BigQuery数据库。使用MCP(模型上下文协议)、Vertex AI的Gemini Pro和Streamlit构建。

🌟 特性

  • 使用Gemini Pro进行自然语言到SQL的转换
  • 带有多个选项卡的交互式Streamlit UI
  • 实时查询执行和可视化
  • 数据库架构浏览器
  • 查询历史跟踪
  • 安全查询验证
  • BigQuery集成
  • 基于MCP的架构

🎥 演示

观看SQLGenius的实际操作!以下是如何使用该应用程序的快速演示:

在这个演示中,您可以看到:

  1. 自然语言查询转换为SQL
  2. 交互式数据可视化
  3. 模式探索
  4. 查询历史跟踪

🚀 安装

  1. 克隆存储库并导航到项目目录:
cd sql_mcp_server
  1. 安装依赖项:
pip install -r requirements.txt
  1. 复制 .env.example 文件到 .env 并填写您的配置:
cp .env.example .env
  1. 在中设置环境变量 .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

🎮 用法

  1. 启动应用程序:
streamlit run streamlit_app.py
  1. 当Streamlit应用程序启动时,MCP服务器将自动启动

  2. 使用选项卡可以:

    • 询问有关数据的自然语言问题
    • 直接编写SQL查询
    • 探索您的数据库架构

📊 界面选项卡

💬 自然语言查询

用简单的英语提问并获得SQL结果:

  • “按收入显示前5名客户”
  • “什么产品一月份的销售额最高?”
  • “上个月下了多少订单?”

📊 SQL查询

直接编写和执行SQL查询:

SELECT * FROM orders 
WHERE order_date > '2023-01-01' 
ORDER BY total_amount DESC
LIMIT 10

📋 数据库浏览器

  • 浏览可用表格
  • 查看表架构
  • 查看任何表格中的示例数据

🔒 安全功能

  • 只允许SELECT查询
  • 查询验证以防止危险操作
  • 安全的凭证管理
  • 错误处理和输入验证

🛠️ 建筑

SQLGenius使用模型上下文协议(MCP)来公开工具,以实现:

  1. 自然语言处理:将英语问题转换为SQL
  2. 数据探索:获取架构信息和示例数据
  3. SQL执行:对数据库运行经过验证的查询

该架构由以下部分组成:

  • MCP服务器:处理数据库连接并提供工具
  • 流线型前端:用于与系统交互的用户界面
  • 顶点AI(Gemini Pro):增强自然语言理解能力
  • BigQuery:对数据执行SQL查询

📝 MCP工具

以下MCP工具可用:

  1. execute_nl_query:执行自然语言查询
  2. execute_sql_query:执行原始SQL查询
  3. list_tables:列出所有可用表
  4. get_table_schema:获取特定表的架构

📚 高级用法

要向MCP服务器添加自定义工具,请执行以下操作:

  1. 编辑 register_tools() 方法in sql_mcp_server.py
  2. 使用添加自定义工具 @self.tool() 装饰器
  3. 重新启动服务器

🤝 贡献

欢迎投稿!请随时提交拉取请求。