LangChain+sqlite3简化sql操作 =>解放双手

浅聊一下

数据库的操作想来掘友们是炉火纯青,但是每一条增删改查语句还是得要我们自己来写,今天我带来了LangChain+sql,为大家释放双手,提高效率...

开始

解析

我们首先使用LLM大模型来对我们提出的问题或者操作进行自然语言分析,分析完之后,再交给LangChain相关模块进行操作,再给你返回结果,返回的结果可以是json,图表等等格式,你要做的就是泡杯茶等它出结果,对比传统的数据库操作方法,着实是解放了双手...

进入colab

我们先来到colab

我们将使用LangChain和sqlite来完成今天的实验,sqlite是一个轻量级关系型数据库,一般在测试产品想法的时候会用到...我们不需要下载它,直接引入+使用就好

创建sqlite数据库

sqlite是python自带的本地数据库,我们在这里直接引入就好,创建了一个FlowerShop.db

接下来便是连接数据库,和其他数据库的连接操作类似

cursor.execute()在括号中插入sql执行

最后遍历flowers数组,完成sqlite数据库的初始化

点击播放键运行,数据库就创建并且初始化完成了

python 复制代码
# 轻量级关系型数据库 大佬一般在测试产品想法的时候用它
# 本地数据库 Python自带
import sqlite3
conn = sqlite3.connect('FlowerShop.db')
cursor = conn.cursor()
cursor.execute('''
  CREATE TABLE FLOWERS(
    ID INTEGER PRIMARY KEY,
    Name TEXT NOT NULL,
    Type TEXT NOT NULL,
    Source TEXT NOT NULL,
    PurchasePrice REAL,
    SalePrice REAL,
    StockQuantity INTEGER,
    SoldQuantity INTEGER,
    ExpiryDate DATE,
    Description TEXT,
    EntryDate DATE DEFAULT CURRENT_DATE
  );
''')

flowers = [ ('Rose', 'Flower', 'France', 1.2, 2.5, 100, 10, '2023-12-31', 'A beautiful red rose'), ('Tulip', 'Flower', 'Netherlands', 0.8, 2.0, 150, 25, '2024-12-31', 'A colorful tulip'), ('Lily', 'Flower', 'China', 1.5, 3.0, 80, 5, '2023-12-31', 'An elegant white lily'), ('Daisy', 'Flower', 'USA', 0.7, 1.8, 120, 15, '2023-12-31', 'A cheerful daisy flower'), ('Orchid', 'Flower', 'Brazil', 2.0, 4.0, 50, 2, '2023-12-31', 'A delicate purple orchid')]
for flower in flowers:
  cursor.execute('''
    INSERT INTO Flowers(Name,Type,Source,PurchasePrice,SalePrice,StockQuantity,SoldQuantity,ExpiryDate,Description)
    VALUES(?,?,?,?,?,?,?,?,?);
  ''',flower)
conn.commit()
conn.close()

下载配置

下载一下我们需要用到的框架,点击播放键运行

Python 复制代码
!pip install openai==0.28.1 #LLM
!pip install langchain #AI框架
!pip install langchain-experimental # 实验 sql

提出问题

Python 复制代码
# Langchain 来将llm 和用户间chain起来 连数据库  八爪鱼
# langchain 有一个模块叫utilities 工具库
from langchain.utilities import SQLDatabase
# 大模型模块
from langchain.llms import OpenAI
from langchain_experimental.sql import SQLDatabaseChain
# 返回数据库对象
db = SQLDatabase.from_uri("sqlite:///FlowerShop.db")
# 返回openai实例 (verbose=True)细节打印出来
llm = OpenAI(temperature=0, verbose=True, api_key='------你的OpenAI-Key-------')
# Chain 起来这些
# langchain 提供了各种chain
db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
response = db_chain.run("有多少种不同的鲜花")
print(response)

先导入LangChain 的工具库和模块

再通过数据库 URI 创建数据库对象db和创建openai实例

db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)这里就是将LangChan和数据库链接起来的秘诀,使用 LangChain 提供的工具库创建数据库链

最后run一下得到结果

再测试一下

测试添加数据操作:

结尾

我们可以看到,不用我们再写代码了,导入LangChain,它就能帮我们出色的完成数据库任务,解放双手,从我做起...

相关推荐
麻雀无能为力3 小时前
CAU数据挖掘实验 表分析数据插件
人工智能·数据挖掘·中国农业大学
时序之心3 小时前
时空数据挖掘五大革新方向详解篇!
人工智能·数据挖掘·论文·时间序列
.30-06Springfield3 小时前
人工智能概念之七:集成学习思想(Bagging、Boosting、Stacking)
人工智能·算法·机器学习·集成学习
说私域4 小时前
基于开源AI智能名片链动2+1模式S2B2C商城小程序的超级文化符号构建路径研究
人工智能·小程序·开源
永洪科技4 小时前
永洪科技荣获商业智能品牌影响力奖,全力打造”AI+决策”引擎
大数据·人工智能·科技·数据分析·数据可视化·bi
shangyingying_14 小时前
关于小波降噪、小波增强、小波去雾的原理区分
人工智能·深度学习·计算机视觉
计算机毕设定制辅导-无忧学长4 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
程序员柳5 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、5 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
书玮嘎5 小时前
【WIP】【VLA&VLM——InternVL系列】
人工智能·深度学习