基于Qwen千问实现自然语言数据分析AI Agent智能体(手把手,个人电脑也能玩哦)

本文较长,建议点赞收藏。更多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 语句" 展开,具体包括:

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

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

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

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

具体流程:

  1. 用户提交查询
  2. 用户语言精准匹配:用户语言+提示词+rag查询精准匹配或API查询匹配,针对不同的SQL语言 增加不同的函数使用,功能解释,参数介绍;特殊语法的用法
  • 用户数据分析提示词
  • 使用大模型 + 提示词约束,从用户提示词中提取中使用的库表描述
  • 从库表描述再去rag当中查真实表和字段名称
  • 依据rag当中检索到真实的库表字段,再去完善用户数据分析提示词内容
  • 依据完善的用户数据分析提示词内容提交给qwen大模型生成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)智能体运行过程解析

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

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

  • LLM数据库表选择:

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

  • 知识库内容准备:

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

  • 知识库提示词准备:

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

  • Qwen-text-to-sql环境准备

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

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

  • AI Agent数据分析智能体环境准备与实现

此部分部署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

相关推荐
radient3 小时前
初识Agent、Prompt、Function Coding、MCP
后端·程序员·架构
SimonKing3 小时前
分布式日志排查太头疼?TLog 让你一眼看穿请求链路!
java·后端·程序员
袁煦丞3 小时前
一图看懂Docker管理 Portainer:cpoar内网穿透实验室第652个成功挑战
前端·程序员·远程工作
AI大模型3 小时前
构建完全本地的MCP客户端:让AI智能体与数据库无缝对话
程序员·agent·mcp
equationl5 小时前
代码之始
程序员·午夜话题
智泊AI5 小时前
有什么技巧可以提升RAG召回率?
llm
陈随易5 小时前
改变世界的编程语言MoonBit:配置系统介绍(上)
前端·后端·程序员
EdisonZhou7 小时前
多Agent协作入门:基于A2A协议的Agent通信(中)
aigc·agent·.net core
风雨中的小七7 小时前
解密prompt系列61. 手搓代码沙箱与FastAPI-MCP实战
llm·nlp