Github 9 个惊艳的开源 NL2SQL 项目

你好,我是一宿君。

NL2SQL------自然语言转 SQL ,也称为 Text2SQL,已经成为大模型落地最常见的场景之一。

今天介绍 GitHub 上 9 个值得关注的开源项目,按照星标核心能力依次展开介绍,方便大家参考、借鉴。

  1. SuperSonic
  2. Chat2DB
  3. SQL Chat
  4. Vanna
  5. Dataherald
  6. WrenAI
  7. Awesome-Text2SQL
  8. LangChain SQL
  9. Langchain-Chatchat

SuperSonic

GitHub Star ⭐ 4.1k github.com/tencentmusi...

腾讯音乐开源,SuperSonic 融合 Chat BI(powered by LLM)和Headless BI(powered by 语义层)打造新一代的BI平台。这种融合确保了Chat BI能够与传统BI一样访问统一化治理的语义数据模型。

主要特点

  • 自然语言转 SQL(Text-to-SQL)

    用户可以通过自然语言提问,平台将自动生成 SQL 查询并执行,返回分析结果。

  • ChatBI 与 Headless BI 融合

    ChatBI 提供自然语言交互界面,Headless BI 屏蔽底层数据结构,提供统一的指标和维度定义,支持多种数据源的接入。

  • 支持多种数据库和 LLM

    支持 PostgreSQL、MySQL、ClickHouse、Doris 等数据库,以及 OpenAI、Vertex AI、Anthropic 等大语言模型。

整体架构

  • 模型知识库(Knowledge Base): 定期从语义模型中提取相关的模式信息,构建词典和索引,以便后续的模式映射。
  • 模式映射器(Schema Mapper): 将自然语言文本在知识库中进行匹配,为后续的语义解析提供相关信息。
  • 语义解析器(Semantic Parser): 理解用户查询并抽取语义信息,生成语义查询语句S2SQL。
  • 语义修正器(Semantic Corrector): 检查语义查询语句的合法性,对不合法的信息做修正和优化处理。
  • 语义翻译器(Semantic Translator): 将语义查询语句翻译成可在物理数据模型上执行的SQL语句。
  • 问答插件(Chat Plugin): 通过第三方工具扩展功能。给定所有配置的插件及其功能描述和示例问题,大语言模型将选择最合适的插件。
  • 问答记忆(Chat Memory): 将历史的查询轨迹进行封装,可被召回作为few-shot样例嵌入提示词。

一句话总结:ChatBI + Headless BI 二合一,用自然语言问数、系统自动选可视化,语义层可插拔,对 Java 生态很友好 。

Chat2DB

GitHub Star ⭐ 24k github.com/chat2db/cha...

Chat2DB 是一个智能的通用SQL客户端和数据报表工具,它集成了AI的能力。Chat2DB可以帮助您更快地编写SQL查询、管理数据库、生成报告、探索数据、并且可以与多种数据库进行交互。

主要特点

  • 智能生成SQL: Chat2DB Pro支持AI驱动的智能SQL开发,可以帮助您更快地编写SQL查询,另外,Chat2DB 还支持 SQL 转自然语言,可以快速轻松理解复杂 SQL 的含义。
  • 数据库管理: 支持多种10+数据库,包括主流的 MySQL、PostgreSQL、H2、Oracle、MongoDB、Redis等。
  • 智能生成报表: Chat2DB Pro支持AI驱动的智能数据报表,可以快速生成看板。
  • 数据结构同步: Chat2DB Pro支持数据库表结构同步,可以快速同步数据库表结构。
  • 夸平台:Chat2DB 是一个跨平台的应用程序,支持Windows、MacOS和Linux。

SQL Chat

GitHub Star ⭐ 5.4k github.com/sqlchat/sql...

SQL Chat 是一个基于聊天的 SQL 客户端,使用自然语言与数据库以沟通的方式,实现对数据库的查询、修改、新增、删除等操作。

主要特点

  • 畅聊式界面:不再被复杂界面卡住,只需一句话,就能驱动数据库操作,顺滑又高效。
  • 多库支持:目前兼容 MySQL、PostgreSQL、MSSQL 以及 TiDB Cloud 等主流数据库。
  • 技术栈现代:基于 Next.js 构建,可以快速部署到 Vercel,也可选择自托管方案。
  • 开源免费:完全开源,没有门槛,有兴趣可以自己搭建或二次开发。

Vanna

GitHub Star ⭐ 19.9k github.com/vanna-ai/va...

Vanna 是一个获得麻省理工学院许可的开源 Python RAG(检索增强生成)框架,用于 SQL 生成和相关功能。

主要特点

  • 动态微调:可训练 RAG 模型,将你的数据库 schema、历史查询等信息构建成检索基础;
  • 智能生成SQL:自然语言提问,自动生成可执行 SQL 查询。

Vanna 只需两个简单的步骤即可工作 - 在您的数据上训练 RAG"模型",然后提出问题,这些问题将返回可以设置为在您的数据库上自动运行的 SQL 查询。

工作原理

Dataherald

GitHub Star ⭐ 3.1k
github.com/Dataherald/...

Dataherald 是一个自然语言到 SQL 的引擎,专为关系数据的企业级问答而构建。它允许您从数据库中设置一个 API,可以用简单的英语回答问题。

主要功能

  • 允许业务用户无需通过数据分析师即可从数据仓库中获取见解
  • 从 SaaS 应用程序中的生产数据库启用 Q+A
  • 从您的专有数据创建 ChatGPT 插件

WrenAI

GitHub Star ⭐ 9.8k github.com/Canner/Wren...

WrenAI 是一款开源的 Generative BI(GenBI)Agent,能让你直接对数据库"聊天"------生成 SQL、图表(Text-to-Chart),并且输出 AI 驱动的数据洞察,一通话就搞定

主要特点

  • 数据对话:用任何语言提问→精确的 SQL 和答案
  • 智能总结:人工智能编写的摘要、图表和报告
  • 语义解析:MDL 模型对架构、指标、联接进行编码
  • API接入:在应用内生成查询和图表
  • 多库兼容:支持 PostgreSQL、MySQL、SQL Server、ClickHouse、Oracle、Snowflake 等主流数据库
  • 兼容主流 LLM 平台:支持 OpenAI(及 Azure)、Google Gemini / Vertex AI、Anthropic、Ollama、Databricks、Groq 等多种模型

工作原理

Awesome-Text2SQL

GitHub Star ⭐ 3k github.com/eosphoros-a...

Awesome-Text2SQL 是由 DB-GPT 社区发起的开源项目,旨在汇总和整理 Text-to-SQL 领域的优质教程、模型、数据集和工具,帮助研究人员和开发者快速入门并深入了解该领域。

一句话总结:Awesome-Text2SQL 不是工具,是"导航站"------把论文、数据集、评测基准、开源项目一网打尽的 NL2SQL 百科全书 。

LangChain SQL

GitHub Star ⭐ 114k (随 LangChain 主库) python.langchain.com/v0.1/docs/u...

LangChain 带有许多内置链和代理,LangChain SQL就是其中之一的 SQL 链代理,与 SQLAlchemy 支持的任何 SQL 方言(例如 MySQL、PostgreSQL、Oracle SQL、Databricks、SQLite等)均兼容。

支持功能用例

  • 生成将基于自然语言问题运行的查询
  • 创建可以根据数据库数据回答问题的聊天机器人
  • 根据用户想要分析的见解构建自定义仪表板

核心指南:

  • 代理:生成可以与 SQL DB 交互的代理。
  • 提示策略 :改进 SQL 查询生成的策略。
  • 查询验证 :如何验证 SQL 查询。
  • 大型数据库 :如何与具有许多表和高基数列的数据库进行交互。

一句话总结:官方 SQL 链代理,能自动纠错、回滚并重跑 SQL,把任何 LangChain 项目升级成"会聊数据库"的智能体 。

Langchain-Chatchat

GitHub Star ⭐ 35.9k github.com/chatchat-sp...

LangChain-Chatchat (原 Langchain-ChatGLM) 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的 RAG 与 Agent 应用项目。

主要特点

  • 支持多种主流数据库
  • 支持多种主流 LLM
  • 支持数据库对话(NL2SQL)
  • 支持多模态图像对话

LangChain-Chatchat 是一个完善的 Agent 搭建框架,NL2SQL 是其中对接数据的一个功能,基于其强大的工作原理,为 LLM 提供与 SQL 数据库交互的工具集,支持更复杂的查询和多轮交互。

工作原理

功能概览


总结

从个人提效到企业级 BI,这 9 个开源项目基本覆盖了 NL2SQL 的全部主流玩法。

如果你恰好有 NL2SQL 的需求,这些项目或许可以给到你一些启发和灵感。

感兴趣的同学可以拉个代码,跑个 demo,总有一款适合你的。

风险提示

很多业务场景都得益于 LLM 能力的提升得到了显著提效,NL2SQL 是显而易见的提效模式。值得注意的一点, LLM 能力虽然很强,但是仍然无法避免产生幻觉,NL2SQL 是与数据库直接打交道,必然存在一定的风险,所以在应用的过程中,需要格外谨慎,严格把控 LLM 边界能力和数据库风险管控。

都看到这了,点个赞吧!!!

相关推荐
x10n93 小时前
GitHub宕机时的应急协作方案
github
吃掉你也没关系吧14 小时前
【postgresql】一文详解postgresql中的统计模块
sql·postgresql
AI 嗯啦16 小时前
SQL详细语法教程(三)mysql的函数知识
android·开发语言·数据库·python·sql·mysql
深圳多奥智能一卡(码、脸)通系统17 小时前
以下是对智能电梯控制系统功能及系统云端平台设计要点的详细分析,结合用户提供的梯控系统网络架构设计和系统软硬件组成,分点论述并补充关键要点:
github
掘金安东尼19 小时前
使用自定义高亮API增强用户‘/’体验
前端·javascript·github
星哥说事20 小时前
如何将堡塔云WAF迁移到新的服务器
服务器·git·github
Navicat中国1 天前
Navicat 询问 AI | 如何转换 SQL 为另一种数据库类型
数据库·人工智能·sql·数据库开发·navicat
nbsaas-boot1 天前
用 FreeMarker 动态构造 SQL 实现数据透视分析
数据库·windows·sql·freemarker·数据报表
晴子呀1 天前
分库分表和sql的进阶用法总结
数据库·sql