掘金 人工智能 10月10日 07:54
AI智能体赋能数据分析,简化SQL查询
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何利用AI智能体技术,特别是自然语言转SQL(NL2SQL)模型,解决企业数据分析中因SQL技术门槛导致的“数据多、洞察少”困境。通过整合大模型(如阿里千问、Deepseek)的语境理解能力,NL2SQL智能体能够将业务人员的自然语言需求转化为可执行的SQL查询,降低了数据分析的技术门槛,提升了效率,并支持企业低成本释放数据价值。文章详细阐述了Qwen-Text2SQL模型的特点,并提供了一个基于Langchain框架构建的AI Agent方案,该方案结合了RAG知识库、向量数据库Chroma以及本地部署的Deepseek模型,实现了从自然语言输入到SQL生成、校验、执行的完整流程,旨在让更多人能够便捷地利用数据进行决策。

💡 **降低数据分析门槛,释放数据价值**:传统数据分析高度依赖SQL技术,限制了多数业务人员。AI智能体,特别是自然语言转SQL(NL2SQL)技术,能够理解业务人员的自然语言指令,并自动生成SQL查询,打破了技术壁垒,让更多人能够便捷地从海量数据中获取洞察,支撑决策。

🧠 **Qwen-Text2SQL模型的核心能力**:阿里巴巴开源的Qwen-Text2SQL模型,在理解复杂自然语言查询、支持广泛SQL语法、感知并适配表结构、以及处理歧义和容错方面表现出色。它能够处理多条件、模糊描述的查询,兼容主流数据库和大数据引擎,并通过结合元数据优化SQL生成,甚至能通过推断或补全逻辑来处理含糊不清的需求。

🛠️ **基于Langchain的AI Agent实现方案**:文章提供了一个完整的AI Agent方案,该方案使用Langchain框架,以本地部署的Deepseek模型作为大脑,并结合RAG知识库(包括向量数据库Chroma)和Qwen-Text2SQL模型。该流程包括用户指令解析、通过RAG检索精确的表和字段信息、利用Qwen-Text2SQL生成SQL、对生成的SQL进行语法和语义校验,最终提交给执行引擎,确保了查询的准确性和效率。

🔄 **智能体的关键流程与优化**:该AI Agent方案的核心在于其智能流程。它能根据用户需求,通过LLM选择相关数据库表,再利用RAG知识库获取真实的表和字段信息,进而完善提示词,最终调用Qwen-Text2SQL生成SQL。生成的SQL会经过严格的语法和语义校验,若不通过则会优化提示词重新生成,直至成功,从而确保了最终查询结果的可靠性。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

背景

当前企业坐拥海量数据,却因数据分析依赖 SQL 技术,仅少数专业人员能挖掘数据价值,陷入 “数据多、洞察少” 的困境。而 AI 智能体技术兴起,催生了自然语言转 SQL 数据分析智能体 —— 它能将业务人员的自然语言需求转化为 SQL 查询,打破技术门槛,结合大模型的语境理解能力提升分析效率,助力企业低成本释放数据价值,支撑决策与创新。  

SQL(结构化查询语言)是与数据库交互的主流工具,但非技术人员使用存在语法和表结构理解的门槛;而 NL2SQL 模型能将自然语言需求(如 “查 2023Q3 北京销售额”)自动转为可执行 SQL,可降低查询门槛、提升效率、减少成本与错误,让更多人用数据决策,释放数据价值。

本篇介绍一下使用阿里千问、Deepseek等大模型实现一个自然语言数据分析智能体。

Qwen-Text2SQL模型

Qwen-text-to-sql 是由阿里巴巴开发并开源的文本到 SQL 转换模型,属于 Qwen通义千问大模型系列的衍生模型。该模型基于 Qwen 基础架构针对 SQL 生成任务进行了专项优化,开源后可通过 Hugging Face Hub 等平台获取,供开发者使用和二次开发。其核心功能围绕 “精准理解自然语言查询并生成可执行 SQL 语句” 展开,具体包括:

    复杂自然语言解析:能理解包含多条件、模糊描述、业务术语的查询需求,例如 “找出 2023 年每个季度销售额超过 50 万且利润率高于 15% 的华东地区产品,按销售额从高到低排序”。全面 SQL 语法支持:覆盖主流数据库(MySQL、PostgreSQL 等)的核心语法,包括单表查询、多表关联(JOIN 操作)、子查询、聚合函数(SUM/AVG/COUNT 等)、分组(GROUP BY)、筛选(HAVING)、排序(ORDER BY)等,可生成符合语法规范的复杂 SQL 语句。目前除了主流Mysql关系数据库,对开源大数据引擎Hive、Spark、Starrocks等支持也不错。表结构感知与适配:当输入中提供数据表结构信息(如字段名、类型、表间关系)时,模型能结合元数据优化生成结果,避免字段名错误、表关联逻辑混乱等问题,例如已知 “orders 表含 order_id、user_id、amount 字段,users 表含 user_id、region 字段”,可正确生成 “查询各地区总订单金额” 的关联查询 SQL。这里可通过检索Rag知识库、或元数据API完善补充提供精确提示词去生成较为准确SQL。歧义处理与容错:对存在歧义的自然语言查询(如未明确时间范围、字段名称模糊),会通过合理推断生成最可能的 SQL(如默认取最近 30 天数据),或在必要时隐含补全逻辑(如自动添加合理的过滤条件)。在构建自然语言转SQL智能体工程中,可增加语义层验证环节,依据验证的结果通过与否,循环优化提示词再次执行SQL生成。多场景适配:可应用于电商(订单分析)、金融(交易统计)、政务(数据汇总)等多领域,无需针对特定场景额外训练,仅通过提示词即可快速适配不同业务的数据库查询需求。SQL语法都较为通用,不同业务场景,可通过提示词上下文或RAG知识库等信息为生成SQL补充相关业务知识或场景辅助LLM更好贴合业务等。

自然语言翻译SQL智能体方案

本篇使用langchain框架构建数据分析智能体AIAgent,使用ollama本地部署DeepSeek-R1作为智能体大脑,依据用户指令及优化提示词去执行各种动作。为了完善相关提示词,本篇使用Rag知识库,向量数据库chroma,至于Rag知识库搭建笔者有往期文章分享这里不再赘述.

本篇数据分析智能体主要功能:用户输入自然语言,如查询”上海地区9月份参与国补购买华为手机销售额,智能体根据用户输入提示词(用非精确的描述用哪个数据库、什么表以及实际字段是什么)通过检索Rag知识库(库表字段信息需要提前准备好喂给Rag知识库)查询到精确的表和字段信息,再提交Qwen-text-to-SQ1模型去生成准确SQL语句,针对生成SQL提前做语义层校验,依据校验的结果正确与否,决定是否再优化提示词获取正确SQL语句直到生成正确为止(也可设置次数值,超过阈值人工干预或提醒优化智能体等),语义层校验通过后提交为执行引擎数据库返回正确的数据集。

具体流程:

    用户提交查询用户语言精准匹配:用户语言+提示词+rag查询精准匹配或API查询匹配,针对不同的SQL语言 增加不同的函数使用,功能解释,参数介绍;特殊语法的用法

3.上述替换后的提示词再作为查询给到Qwen-SQL

4.生成之后的sQL进行语法、语义层检查,根据结果判断是否要再次生成

5.提交执行

除了第1步,其他几步这些部分都放在智能体内部,有提示词引导、控制等来完成,整体方案如图:

数据分析智能体代码实现


这里使用了ollama搭建deepseek-r1环境,作为rag、ai agent大脑;使用transformers运行阿里千文-自然语言翻译SQL大模型Qwen-text-to-sql;使用langchain框架搭建的AI Agent。这些环境的搭建方法可参考笔者之前文章,这里都不再赘述。

这里重点介绍四部分内容:

1)LLM数据库表选择及Rag知识库准备

2)Qwen-text-to-sql环境准备

3)AI Agent数据分析智能体环境准备

4)智能体运行过程解析

这里不再介绍环境搭建,参考以上文章,Rag知识准备重点介绍LLM数据库表选择、知识库内容准备、Rag提示词准备等

对用户需求使用LLM大模型进行真实数据集选择(目前只举例子,如果表的数量巨大,可以进行多级问题分类或其他方案解决)

这里进行Rag知识库文档梳理,关于实际数据库、表、字段以及字段,相关使用说明信息,例:

提示词设置,首先给一个角色,然后指令查询rag知识库要求,同时限制“输出要求:只写结果,不写思考过程“ 因为rag查询的数据库、表和字段信息

本部分使用了transformers运行阿里千文-自然语言翻译SQL大模型

Qwen-text-to-sql,首先下载一个大模型具体内容参考上述文章这里不再赘述。以下是实现代码:

此部分部署deepseek-r1作为AI Agent大脑;实现了AI Agent的工具集;实现智能体的提示词模版(介绍工具名称、工具集、输入、流程指南等内容)

AI Agent大脑:deepseek-r1使用ollma部署

工具集:首先,用于根据用户需求判断使用哪些表;其次,根据使用的表,去rag知识库检索真实表和字段信息,最后,根据用户需求 + 检索到真实库表、字段信息去生成sql。

提示词模版:介绍了input_variables占位符变量,工具名称,工具集、执行流程指南等

首先,对用户需求“2023年销售额超过10000的产品ID和名称,按销售额降序排列”使用LLM大模型进行真实数据集选择(目前只举例子,如果表的数量巨大,可以进行多级问题分类或其他方案解决)

“找出2023年销售额超过10000的产品ID和名称,按销售额降序排列”大模型思考过程,最终思考结果,成功挑选出sales销售额表和products产品表两张

其次,依据上述选择出的sales和products两张表,提交给rag知识库检索出sales、proucts表信息和字段信息。

Ai agent接受到用户指令的思考过程:首先把用户需求进行拆解成为5部分;其次llm因为没有拿到真实数据库、表和字段信息先假设表构建一段sql,llm考虑准确问题,它又去rag里检索相关真实数据库、表和字段信息。如图:

再次,由用户需求“找出2023年销售额超过10000的产品ID和名称,按销售额降序排列” + rag检索出来的真实库表sales、products表以及字段product_id、sale_amt以及关联信息,形成需求带完整的、真实的库表字段信息的完整提示词信息,提交给Qwen_text_to_sql大模型去生成sql。

最后,对Qwen生成sql的进行语法、语义层校验,针对语法语义不通过的SQL进行,根据error信息,再次调整提示词重新生成sql。

以上是AI Agent数据分析智能体环境准备与实现全过程,当然这些实现过程还有很多可以再次优化点或方案,后续再优化讲解。

写在最后

自然语言转SQL的数据分析智能体的在于以智能化、低门槛的方式让非技术人员也能高效挖掘数据价值,同时为专业人员简化复杂流程,最终加速数据驱动决策在各业务场景的落地。除了自然语言转SQL去执行,做数据分析,后续可升级也能自然语言可视化报表实现。

“长风破浪会有时,直挂云帆济沧海”,与君共勉!!!

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI智能体 自然语言转SQL NL2SQL 数据分析 SQL 大模型 Qwen-Text2SQL Langchain RAG Deepseek 企业数据 AI Agent
相关文章