炭炭背单词免费
125.76MB · 2025-10-10
当前企业坐拥海量数据,却因数据分析依赖 SQL 技术,仅少数专业人员能挖掘数据价值,陷入 “数据多、洞察少” 的困境。而 AI 智能体技术兴起,催生了自然语言转 SQL 数据分析智能体 —— 它能将业务人员的自然语言需求转化为 SQL 查询,打破技术门槛,结合大模型的语境理解能力提升分析效率,助力企业低成本释放数据价值,支撑决策与创新。
SQL(结构化查询语言)是与数据库交互的主流工具,但非技术人员使用存在语法和表结构理解的门槛;而 NL2SQL 模型能将自然语言需求(如 “查 2023Q3 北京销售额”)自动转为可执行 SQL,可降低查询门槛、提升效率、减少成本与错误,让更多人用数据决策,释放数据价值。
本篇介绍一下使用阿里千问、Deepseek等大模型实现一个自然语言数据分析智能体。
Qwen-text-to-sql 是由阿里巴巴开发并开源的文本到 SQL 转换模型,属于 Qwen通义千问大模型系列的衍生模型。该模型基于 Qwen 基础架构针对 SQL 生成任务进行了专项优化,开源后可通过 Hugging Face Hub 等平台获取,供开发者使用和二次开发。其核心功能围绕 “精准理解自然语言查询并生成可执行 SQL 语句” 展开,具体包括:
本篇使用langchain框架构建数据分析智能体AIAgent,使用ollama本地部署DeepSeek-R1作为智能体大脑,依据用户指令及优化提示词去执行各种动作。为了完善相关提示词,本篇使用Rag知识库,向量数据库chroma,至于Rag知识库搭建笔者有往期文章分享这里不再赘述.
本篇数据分析智能体主要功能:用户输入自然语言,如查询”上海地区9月份参与国补购买华为手机销售额,智能体根据用户输入提示词(用非精确的描述用哪个数据库、什么表以及实际字段是什么)通过检索Rag知识库(库表字段信息需要提前准备好喂给Rag知识库)查询到精确的表和字段信息,再提交Qwen-text-to-SQ1模型去生成准确SQL语句,针对生成SQL提前做语义层校验,依据校验的结果正确与否,决定是否再优化提示词获取正确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去执行,做数据分析,后续可升级也能自然语言可视化报表实现。
“长风破浪会有时,直挂云帆济沧海”,与君共勉!!!
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。