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,它就能帮我们出色的完成数据库任务,解放双手,从我做起...

相关推荐
xier_ran2 分钟前
【infra之路】AI 编译器学习笔记(四):PatternRewriter 与贪心 driver
人工智能·笔记·学习
智享 AI 科技3 分钟前
2026年AI私域系统怎么选?从功能到服务的全维度对比
大数据·人工智能·经验分享
镜象科技6 分钟前
AI心理健康解决方案服务商行业趋势:镜象科技如何引领校园心理健康数字化升级
人工智能·科技
威嵌神州8 分钟前
10.1 寸集成加密专网加固平板|外场加密通信硬件基线选型评估
人工智能·嵌入式硬件·平板
DBA_G12 分钟前
南大通用GBase 8c数据库-两阶段提交事务状态保持讲解(下)
数据库
在夜里告别98914 分钟前
视频掉帧怎么用AI补帧
人工智能
NineData14 分钟前
MySQL 到 Doris 实时数据同步:订单、用户和日志数据入仓方案
数据库·mysql
寻道码路17 分钟前
大模型工程化实战(十八):全息地图——十七篇判据拼成一张「拿处境一查,就知道看哪篇、抓哪个决策、抄哪段代码」的检索图
人工智能·大模型·ai工程化·大模型工程化·agent工程化·rag工程化
JuiceFS18 分钟前
地平线 EB 级存储工程实践
人工智能·后端·自动驾驶
JAVA_AI人工智能项目实战25 分钟前
Agent核心架构(四层架构、ReAct、OTAC、自主决策、Multi-Agent)
人工智能·语言模型·自然语言处理·架构