AI SQL助手
用于与SQLite数据库交互的自然语言界面,由Anthropic的Claude AI提供支持。
概述
此应用程序允许用户使用自然语言与SQLite数据库进行交互。用户可以用简单的英语提问或给出指令,而不是手动编写SQL查询,人工智能将生成并执行适当的SQL查询,返回格式化的结果。
特性
- 自然语言查询:用简单的英语询问有关数据的问题
- SQL查询生成:根据用户输入自动生成SQL查询
- 查询执行:对连接的SQLite数据库执行生成的查询
- 结果格式:以可读格式显示查询结果
- 错误处理:查询失败时提供清晰的解释
- 查询示例:包括示例查询,以帮助用户入门
建筑
该应用程序由三个主要部分组成:
- web界面 (
app.py):Gradio网络界面,允许用户与人工智能交互 - MCP服务器 (
mcp_server.py):处理SQL查询执行的服务器 - MCP客户端 (
mcp_client.py):促进web界面和MCP服务器之间通信的客户端
先决条件
- Python 3.8+
- 人类API密钥(访问Claude)
安装
- 克隆此存储库:
git clone https://github.com/yourusername/ai-sql-assistant.git
cd ai-sql-assistant- 安装依赖项:
pip install -r requirements.txt- 创建一个
.env使用Anthropic API密钥在项目根目录中创建文件:
ANTHROPIC_API_KEY=your_api_key_here用法
- 启动应用程序:
python app.py- 打开您的网络浏览器并导航到:
http://localhost:7860- 键入自然语言查询,然后按Enter键或单击Submit。
示例查询
以下是一些您可以尝试的示例查询:
- “列出数据库中的所有表”
- “显示所有用户”
- “统计有多少产品的价格超过300美元”
- “库存中所有产品的总价值是多少?”
- “插入一款名为'平板电脑'的新产品,价格为499.99美元,库存为5只”
- “将笔记本电脑的价格更新为1099.99美元”
示例数据库
该应用程序使用以下表创建了一个示例SQLite数据库:
用户表
id:INTEGER(主键)name:TEXTemail:TEXTcreated_at:时间戳
产品列表
id:INTEGER(主键)name:TEXTprice:真实stock:整数
技术细节
MCP(模型完成协议)
该应用程序使用MCP来管理Claude和SQLite数据库之间的通信。MCP允许Claude调用函数(工具)并接收结果,从而创建交互式反馈循环。
人物克劳德
该应用程序使用Anthropic的Claude 3.7 Sonnet模型来:
- 理解自然语言查询
- 生成适当的SQL查询
- 向用户解释查询结果
数据库
该应用程序使用SQLite进行数据库操作。SQLite是:
- 轻量级
- 无服务器
- 自足
- 零配置
定制
连接到您自己的数据库
要使用自己的SQLite数据库而不是示例数据库,请执行以下操作:
- 替换中的数据库初始化
app.py使用您自己的数据库文件路径 - 更新UI中的示例表文档以匹配您的模式
修改系统提示
引导Claude行为的系统提示可以在 ChatProcessor 类在 app.py.
局限性
- 目前仅支持SQLite数据库
- 复杂的查询可能需要改进
- 对格式错误的查询进行有限的错误恢复
贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
