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

相关推荐
课件帮几秒前
PPT动画与数字人讲解如何精准同步?2026年微课制作技术新趋势
人工智能·语音识别
向日的葵00610 分钟前
项目博客-AI旅行规划平台
人工智能
小马92614 分钟前
智能体时代的两块基石:DeepSeek Harness 开源与“认知基础设施“数据库
数据库·人工智能·开源·agent
殷紫川17 分钟前
FDE前线部署工程师,你看好吗?
aigc·ai编程
Lumistory18 分钟前
照明工程落地效果评判与改造的实践参考
大数据·人工智能·光照贴图
赖赖-25 分钟前
畅想视界巨匠P240G vs 华为擎云V540:谁更适合窗口场景?
网络·人工智能·电脑·边缘计算
那年窗外下的雪.27 分钟前
VXLAN EVPN 分层排障:从 VTEP 可达、ARP/MAC 到 MAC Mobility
服务器·前端·网络·数据库·spine
一只肥瘫瘫27 分钟前
编码器 PLL 角度与速度观测器原理
人工智能·算法
AI风控技术指南31 分钟前
大模型安全围栏厂商评估:以数美科技为例拆解能力、架构和 POC 指标
大数据·网络·人工智能
weixin_5316708932 分钟前
Interlude起来:久坐提醒软件为什么需要登录?有没有完全本地运行的Mac休息提醒软件?
人工智能·macos·swift