SQL生成工具

一款AI驱动的助手,可将自然语言转换为Snowflake SQL查询,支持MCP和代理推理,直接在Web界面中查询和可视化结果。

  • by EdanStasiuk
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 EdanStasiuk/SnowQuery

使用说明

SnowQuery(可译为“雪查询”或根据具体语境保持原名,若“SnowQuery”为特定产品或技术名称,则通常直接使用原名)

一个基于人工智能的助手,能够利用MCP(可能是指某种模型或组件,如“Multi-Context Processing”等,具体需根据上下文确定)和代理推理技术,将自然语言转换为Snowflake SQL查询。轻松查询您的Snowflake数据库,并直接在网页界面中可视化结果。

项目目录结构

SnowQuery/
│── src/
│ ├── agent.py # Main agent logic (MCP + LLM + orchestration)
│ ├── snowflake_client.py # Connects & queries Snowflake
│ ├── mcp_context.py # MCP integration (schemas, metadata provider)
│ └── app.py # CLI or Streamlit web interface
│
│── requirements.txt # deps (snowflake-connector-python, openai, streamlit, mcp)
|–– .env # Snowflake + API credentials (you will need to create this file to run SnowQuery––sorry, credits cost $$$)
│── README.md

设置

  1. 克隆仓库
git clone https://github.com/EdanStasiuk/SnowQuery.git
cd SnowQuery/src
  1. 创建一个虚拟环境(推荐)
python3 -m venv .venv
source .venv/bin/activate   # Linux/macOS
.venv\Scripts\activate      # Windows
  1. 安装依赖项
pip install -r requirements.txt
  1. 创建一个 .env 提交文件 src/ 使用您的凭证
SNOWFLAKE_ACCOUNT=<your_account>
SNOWFLAKE_USER=<your_user>
SNOWFLAKE_PASSWORD=<your_password>
SNOWFLAKE_WAREHOUSE=<your_warehouse>
SNOWFLAKE_DATABASE=<your_database>
SNOWFLAKE_SCHEMA=<your_schema>
OPENAI_API_KEY=<your_openai_key>

⚠️ 使用 SnowQuery 与 OpenAI API 将会消耗积分。

如何使用

CLI 模式

直接从终端运行 SnowQuery:

python3 app.py "<Enter your prompt here>"

示例:

python3 app.py "Show me top 5 customers by revenue"
  • 输出生成的SQL
  • 以表格形式显示查询结果

网页界面(Streamlit)

启动交互式网页应用:

streamlit run app.py
  • 在文本框中输入您的自然语言查询
  • 点击 跑 生成SQL并获取结果
  • 以表格形式查看结果,并使用交互式图表进行可视化

特点:

  • 选择要在X轴和Y轴上绘制的列
  • 选择图表类型:柱状图、折线图、散点图
  • 所有数据列的交互式工具提示
  • 针对Snowflake的具有重试逻辑的弹性查询

注释

  • Streamlit 需要 Python 3.8 或更高版本
  • 确保您的Snowflake凭据正确,并且模式存在