阿里云百炼开源面向 Java 开发者的 NL2SQL 智能体框架

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
云原生网关 MSE Higress,422元/月
简介: Spring-ai-alibaba-nl2sql 是析言 GBI 产品在数据问答领域的一次重要开源尝试,专注于 NL2SQL 场景下的核心能力开放。

作者:李维、许起瑞


随着大模型技术的快速发展,自然语言到 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 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 将是一个理想的选择。


核心功能


Schema 智能召回:精准匹配数据库语义


在复杂的数据环境中,用户往往不清楚具体字段名或表结构。Spring-ai-alibaba-nl2sql 提供了强大的语义相似度计算能力和多策略召回机制,能够在海量表结构中精准匹配出最可能涉及的数据库 schema 和字段信息。Schema 召回是 NL2SQL 的第一步,也是决定生成质量的关键环节。析言 GBI 开源模块通过以下创新设计,显著提升 Schema 匹配的准确性:


  • 多模态语义理解 :结合表名、字段名、注释等元数据,构建数据库的“知识图谱”,实现自然语言与 Schema 的双向映射。
  • 动态权重计算 :根据用户问题上下文,动态调整字段相关性权重(如时间维度、业务关键词),避免冗余字段干扰。
  • 集成向量化索引构建。


示例 :
用户提问:“2024 年 A 手机销量对比 B 手机”
Schema 召回结果:

  • 表名:sales_data(相关度 98%)
  • 字段:brand(A 手机、B 手机), sale_date(2024 年), quantity(销量)


SQL 智能生成与优化:从对话到高效查询


基于 Qwen 等主流大语言模型的强大推理能力,析言 Spring-ai-alibaba-nl2sql 实现了从自然语言到结构化 SQL 的一键生成。无论是简单的条件过滤还是复杂的聚合统计、多表关联,都能准确生成对应的 SQL 语句。在复杂 SQL 生成场景中表现卓越:


  • 支持多种数据库方言(MySQL、PostgreSQL)
  • 复杂函数能力 :支持嵌套子查询、多表关联、窗口函数等复杂语法,覆盖 90% 以上业务场景。


生成效果对比 :


输入问提

传统方案生成 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 自动执行与结果反馈:安全、高效、可扩展


生成的 SQL 语句可以直接调度并安全执行,返回结构化结果。同时,系统还提供了丰富的错误处理机制,确保即使在执行失败时也能给出清晰的提示和建议。


  • 数据库连接池管理,提升性能稳定性


Schema 管控模块


同时开源数据库 Schema 管控模块 ,支持对数据库结构的精细管理和向量召回功能。这一模块的引入,使得开发者可以更好地控制和维护数据库结构,提升 Schema 匹配的准确性和效率。


系统特点


轻量模块化设计


Spring-ai-alibaba 采用高度解耦的设计理念,将 Schema 召回、SQL 生成、SQL 执行三个环节进行模块化封装,开发者可以根据自身需求灵活组合,适配不同的业务场景。


基于 Spring Boot 3.x 支持


得益于对 Spring AI Alibaba 的深度集成,析言 GBI-Open 支持 JDK 17+,并提供开箱即用的 Starter 包,开发者只需引入依赖即可快速启动 NL2SQL 服务。


<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter-nl2sql</artifactId>
    <version>${revision}</version>
</dependency>


无缝对接 Qwen 等主流模型服务


支持接入阿里云 DashScope 平台上的 Qwen 系列模型,也预留了其他 LLM 接入接口,方便开发者自由选择适合自己的模型服务。


快速运行


1. 准备环境


访问项目地址下载源码:


git clone https://github.com/springaialibaba/spring-ai-alibaba-examples.git
cd spring-ai-alibaba-nl2sql-example


确保已安装:


  • JDK 17 或更高版本
  • MySQL 8.0(或其他支持 JDBC 的数据库)
  • DashScope API Key(用于大模型服务)


设置 DashScope API Key:


export AI_DASHSCOPE_API_KEY=your_api_key


2. 项目启动


根据 spring-ai-alibaba-nl2sql-example/chat/README.md 相关操作即可一键启动 chat server。


image.png


开源计划


  • 扩展更多数据库支持 :涵盖主流数据库系统,如 Oracle、SQL Server 等。
  • 提供可视化配置界面 :降低使用门槛,方便非技术人员快速上手。
  • 支持对 SQL 结果进行分析总结 :通过可视化模块展示 SQL 查询结果,帮助用户更直观地理解数据。
  • 深度 BI 分析功能 :集成高级分析能力,满足企业级数据分析需求。


社区共建计划


作为 Spring AI Alibaba 社区的重要一员,我们欢迎所有开发者共同完善这一生态。Spring-ai-alibaba-nl2sql 不仅仅是一个工具,更是一个开放协作的技术生态。我们诚邀所有对 NL2SQL、大模型应用感兴趣的开发者加入我们:


  • 优化召回策略,提升 Schema 匹配准确率
  • 扩展更多数据库支持
  • 提供可视化配置界面,降低使用门槛
  • 支持流式 SQL 生成、执行监控、结果缓存等功能


模型开源


析言 GBI 云服务使用的 SQL 生成模型也是开源的,欢迎大家访问以下地址查看和使用:



通过这些模型,开发者可以轻松实现高质量的自然语言到 SQL 的转换。


参考链接


1. Github 项目地址:https://github.com/alibaba/spring-ai-alibaba

2. 官方文档:https://java2ai.com/

3. 联系社区:  

  • Spring AI Alibaba 钉钉交流群:94405033092  
  • 析言 GBI 钉钉交流群:117600000451
  • 添加微信:zjjxg2018,加入社群


总结


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

相关文章
|
13天前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
319 1
|
25天前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
218 1
|
25天前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
708 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
16天前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
490 58
|
4天前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
46 8
|
4天前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
30 7
|
5天前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
61 4
|
12天前
|
人工智能 Java API
Java AI智能体实战:使用LangChain4j构建能使用工具的AI助手
随着AI技术的发展,AI智能体(Agent)能够通过使用工具来执行复杂任务,从而大幅扩展其能力边界。本文介绍如何在Java中使用LangChain4j框架构建一个能够使用外部工具的AI智能体。我们将通过一个具体示例——一个能获取天气信息和执行数学计算的AI助手,详细讲解如何定义工具、创建智能体并处理执行流程。本文包含完整的代码示例和架构说明,帮助Java开发者快速上手AI智能体的开发。
307 8
|
2月前
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
167 23
|
1月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
92 12

热门文章

最新文章

下一篇
日志分析软件