当前位置: 首页 > news >正文

使用Langchain构建简单的数据库Agent

这篇文章我们介绍一个使用LangChain实现SQLagent的方法,LangChain直接内置了自己的SQLagent实现-—SQLDatabaseChain。这个方法使用 SQL Alchemy 与数据库交互。感兴趣的可以考虑一下这两个方案是否可以融合,这样保证SQL的准确性从而提升最终结果的准确率。下面将介绍今天主要内容的实现步骤:

实现步骤

首先,我们得有一个数据库。这里我们用的是ClickHouse,一个开源的、面向列的SQL数据库管理系统,特别适合大数据分析。安装起来超级简单,一行命令就搞定。

接下来,我们得让Agent学会和ClickHouse交流。这里就需要用到clickhouse-sqlalchemy这个包了。安装它之后,我们就可以建立数据库连接,然后初始化我们的Toolkit。这个Toolkit就像是我们的Agent的工具箱,里面装满了有用的工具。

现在,让我们来创建一个SQLDatabaseChain的Agent。这个Agent可以直接和数据库交互,回答问题。我们只需要定义一些工具,比如查询表结构、执行SQL查询等。然后,我们就可以快速创建并运行这个Agent了。

环境搭建

今天用到的主要安装包如下,其它可以根据提示安装:

# 安装 clickhouse-sqlalchemy 包来连接 ClickHouse``pip install clickhouse-sqlalchemy langchain

运行代码

代码大概是这样的:

from langchain.agents import AgentExecutor, AgentType``from langchain.sql_database_toolkit import SQLDatabaseToolkit``   ``   ``# 设置数据库连接``uri = 'clickhouse+native://localhost/ecommerce'``db = SQLDatabase.from_uri(uri)``   ``   ``# 初始化工具箱``toolkit = SQLDatabaseToolkit(db=db, llm=OpenAI(temperature=0))``   ``   ``# 创建并运行基于 OpenAI 函数的 Agent``agent_executor = create_sql_agent(`    `llm=ChatOpenAI(temperature=0.1, model='gpt-4-1106-preview'),`    `toolkit=toolkit,`    `verbose=True,`    `agent_type=AgentType.OPENAI_FUNCTIONS``)``# 运行 Agent,回答数据相关问题``agent_executor.run("我们有多少来自上海的活跃客户?")

运行这段代码后,Agent就会根据我们的问题去数据库里找到答案,然后告诉我们。比如,它会告诉我们有多少来自上海的活跃客户。这个Agent的好处在于,它可以直接理解我们的问题,然后去数据库里找到答案。我们不需要自己写SQL查询,也不需要担心查询的语法问题。Agent会帮我们搞定一切。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~
在这里插入图片描述

篇幅有限,部分资料如下:
👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。
在这里插入图片描述

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉国内企业大模型落地应用案例👈

💥《中国大模型落地应用案例集》 收录了52个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
在这里插入图片描述
💥《2024大模型行业应用十大典范案例集》 汇集了文化、医药、IT、钢铁、航空、企业服务等行业在大模型应用领域的典范案例。

在这里插入图片描述

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
在这里插入图片描述

👉640份大模型行业报告👈

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

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

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Rust光年纪】探索Rust语言中的音视频处理库:功能与应用概述
  • python实现微信聊天图片DAT文件还原
  • LeetCode 572.另一棵树的子树 C写法
  • Day3-shell脚本编程
  • LLM:flash-attention概述
  • 药明康德:头顶达摩克利斯之剑
  • 从C到Py:Python中的函数
  • 数仓入门:数据分析模型、数仓建模、离线实时数仓、Lambda、Kappa、湖仓一体
  • 相机拍摄如何正确曝光
  • 3个功能强大的PDF转换工具,免费试用
  • 软件系统架构设计的“三高”
  • ORA-00911: invalid character
  • 动手学大模型应用开发笔记--用dash开发一个大模型知识库
  • 网络空间资产测绘:为安全防护“画出”实时“地图”
  • SPIFFS与LittleFS的对gz文件格式的区别
  • 07.Android之多媒体问题
  • CSS 专业技巧
  • C语言笔记(第一章:C语言编程)
  • Git的一些常用操作
  • Javascript 原型链
  • Map集合、散列表、红黑树介绍
  • Spark学习笔记之相关记录
  • Vue小说阅读器(仿追书神器)
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 驱动程序原理
  • 网页视频流m3u8/ts视频下载
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 用element的upload组件实现多图片上传和压缩
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • gunicorn工作原理
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • # wps必须要登录激活才能使用吗?
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #1015 : KMP算法
  • #图像处理
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (BFS)hdoj2377-Bus Pass
  • (day18) leetcode 204.计数质数
  • (Forward) Music Player: From UI Proposal to Code
  • (ibm)Java 语言的 XPath API
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三)mysql_MYSQL(三)
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转载)Linux 多线程条件变量同步
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程