冷眸

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 能力应用于数据库交互场景中。

使用方式:两步走,轻松上手

  1. 训练 RAG 模型,将你的数据库 schema、历史查询等信息构建成检索基础;
  2. 自然语言提问,自动生成可执行 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,确保其正确性和安全性。

通过这些措施,可以在享受大模型带来便利的同时,最大程度保障数据安全和应用稳定。