返回市场
SQL-飞行员

SQL-飞行员

作者:chandraprvkvsh7 星标更新:2025-10-06

项目介绍

SQL Pilot

基于LangGraph的人工智能代理,连接自定义的MCP服务器以提供自然语言数据库交互。SQL Pilot使用户能够通过对话式AI查询、操作和管理SQLite数据库。

功能

  • 自然语言查询:用英文提问关于数据库的问题
  • 数据库操作:读取、插入、更新、删除和创建表
  • 模式管理:查看表结构和关系
  • 身份验证与安全:内置用户身份验证及权限管理
  • 网页界面:基于Gradio的简洁UI,便于交互
  • 会话记忆:维护对话上下文和数据库模式意识

能力

数据库操作

  • 列出数据库中的所有表
  • 使用过滤、限制和排序读取数据
  • 插入新的记录并进行验证
  • 使用WHERE子句更新现有记录
  • 带有安全约束的删除记录
  • 创建具有自定义模式的新表
  • 删除表(需同意)

AI增强功能

  • 智能查询解析和操作规划
  • 上下文感知的后续问题
  • 自动参数映射和验证
  • 错误处理和回退机制
  • 基于会话的记忆和学习

快速开始

先决条件

  • Python 3.8+
  • OpenAI API密钥(设置在环境变量中)

安装

  1. 克隆仓库

    git clone https://github.com/chandraprvkvsh/SQL-Pilot.git
    cd SQL-Pilot
    
  2. 安装依赖项

    pip install -r requirements.txt
    cd Query-MCP
    pip install -r requirements.txt
    
  3. 设置环境变量

    export OPENAI_API_KEY="your-openai-api-key"
    

运行系统

  1. 启动MCP服务器

    cd Query-MCP (github.com/chandraprvkvsh/Query-MCP)
    python server.py
    
  2. 启动网页界面(在新终端中)

    python ui.py
    
  3. 访问界面

    • 在浏览器中打开http://localhost:7860
    • 上传一个SQLite数据库或创建一个示例数据库
    • 开始与您的数据库聊天!

使用示例

"显示数据库中的所有表"
"列出所有用户及其电子邮件地址"
"添加一个名为'Alice'且电子邮件为'alice@example.com'的新用户"
"将ID为1的用户更改为'Bob'"
"创建一个名为'products'的新表,包含id、name和price列"
"显示users表的模式"
"我上一次执行的操作是什么?"

架构

  • LangGraph代理:协调对话流程和决策制定
  • Query-MCP服务器:处理数据库操作的自定义MCP服务器
  • FastMCP框架:支持工具调用和资源管理
  • Gradio UI:提供用户交互的网页界面
  • SQLite数据库:存储和管理您的数据
  • 持久代理记忆:存储用户上下文、会话历史和模式意识,用于智能多轮对话

安全特性

  • 基于同意的破坏性操作
  • 防止SQL注入的参数化查询
  • 输入验证和清理
  • 会话超时和清理