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

相关推荐
小虎AI生活2 小时前
REA(rea.tools) 接入 WorkBuddy 实操:Electron ASAR 免解压静态分析到零代码复刻
aigc·ai编程
冬奇Lab2 小时前
一天一个开源项目(第256篇):Anatomy —— 让 Claude 为技术概念「发明一台机器」,画成可交互的等距插画
人工智能·开源
孟郎郎2 小时前
打造一切(Craft Anything)——克隆构造世间万物
人工智能·ai·github·软件构建·开源软件
Martina_03212 小时前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
master3363 小时前
AI领域常用名词的系统梳理
人工智能·ai
狼爷3 小时前
AI 这么强,笔记还有意义吗?结合 AIED 2026 研究,一套可落地的原子笔记工作流
aigc
Spidermanbaout3 小时前
Prompt-Engineering实战-2026年11月2日
人工智能·机器学习·ai·chatgpt·ai编程
苏宸啊3 小时前
MySQL(一)
数据库·mysql
阿里云大数据AI技术4 小时前
EMR Serverless StarRocks + DLF Paimon 多模态数据湖检索
人工智能