自然语言转成 SQL 查询、并交互界面运行的实用工具

AI-Database-Query-Assistant :一个基于 Streamlit 的系统,结合 OpenAI GPT-3.5 与 ChromaDB 向量数据库,实现文本向 SQL 查询转化,可作为自建参考框架。

GitHub 上 Paulisure(Paul Loupe)所维护的开源项目 AI-Database-Query-Assistant。这是一个示范如何将自然语言转成 SQL 查询、并通过一个交互界面运行的实用工具。

项目概览

该项目旨在构建一个 自然语言 → SQL 查询系统,并集成了以下技术组件:

  • 利用 OpenAI 的 GPT-3.5 模型将用户的自然语言请求转换成 SQL 查询语句。
  • 使用 ChromaDB 作为向量数据库,用于历史查询的相似性检索。
  • 前端界面采用 Streamlit 框架,以便用户通过网页形式交互。

主要功能亮点

  1. 自然语言查询处理:用户输入普通的英文问题,例如“Who are the top 5 customers by total purchase amount?”,系统会自动生成对应的 SQL 查询。
  2. 向量相似度检索:通过 ChromaDB,系统能够查找与当前输入语句相似的历史查询,提升生成结果的准确性与一致性。
  3. 交互式网页展示:使用 Streamlit 构建的界面让用户操作更加直观,支持输入问题、查看结果、甚至自动生成图表可视化。
  4. 自动可视化:查询结果可通过 Plotly Express 实现实时图表展示,体验更友好。
  5. 样例查询库:包括诸如“哪个流派创收最多”“按国家计算平均发票金额”等示例,以帮助用户快速上手。

技术栈与使用方式

技术用途
GPT-3.5将自然语言转为 SQL
ChromaDB向量数据库,支持相似查询检索
Streamlit用于构建网页交互界面
Plotly Express用于生成数据可视化图表
SQLite(Chinook 数据库)作为后端数据库,架构包含客户、艺术家、专辑、音轨、发票等常见表结构,用于查询演示。

使用步骤简要

  • 克隆仓库后,在本地创建虚拟环境并安装依赖(requirements.txt 中定义)。
  • 配置 OpenAI API key,通过 .streamlit/secrets.toml 文件保存。
  • 启动应用:streamlit run streamlit_app.py,在浏览器中访问本地地址:如 http://localhost:8501即可使用该系统。即可使用该系统。

总结

AI-Database-Query-Assistant 是一个让用户通过自然语言与数据库交互的轻量级工具,集成了 GPT-3.5 生成 SQL、ChromaDB 语义检索与 Streamlit 前端展示,并结合 Plotly 实现直观图表。项目结构清晰,适合作为理解自然语言接口数据库查询原理的学习参考。

Github:https://github.com/Paulisure/AI-Database-Query-Assistant

油管:https://youtu.be/SXkoHhT8Ftc