你好,我是一宿君。
NL2SQL------自然语言转 SQL ,也称为 Text2SQL,已经成为大模型落地最常见的场景之一。
今天介绍 GitHub 上 9 个值得关注的开源项目,按照星标核心能力依次展开介绍,方便大家参考、借鉴。
- SuperSonic
- Chat2DB
- SQL Chat
- Vanna
- Dataherald
- WrenAI
- Awesome-Text2SQL
- LangChain SQL
- 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 边界能力和数据库风险管控。
都看到这了,点个赞吧!!!