手把手教你用LangChain自动写SQL做数据分析可视化

零SQL构建数据分析AI智能体——基于LangChain和DuckDB的魔法之旅 SQL一直是数据分析领域的"普通话",但如今有了AI,连SQL语法都可以丢进垃圾桶了!本文将手把手教你用LangChain和DuckDB打造一个会自己写SQL的AI小助手,连Kaggle数据集都能轻松调戏~ 阅读详情

今天和大家聊一个超实用的AI应用场景——用自然语言直接查询数据库。想象一下,当你需要查"上季度谁写的线上故障最多"时,再也不用对着SQL语句抓耳挠腮,直接说人话就能得到答案,是不是很酷?

本项目使用 OpenAI的模型 以及 LangChain框架,将自然语言查询转换为SQL语句,并从MySQL数据库中获取相关数据。

你先可以提出像 “小王在哪个部门?” 这样的后续问题,并得到准确的答案,系统会确保在整个对话过程中都能保持上下文的记忆力。

下面我就详细和大家说说这个项目的几个关键部分。

准备MySQL数据库

首先呢,你得有个包含数据的 MySQL 数据库,然后就可以用 LangChain 的 SQLDatabase 工具,轻松连接到这个数据库,还能检索它的结构。代码如下:

from langchain_community.utilities import SQLDatabase

mysql_uri = "mysql+mysqlconnector://username:password@localhost:3306/yourdatabase"
db = SQLDatabase.from_uri(mysql_uri)

这样就在变量db里创建了数据库的实例。之后,用下面这行代码就能检索数据格式,观察表结构:

schema = db.get_schema()

第二部分:创建SQL生成链

拿到数据库schema后,接下来就要创建一个把自然语言查询转换成 SQL 查询的流程,也就是创建一个 SQL 生成链。

LangChain 给我们提供了构建这种链的框架,我们把自然语言问题和schema一起传给大模型,它就能自动生成对应的 SQL,然后在数据库上执行。

下面是生成链的代码:

from langchain.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
def generate_sql(question, schema):
# 定义提示模板,它将指导大语言模型生成SQL
  template = f"""Based on the table schema below, write a SQL query that answers the user's question:
{schema}
Question: {question}
SQL Query:
"""
  prompt = ChatPromptTemplate.from_template(template) # 从模板创建提示
# 创建OpenAI聊天模型的实例
  llm = ChatOpenAI()
# 构建SQL生成链
  sql_chain = (
    prompt
    | llm.bind(stop=["\nSQL Result:"]) # 这告诉模型在 'SQL Result:' 处停止
    | StrOutputParser() # 将输出解析为字符串
  )
# 使用schema和问题调用管道,并返回SQL查询
return sql_chain.invoke({"schema": schema, "question": question})

这里面的 template 是提示模板,它能指导大语言模型生成 SQL 查询,给模型提供结构和问题作为上下文,让它生成对应的 SQL 查询。

ChatPromptTemplate 类是根据结构和问题来定义大语言模型提示的模板。

StrOutputParser 能确保大语言模型的输出被解析成字符串,也就是我们要的 SQL 查询。

bind(stop=["\nSQL Result:"]) 能让大语言模型知道在哪里停止生成过程,遇到 “SQL Result:” 就停止,这样输出的结果就很干净,能直接用于 SQL 执行。

查询到回答完整测试

用 generate_sql 函数生成 SQL 查询后,下一步就是在 MySQL 数据库上执行这个查询,把数据取出来。我们可以写一个简单的 run_query 函数来完成这个操作,代码如下:

def run_query(db,query):
  return db.run(query)

这里的 db 就是我们一开始创建的数据库实例,query 是大语言模型链生成的 SQL 查询。

但要注意,GPT偶尔会生成错误语法,建议增加异常捕获机制(篇幅限制暂不展开)

最后:把SQL结果转为自然语言描述

从数据库里拿到原始数据后,我们得给用户生成一个人类能看懂的自然语言响应。这就得利用语言模型的能力,把原始数据转换成容易理解的内容。

我们可以写一个 get_response 函数,它接收 user_question(用户问题)、schema(结构)、sql(SQL 查询)、data(数据)作为参数,代码如下:

def get_response(question, schema, sql,data):
  template = """根据表结构、问题、SQL 查询和 SQL 响应,提供一个结构化的、人类可读的响应。仅提取响应中可用的字段,并正确格式化它们。
{schema}
问题:{question}
SQL 查询:{query}
SQL 响应:{response}
---动态构建输出:---
名称:一个人或多个人的姓名,
对于响应中存在的其他字段也类似,并用句子将它们框起来给出一个摘要。
----------------------------------------
确保响应是直接的、结构化的,并带有清晰的标签。使用结构化数据组成句子。如果一个字段不存在,则不要包括它。
    """
  prompt_response = ChatPromptTemplate.from_template(template)
  prompt = ChatPromptTemplate.from_template(template)
  llm = ChatOpenAI()
  sql_chain = (
      prompt
      | llm
      | StrOutputParser()
  )
  # 使用输入值调用管道
  return sql_chain.invoke({"schema": schema, "question": question, "query": sql, "response": data})

这个函数确保我们能得到一个自然语言答案。

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

Ollama 可以在 Windows 上运行了 阅读详情

相关推荐

DeepSeek本地部署详细指南

通过上述步骤,你可以在本地成功部署DeepSeek模型,并通过Ollama或Open Web UI与模型进行交互。本地部署不仅能够保护数据隐私,还能根据需求灵活调整模型参数,满足不同场景下的使用需求。如果你在部署过程中遇到任何问题,可以在评论区留言,我们将一起解决。希望这篇教程能帮助你顺利部署DeepSeek模型,开启高效开发的新旅程!

m0_56896669的博客 14万+

一文彻底整明白,基于Ollama工具的LLM大语言模型Web可视化对话机器人部署指南

在上一篇博文中,我们在本地部署了**Llama 3 8B**参数大模型,并用 Python 写了一个控制台对话客户端,基本能愉快的与 Llama 大模型对话聊天了。但控制台总归太技术化,体验不是很友好,我们希望能有个类似 ChatGPT 那样的 Web 聊天对话界面,本博文就安排起来……

老牛啊 1万+

LangChain实战(十六):构建基于SQL数据库的数据分析Agent

本文介绍了如何利用LangChain的SQLDatabaseToolkit和Agent技术构建智能数据分析助手,实现自然语言查询数据库功能。该方案解决了传统SQL查询的技术门槛高、效率低等问题,具备自动生成SQL、智能解释结果等优势。文章详细展示了环境准备步骤,包括安装必要的Python库,并提供了一个创建示例数据库的完整代码实现,包含员工、部门、销售等多张业务表及其关联关系,为后续的智能查询演示奠定数据基础。通过这套方案,非技术人员也能轻松完成复杂的数据分析任务。

厚积薄发的博客 1093

使用ollama在本地部署llama3-8b大模型

使用ollama在本地部署llama3-8b大模型

weixin_39945822的博客 1万+

1.28 LangChain SQL Agent详解:企业级SQL助手的完整实现方案

本文详细介绍了LangChain SQL Agent的企业级实现方案。主要内容包括:1) Agent的核心特性(自然语言理解、SQL生成、结果解释)和优势(完整方案、易于集成);2) 基础实现示例代码展示如何创建SQL Agent;3) 高级特性如自定义工具扩展;4) 最佳实践建议(安全性、性能优化、监控等)。文章最后提出关于性能优化、安全性和功能扩展的思考题,为构建专属SQL助手提供完整指导方案。

yonggeit的博客 3544

LangChain AI Agent实现自动化探索性数据分析

探索性数据分析(EDA)是数据科学的基础环节,传统依赖人工编写pandas、matplotlib代码进行统计与可视化,效率低且难以复用。其核心原理在于通过数据概览、分布检验、相关性分析和异常探测等步骤,快速建立对数据质量与业务信号的初步认知。随着大模型与工具调用技术成熟,AI Agent可将自然语言指令动态编排为数据操作序列,显著提升分析效率与可解释性。该技术具备强工程落地价值,支持实时响应业务问题、自动生成图表代码、联动数据库与日志系统,并在金融、电商、SaaS等领域广泛用于销售归因、用户行为诊断与运营决

weixin_34112181的博客 635

LangChain 1.0 实战: NL2SQL 数据分析 Agent(附源码)

NL2SQL的概念与价值,覆盖数据自助分析、智能报表与运营分析等典型应用场景。 对比多款热门开源产品(Vanna、DB-GPT、PandasAI等),总结各自定位、优势与局限。 提供基于LangChain 1.0的完整NL2SQL数据分析Agent实现方案,包含前后端架构、CSV→SQLite转换与API接口设计。 面向企业级数据应用,强调Agent化查询、流式响应与自动可视化的落地能力。

fufan_LLM的博客 2095

LLM的MCP协议:初识MCP,搭建第一个MCP Server

MCP(Model Context Protocol),是一个开发的协议,标准化了应用程序如何为大模型提供上下文。MCP提供了一个标准的为LLM提供数据、工具的方式,使用MCP会更容易的构建Agent或者是基于LLM的复杂工作流。

Criss@陈磊 2万+

利用OpenAI、LangChain和Streamlit进行智能数据分析和可视化

通过 OpenAI、LangChain 和 Streamlit 的有机结合,我们成功构建了一个智能数据分析与可视化系统。该系统在降低数据分析门槛、提高数据处理效率和可视化效果方面展现出显著优势,为企业和研究人员提供了一种便捷、高效的数据探索和决策支持工具。

llm_way的博客 1602

手把手讲解RTX5操作系统在GD32F407上的移植

然后将GD32F4xx_Demo_Suites_V2.6.4\GD32407V_START_Demo_Suites\Projects\01_GPIO_Running_LED下面的main函数复制到我们的项目文件夹中;打开对应GD32407V_START_Demo_Suites的文件夹下面的Utilities,复制gd32f407v_start.c和gd32f407v_start.h文件到一开始项目保存的文件夹下面;为了验证我们的操作系统是否被正确添加,是否能够正确运行,我们需要添加示例文件;

Praguejing的博客 1858

KiCad自动布线实战:FreeRouting插件安装与使用指南

在PCB设计流程中,布线环节往往占据大量重复性工作,尤其对于中小型双面板,成百上千条飞线的手动连接既繁琐又易出错。自动布线技术通过算法在给定设计规则和元件布局的基础上自动规划走线路径,能显著提升布线效率。FreeRouting作为一款开源自动布线器,与KiCad通过DSN/SES标准中间格式无缝配合,让工程师将精力集中于关键信号和布局优化,而将常规网络交给工具处理。本文从自动布线的原理与边界出发,讲解了FreeRouting的安装、DSN导出、参数设置、自动布线及结果回传的完整流程,并结合实际案例展示了在S

weixin_32025789的博客 275

【图解】LangChain数据分析助手,一句话生成可视化报表

LangChain数据分析助手就像是一个智能数据分析师,可以帮你直接用自然语言生成专业的可视化报表。

优快云_430422的博客 1407

Windows环境Oracle19C安装与配置全攻略

本文详细介绍了在Windows环境下安装与配置Oracle19C数据库的完整流程,包括环境准备、安装步骤、网络配置、客户端工具设置及常见问题解决方案。特别针对Windows 10和Windows Server 2016及以上版本提供了优化建议,帮助用户高效完成Oracle19C的部署与维护。

weixin_28455801的博客 487

AI 数据分析实战:从 NL2SQL 到智能归因

修改项说明标题去掉"新范式"等夸张词汇,改为更务实的表述章节标题简化为更自然的表达,去掉"困局"、"架构拆解"等 AI 味道填充短语删除"本文将围绕"、"完整拆解"、"底层机制"等三段式列举将"第一、第二、第三"改为更自然的段落过渡代码注释精简冗余说明,保留关键信息总结部分去掉公式化的"落地路线建议"框架,改为更口语化的"落地建议"结尾删除"核心原则"的宣言式表述,改为更务实的提醒语气增加一些个人观察(如"比较靠谱的做法"、"慢慢扩展"),减少中立报道感。

2401_85575345的博客 3387

SAR图像去斑(Despeckling)研究的主流开源数据集

这些数据集专门用于训练监督学习去斑模型,提供了配对的含斑SAR图像和对应的无噪声参考图像(Ground Truth)。这些数据集主要用于目标检测/识别,但包含原始SAR图像,可用于。由于缺乏真实无噪声SAR图像,许多研究采用。

VectorShift的博客 128

置顶必读(2) |《YOLOv8实战:从入门到深度优化》总目录导航 & 学习路线指南(持续更新中)

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 28万+

还在为写SQL烦恼?LangChain 1.0教你构建NL2SQL Agent,解放双手!

在企业级数据分析场景中,“自然语言问数据” 已经成为新一代智能 BI 的主流趋势。 本文教你如何使用 LangChain 1.0 的 ReAct Agent 架构,实现 NL2SQL 数据分析,使业务人员能够以对话式交互高效获得数据洞察。本文将带你完整了解:

weixin_58753619的博客 1173

小龙虾 OpenClaw 权限全攻略:轻松激活 elevated (最新版 OpenClaw 自动化任务降智、无权限、无法执行sudo等系统命令、提升 elevated 权限的解决方案)

升级小龙虾 OpenClaw 后权限不足?elevated 报错?📛 本文教你如何正确配置 OpenClaw 权限💻,让自动化任务顺利执行 🚀

XiaoqiangClub的博客 730

openGauss + LangChain Agent实战:从自然语言到SQL的智能数据分析助手

AI + 数据库的结合,正在改变我们与数据交互的方式。找技术人员等技术人员有空反复沟通需求等SQL查询结果发现需求理解有偏差重复2-5步骤直接说"我要查XXX"秒级得到结果不满意?再问一次效率提升不是一点半点,是质的飞跃!希望这篇文章能帮助大家快速上手,打造自己的智能数据助手。如果你在实践过程中遇到问题,欢迎留言讨论。如果你有更好的优化思路,也欢迎分享给我!附录:项目资源。

分享思想,留下痕迹。 6521

【并发编程五】c++进程通信——共享内存(shared memmory)

现代操作系统,对于内存管理,采⽤的是虚拟内存技术,也就是每个进程都有⾃⼰独⽴的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A中 和 进程 B中 的虚拟地址是⼀样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。这样这个进程写⼊的东⻄,另外⼀个进程⻢上就能看到了,都不需要拷⻉来拷⻉去,传来传去,⼤⼤提⾼了进程间通信的速度。⽤了共享内存通信⽅式,带来新的问题,那就是如果多个进程同时修改同⼀个共享内存,很有可能就冲突了。那共享内存的⽅式,就很好的解决了这⼀问题。

junxuezheng的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

从零开始构建智能SQL问答系统:LangChain 1.0 NL2SQL Agent实现指南!

文章介绍了NL2SQL技术如何通过自然语言查询数据库,降低数据分析门槛。详细对比了Vanna、DB-GPT等主流开源框架,并提供了基于LangChain 1.0 ReAct架构的完整实现方案。该方案结合FastAPI和React,构建了支持CSV/Excel文件上传、自然语言查询、自动生成分析报告和可视化图表的智能SQL问答系统,使非技术用户也能高效获取数据洞察。

libaiup的博客 1462

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LangChain开发数据分析从环境搭建到实战落地(2025最新教程)

本文将手把手教你用LangChain从零搭建数据分析助手,覆盖环境配置、核心功能实现、多数据源适配等关键步骤,全程结合实际开发场景,适合Python开发者直接落地使用。

2501_93482703的博客 629

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PandasAI与LangChain集成:构建智能数据分析管道的完整指南

PandasAI是一个革命性的Python库,它将自然语言处理能力引入到数据分析工作流中。通过与LangChain的深度集成,您可以构建端到端的智能数据分析管道,实现从数据查询到洞察生成的全自动化流程。本文将为您详细介绍如何利用PandasAI和LangChain的强大功能来提升数据分析效率。 ## 什么是PandasAI? 🤖 PandasAI是一个基于Python的智能数据分析库,它让您

gitblog_01156的博客 863
上一篇: Qwen2.5大模型微调实战:医疗命名实体识别(NER)任务(完整代码)
下一篇: 大模型应用RAG实战:如何快速搭建个性化RAG聊天机器人
少喝冰美式
博客等级 码龄2年 6828粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值