Text-to-SQL不学就亏了!9 个惊艳的开源 NL2SQL 项目
以前,领导、决策者或者业务同事,想统计个数据、整份报告,几乎都得“求”技术人员帮忙。领导先把需求说出来,技术人员再把这些需求翻译成技术语言(比如 SQL),然后去跑数据、做分析,好不容易才出个结果。整个流程不仅慢,还经常来回沟通好几轮,效率感人。
但现在不一样了。随着大模型能力越来越强、应用场景越来越多,从 Text 转 SQL、Chat 转 SQL 这种玩法特别火。核心思路就是用大模型把自然语言直接翻译成可执行的 SQL,帮你做数据分析,再把结果自动生成报告或者可视化图表。这样一来,领导想啥时候要报告都能马上搞定,面对向上汇报也不再慌张。在决策支持、大屏展示等场景里,这种方式特别管用。
本文整理了几个优秀的 Text2SQL 开源项目和资源,方便大家参考、借鉴。
1. Chat2DB
GitHub Star 约 23K ⭐ https://github.com/chat2db/chat2db
Chat2DB 是一款智能化、通用型的 SQL 客户端和数据报表工具,把 AI 能力深度整合到数据库管理和分析里。它最大的亮点是可以用自然语言直接生成 SQL,省去了手写的麻烦,还能自动生成可视化报表,让数据分析和汇报都变得轻松高效。
主要特点:
- 多数据库支持:兼容 MySQL、PostgreSQL、Oracle、SQL Server、SQLite、ClickHouse、OceanBase、Hive、MongoDB、Redis、Snowflake 等多种数据库。
- AI 驱动 SQL:从自然语言快速生成可执行 SQL,降低技术门槛。
- 报表与可视化:分析结果可直接生成报告或大屏可视化,方便展示。
- 版本选择灵活:提供免费开源社区版和本地 Pro 版,Pro 版在 AI 功能、数据同步、迁移、仪表盘等方面更强大。
- 社区活跃度高:GitHub Star 数量接近 24K,用户群体和讨论氛围热烈,不过近期开发节奏稍有放缓。
此外,chat2DB还在Huggingface提供了它的7B开源模型: https://huggingface.co/Chat2DB/Chat2DB-SQL-7B
2. SQL Chat
GitHub Star 约 5.4K ⭐ https://github.com/sqlchat/sqlchat
SQL Chat 是一款以对话为核心的 SQL 客户端和编辑器,让你可以用自然语言与数据库互动,实现查询、修改、添加或删除等常用操作,极大地提升了数据库操作的直观性和亲和力。
核心特点如下:
- 畅聊式界面 —— 不再被复杂界面卡住,只需一句话,就能驱动数据库操作,顺滑又高效。
- 多库支持 —— 目前兼容 MySQL、PostgreSQL、MSSQL 以及 TiDB Cloud,未来有望扩展更多类型。
- 技术栈现代 —— 基于 Next.js 构建,可以快速部署到 Vercel,也可选择自托管方案。
- 开源免费 —— 完全开源,没有门槛,有兴趣可以自己搭建或二次开发。
3. Vanna
GitHub Star 约 19.8K ⭐ https://github.com/vanna-ai/vanna
Vanna 是一个开源的 Python RAG(检索增强生成)框架,致力于将自然语言转换为 SQL 查询,并将这一 AI 能力应用于数据库交互场景中。
使用方式:两步走,轻松上手
- 训练 RAG 模型,将你的数据库 schema、历史查询等信息构建成检索基础;
- 自然语言提问,自动生成可执行 SQL 查询。
支持广泛
-
数据库类型
PostgreSQL、MySQL、PrestoDB、Hive、ClickHouse、Snowflake、Oracle、SQL Server、BigQuery、SQLite、DuckDB 等。 -
前端支持
可通过 Jupyter、Streamlit、Flask、Chainlit、Slack 等接入方式使用。 -
LLM 与向量库兼容性广泛
支持 OpenAI、Anthropic、Gemini、HuggingFace、AWS Bedrock、Ollama、千问·千帆、智谱等主流 LLM;同时兼容 AzureSearch、OpenSearch、PgVector、Pinecone、ChromaDB、FAISS、Milvus、Qdrant、Weaviate、Marqo、Oracle 等向量数据库。
企业级支持 & 安全治理
- Vanna OSS(开源版):开放源代码,支持本地部署与高度定制;
- Vanna Cloud:无需部署即可使用,适合快速试验;
- Self-Hosted 企业版:适配企业合规要求,支持部署在私有云/VPC 内;
- Embedded API:让你在现有应用中无缝集成 Vanna AI。
此外,Vanna 在设计上强化了 隐私与安全性——只有在你明确授权时才会将数据库内容发送至 LLM,默认仅处理 metadata(如 schema 和文档说明),并且具有持续自学习能力——使用越多,表现越好。
4. Dataherald
GitHub Star 约 3.5K ⭐ https://github.com/Dataherald/dataherald
Dataherald 是一个企业级的自然语言转 SQL 引擎,让你可以通过 API 直接对结构化数据进行“问答”,免去传统统计分析的繁琐流程。
-
自然语言 SQL 查询
使用自然语言即可与数据库交互,适合业务人员直接获取数据洞察,无需依赖数据分析师。 -
模块化设计
架构高度可定制,核心组件(如 NL-to-SQL 引擎、评估模块等)可灵活替换。 -
支持的数据库类型丰富
支持 PostgreSQL、BigQuery、Snowflake、Databricks 等主流数据平台。 -
部署方式灵活
提供开源版可通过 Docker 本地部署,也有托管版本满足快速上线需求。 -
增强提示和准确评估机制
构建了 “Context Store” 用于 NL-to-SQL few-shot 提示,同时可以自动执行生成的查询、评估其准确性,支持人机协同优化。 -
社区与认可度
GitHub 当前星标数约为 3.5K,是 Text-to-SQL 领域中一个颇受关注的开源项目。
总而言之,Dataherald 是一个成熟、模块化、适合企业级使用的自然语言转 SQL 引擎,支持多种部署方式和主流数据库平台。它为 Text-to-SQL 场景提供了强大的功能,并且在社区和技术上都有不俗的口碑。
5. WrenAI
GitHub Star 约 9.8K ⭐ https://github.com/Canner/WrenAI
WrenAI 是一款开源的 Generative BI(GenBI)Agent,能让你直接对数据库“聊天”——生成 SQL、图表(Text-to-Chart),并且输出 AI 驱动的数据洞察,一通话就搞定
-
自然语言询问,精准响应
透过自然语言就可访问数据库,省了写 SQL 的烦恼 -
智能视觉呈现
自动生成图表、BI 报告和 AI 摘要,脱口而出的洞察力,让人一看就懂 -
语义层建模(Semantic Layer)
使用 Modeling Definition Language(MDL),为数据结构、度量逻辑加上商业语境,让生成的 SQL 更准确、易管控 -
接入广泛数据库
支持 Athena (Trino)、Redshift、BigQuery、DuckDB、PostgreSQL、MySQL、SQL Server、ClickHouse、Oracle、Snowflake 等 -
兼容主流 LLM 平台
支持 OpenAI(及 Azure)、Google Gemini / Vertex AI、Anthropic、Ollama、Databricks、Groq 等多种模型 -
灵活部署方式
提供开源版本、云端服务(Wren AI Cloud)及企业自托管方案,适配各类使用场景 -
丰富 API 支持
最新 v0.25.0 增加了强大的 API 能力,包括 Models、Ask、Summary、Streaming、Knowledge CRUD 等接口,极大提升交互灵活性
6. SuperSonic(腾讯音乐开源的下一代 BI 平台)
GitHub Star 约 4K ⭐ https://github.com/tencentmusic/supersonic
SuperSonic 是腾讯音乐推出的开源 ChatBI 平台,旨在通过自然语言交互实现数据分析与可视化,降低业务人员对数据分析的门槛。该平台融合了 ChatBI 和 Headless BI 的理念,支持多种数据库和大语言模型(LLM),提供灵活的部署方式,适用于企业级数据分析场景。
-
自然语言转 SQL(Text-to-SQL)
用户可以通过自然语言提问,平台将自动生成 SQL 查询并执行,返回分析结果。 -
ChatBI 与 Headless BI 融合
ChatBI 提供自然语言交互界面,Headless BI 屏蔽底层数据结构,提供统一的指标和维度定义,支持多种数据源的接入。 -
支持多种数据库和 LLM
支持 PostgreSQL、MySQL、ClickHouse、Doris 等数据库,以及 OpenAI、Vertex AI、Anthropic 等大语言模型。 -
灵活的部署方式
提供 Docker 部署、JAR 包部署等方式,用户可以根据需求选择合适的部署方式。 -
丰富的 API 支持
提供 Ask、Summary、Streaming 等 API,支持自定义插件和指标市场扩展,满足多样化的业务需求。
7. Awesome-Text2SQL
GitHub Star 约 3K ⭐ https://github.com/eosphoros-ai/Awesome-Text2SQL
Awesome-Text2SQL 是由 DB-GPT 社区发起的开源项目,旨在汇总和整理 Text-to-SQL 领域的优质教程、模型、数据集和工具,帮助研究人员和开发者快速入门并深入了解该领域。该项目支持中英文双语,内容涵盖从基础概念到前沿技术的各个方面。
-
Text-to-SQL 概念介绍
解释什么是 Text-to-SQL,以及其在自然语言处理和数据库查询中的应用。 -
经典模型与方法
收录了多种经典的 Text-to-SQL 模型和方法,供学习和参考。 -
数据集与评测指标
提供了多个用于训练和评估 Text-to-SQL 模型的数据集,以及相应的评测指标,帮助用户进行模型的训练和性能评估。 -
微调与实践指南
分享了如何在开源大模型(如 CodeLlama)上进行微调,以提高在特定任务上的执行准确性。 -
工具与库
推荐了一些有助于 Text-to-SQL 开发的第三方 Python 库和工具,提升开发效率。
8. DuckDB-NSQL
GitHub Star 约 309 ⭐ https://github.com/NumbersStationAI/DuckDB-NSQL
DuckDB-NSQL 是由 Numbers Station 与 MotherDuck 联合推出的开源 Text-to-SQL 模型,专为本地 DuckDB 数据分析任务设计。该模型旨在通过自然语言生成 DuckDB 的 SQL 查询,支持本地部署,确保数据隐私与高效处理。
-
本地化部署,数据隐私保障
支持在本地机器上运行,避免数据上传至云端,确保数据隐私。 -
全面支持 DuckDB SQL 方言
能生成包括官方扩展在内的所有 DuckDB SQL 语句,超越传统模型仅支持SELECT
语句的限制。 -
高效推理与低延迟
使用量化模型(GGUF 格式),结合llama.cpp
实现快速推理,适用于资源受限的环境。 -
开源与社区支持
模型权重在 Hugging Face 上公开,支持社区贡献与改进。
9. LangChain SQL
https://python.langchain.com/v0.1/docs/use_cases/sql
LangChain 是一个用于开发大型语言模型(LLM)驱动应用的框架,支持与 SQL 数据库的集成,构建自然语言与数据库交互的问答系统。通过 LangChain,用户可以:
-
SQLDatabaseChain:用于将 LLM 与 SQL 数据库连接的链式结构,支持将自然语言问题转换为 SQL 查询并执行,返回结果。适用于简单的问答任务。
-
SQLDatabaseToolkit:为 LLM 提供与 SQL 数据库交互的工具集,支持更复杂的查询和多轮交互。
-
QuerySQLDatabaseTool:执行 SQL 查询的工具,返回查询结果。适用于需要直接执行 SQL 查询的场景。
-
Prompting 策略:通过优化提示语,提高 SQL 查询生成的准确性和效率。
-
查询验证:对生成的 SQL 查询进行验证,确保其安全性和正确性。
-
大规模数据库支持:处理包含大量表和高基数列的大型数据库。
最后
大模型能力的提升是一个渐进过程,因此在实际应用中,许多模型仍然存在不确定性和不稳定性。使用基于大模型的 Text2SQL 方案生成的 SQL 查询时,需要格外谨慎,确保降低潜在风险。实践中建议:
- 明确数据库上下文:在生成 SQL 前,清楚描述所使用的数据库结构、表关系和字段信息。
- 限制查询输出规模:避免一次性返回过多数据,控制查询结果量。
- 验证与检查 SQL:在执行前仔细审查生成的 SQL,确保其正确性和安全性。
通过这些措施,可以在享受大模型带来便利的同时,最大程度保障数据安全和应用稳定。