SQL自然语言助手

一个基于Claude AI的自然语言接口,用于与SQLite数据库交互,支持通过自然语言生成和执行SQL查询。

  • by narinzar
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 narinzar/agents_sql_mcp

使用说明

AI SQL助手

用于与SQLite数据库交互的自然语言界面,由Anthropic的Claude AI提供支持。

概述

此应用程序允许用户使用自然语言与SQLite数据库进行交互。用户可以用简单的英语提问或给出指令,而不是手动编写SQL查询,人工智能将生成并执行适当的SQL查询,返回格式化的结果。

特性

  • 自然语言查询:用简单的英语询问有关数据的问题
  • SQL查询生成:根据用户输入自动生成SQL查询
  • 查询执行:对连接的SQLite数据库执行生成的查询
  • 结果格式:以可读格式显示查询结果
  • 错误处理:查询失败时提供清晰的解释
  • 查询示例:包括示例查询,以帮助用户入门

建筑

该应用程序由三个主要部分组成:

  1. web界面 (app.py):Gradio网络界面,允许用户与人工智能交互
  2. MCP服务器 (mcp_server.py):处理SQL查询执行的服务器
  3. MCP客户端 (mcp_client.py):促进web界面和MCP服务器之间通信的客户端

先决条件

  • Python 3.8+
  • 人类API密钥(访问Claude)

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/ai-sql-assistant.git
    cd ai-sql-assistant
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 创建一个 .env 使用Anthropic API密钥在项目根目录中创建文件:

    ANTHROPIC_API_KEY=your_api_key_here
    

用法

  1. 启动应用程序:

    python app.py
    
  2. 打开您的网络浏览器并导航到:

    http://localhost:7860
    
  3. 键入自然语言查询,然后按Enter键或单击Submit。

示例查询

以下是一些您可以尝试的示例查询:

  • “列出数据库中的所有表”
  • “显示所有用户”
  • “统计有多少产品的价格超过300美元”
  • “库存中所有产品的总价值是多少?”
  • “插入一款名为'平板电脑'的新产品,价格为499.99美元,库存为5只”
  • “将笔记本电脑的价格更新为1099.99美元”

示例数据库

该应用程序使用以下表创建了一个示例SQLite数据库:

用户表

  • id:INTEGER(主键)
  • name:TEXT
  • email:TEXT
  • created_at:时间戳

产品列表

  • id:INTEGER(主键)
  • name:TEXT
  • price:真实
  • stock:整数

技术细节

MCP(模型完成协议)

该应用程序使用MCP来管理Claude和SQLite数据库之间的通信。MCP允许Claude调用函数(工具)并接收结果,从而创建交互式反馈循环。

人物克劳德

该应用程序使用Anthropic的Claude 3.7 Sonnet模型来:

  1. 理解自然语言查询
  2. 生成适当的SQL查询
  3. 向用户解释查询结果

数据库

该应用程序使用SQLite进行数据库操作。SQLite是:

  • 轻量级
  • 无服务器
  • 自足
  • 零配置

定制

连接到您自己的数据库

要使用自己的SQLite数据库而不是示例数据库,请执行以下操作:

  1. 替换中的数据库初始化 app.py 使用您自己的数据库文件路径
  2. 更新UI中的示例表文档以匹配您的模式

修改系统提示

引导Claude行为的系统提示可以在 ChatProcessor 类在 app.py.

局限性

  • 目前仅支持SQLite数据库
  • 复杂的查询可能需要改进
  • 对格式错误的查询进行有限的错误恢复

贡献

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

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。