作者:李维、许起瑞
随着大模型技术的快速发展,自然语言到 SQL(NL2SQL)能力在数据分析领域的落地日益广泛。然而,传统 NL2SQL 方案存在 Schema 理解偏差、复杂查询生成效率低、执行结果不可控等问题,导致业务场景中频繁出现“答非所问”或“生成失败”的窘境。为了让更多开发者能够便捷地使用这一能力,我们决定将阿里云析言 GBI 中“Schema 召回 + SQL 生成 + SQL 执行”的核心链路模块化、组件化,并以开源的形式回馈社区。
项目开源地址:https://github.com/alibaba/spring-ai-alibaba
作为阿里云百炼官方推出的智能数据分析产品,析言 GBI 基于大模型的 ChatBI 技术,帮助用户轻松实现自然语言交互的数据分析。通过 NL2SQL 和数据问答功能,析言 GBI 支持企业快速构建 AI 原生的数据分析解决方案。同时,析言 GBI 提供了丰富的云端服务支持,助力企业实现高效的数据管理与分析。
作为阿里云百炼平台的重要组成部分,析言 GBI 基于通义大模型,针对 NL2SQL 链路进行了深度优化。本次开源聚焦于 Schema 召回、SQL 生成与执行引擎三大核心模块,旨在为开发者提供一个轻量、灵活、可扩展的 NL2SQL 解决方案,让“自然语言对话数据库”真正落地为生产力工具。我们始终秉持“让 SQL 更简单,让数据更自由 ”的初心,希望通过开源与社区共建,推动 NL2SQL 技术在企业级场景中的广泛应用。
Spring AI Alibaba 是一款以 Spring AI 为基础,深度集成百炼平台,支持 ChatBot、工作流、多智能体应用开发模式的 AI 框架。
Spring-ai-alibaba-nl2sql 是基于 Spring AI Alibaba 的一个子项目,致力于打造一套轻量、高效、可扩展的 NL2SQL 框架,让 Java 程序员可以快速构建和集成自然语言查询系统,降低数据问答场景下 AI 能力的接入门槛。
作为阿里云析言 GBI 产品的开源延伸,Spring-ai-alibaba-nl2sql 已经在 GitHub 上发布,并持续更新迭代中。如果你正在寻找一款面向企业级数据场景、支持本地部署与云端调用、兼容多种数据库的 NL2SQL 解决方案,Spring-ai-alibaba-nl2sql 将是一个理想的选择。
在复杂的数据环境中,用户往往不清楚具体字段名或表结构。Spring-ai-alibaba-nl2sql 提供了强大的语义相似度计算能力和多策略召回机制,能够在海量表结构中精准匹配出最可能涉及的数据库 schema 和字段信息。Schema 召回是 NL2SQL 的第一步,也是决定生成质量的关键环节。析言 GBI 开源模块通过以下创新设计,显著提升 Schema 匹配的准确性:
示例 :
用户提问:“2024 年 A 手机销量对比 B 手机”
Schema 召回结果:
表名:
sales_data
(相关度 98%)字段:
brand(A 手机、B 手机), sale_date(2024 年), quantity(销量)
基于 Qwen 等主流大语言模型的强大推理能力,析言 Spring-ai-alibaba-nl2sql 实现了从自然语言到结构化 SQL 的一键生成。无论是简单的条件过滤还是复杂的聚合统计、多表关联,都能准确生成对应的 SQL 语句。在复杂 SQL 生成场景中表现卓越:
生成效果对比 :
输入问提 | 传统方案生成 SQL | Spring-ai-alibaba-nl2sql |
---|---|---|
找出销售额最高的前 10 个商品,并展示品类和库存量 | SELECT * FROM products ORDER BY sales DESC LIMIT 10 (漏掉品类字段) |
SELECT product_name, category, stock, sales FROM products ORDER BY sales DESC LIMIT 10 |
生成的 SQL 语句可以直接调度并安全执行,返回结构化结果。同时,系统还提供了丰富的错误处理机制,确保即使在执行失败时也能给出清晰的提示和建议。
同时开源数据库 Schema 管控模块 ,支持对数据库结构的精细管理和向量召回功能。这一模块的引入,使得开发者可以更好地控制和维护数据库结构,提升 Schema 匹配的准确性和效率。
Spring-ai-alibaba 采用高度解耦的设计理念,将 Schema 召回、SQL 生成、SQL 执行三个环节进行模块化封装,开发者可以根据自身需求灵活组合,适配不同的业务场景。
得益于对 Spring AI Alibaba 的深度集成,析言 GBI-Open 支持 JDK 17+,并提供开箱即用的 Starter 包,开发者只需引入依赖即可快速启动 NL2SQL 服务,
com.alibaba.cloud.ai
spring-ai-alibaba-starter-nl2sql
${revision}
支持接入阿里云 DashScope 平台上的 Qwen 系列模型,也预留了其他 LLM 接入接口,方便开发者自由选择适合自己的模型服务。
访问项目地址下载源码:
git clone https://github.com/springaialibaba/spring-ai-alibaba-examples.git
cd spring-ai-alibaba-nl2sql-example
确保已安装:
设置 DashScope API Key:
export AI_DASHSCOPE_API_KEY=your_api_key
根据 spring-ai-alibaba-nl2sql-example/chat/README.md 相关操作即可一键启动 chat server。
作为 Spring AI Alibaba 社区的重要一员,我们欢迎所有开发者共同完善这一生态。Spring-ai-alibaba-nl2sql 不仅仅是一个工具,更是一个开放协作的技术生态。我们诚邀所有对 NL2SQL、大模型应用感兴趣的开发者加入我们:
析言 GBI 云服务使用的 SQL 生成模型也是开源的,欢迎大家访问以下地址查看和使用:
通过这些模型,开发者可以轻松实现高质量的自然语言到 SQL 的转换。
Github 项目地址:https://github.com/alibaba/spring-ai-alibaba
官方文档:https://java2ai.com/
联系社区:
Spring-ai-alibaba-nl2sql 是析言 GBI 产品在数据问答领域的一次重要开源尝试,专注于 NL2SQL 场景下的核心能力开放。无论你是想快速搭建一个企业级数据助理原型,还是希望深入研究大模型在数据库交互中的应用,Spring-ai-alibaba-nl2sql 都将是你值得信赖的起点。这不仅是对 NL2SQL 技术的一次革新,更是对“开箱即用、共建共享”开源精神的践行。我们相信,通过社区的共同努力,每一个开发者都能轻松驾驭自然语言与数据库的对话,让数据价值触手可及。
让 SQL 更简单,让未来更自由!
欢迎 Star、Fork、提交 Issue 和 PR,一起参与建设这个属于 Java 开发者的智能数据交互新时代!
如需进一步了解析言 GBI 的完整能力(企业级部署、独立可视化模块),请参考阿里云官方文档:
https://help.aliyun.com/zh/model-studio/user-guide/brief-introduction-of-gbi-products?spm=a2ty_o01.29997173.0.0.35603715qRHRic。