将自然语言处理与数据库查询相结合 AIGC正在悄然地引领LLM新趋势?

序言

在上一篇AIGC文章我们感受到了LangChain框架的魅力,让书写AIGC变得更加得心应手。而在最近呢,GPTs应用商店也正式发布 ,正当我们感叹AIGC的魔力时,人工智能正在飞速的进步,改变引领着未来科技发展的趋势。

在当今数字化的时代,技术的发展不断推动着创新的浪潮,而自然语言处理(Natural Language Processing, NLP)和数据库查询的结合 正成为一种引人注目的新趋势。那么今天就让我们一起探讨在PythonLangChain技术的支持下,如何将这两者融合,实现更高效的数据库开发和SQL数据分析。

Figure : Example of multiple agents in a ChatDev environment

一、Copilt:代码生成的未来

我们今天需要借助的工具依旧是使用python语言编码的开发工具------Coplit,它可以通过整合自然语言处理和代码生成技术,从而提高我们的生产效率。我们可以使用LLM描述问题以及需求,然后Copilt将自动生成相应的代码,为我们答疑解难!

1. 首先我们需要新建一个笔记本,然后再开始编写代码

二、SQL生成及分析的新思路

举个例子,在数据库查询方面,新思路的提出是SQL语句不再是必需的。 ORM工具如SQLAlchemy使得通过Python对象进行数据库操作成为可能。这种更高级的抽象层使得开发者可以更专注于业务逻辑而非底层的SQL语法。

  1. 首先,我们使用Python自带的sqlite3模块创建一个轻量级关系型数据库,并向其中插入一些花卉相关的数据。
python 复制代码
# 轻量关系型数据库,大佬一般在测试产品想法的时候用它
# 本地数据库  python自带sqlite3驱动库
import sqlite3
# 数据库连接句柄
conn = sqlite3.connect('FlowerShop.db')
# 创建一个游标对象
cursor = conn.cursor()
# 执行SQL 完全支持sql 的三大范式
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()

三、AIGC和自然语言处理的融合

AIGC(人工智能生成代码)的应用正日益扩展至自然语言处理领域。通过LangChain和大型NLP模型(如ChatGPT),我们能够借助自然语言提出问题,并由系统生成相应的数据库查询语句,实现无缝的交互。

  1. 然后我们需要进行text2SQL(将自然语言转换为SQL查询语句),需要安装一些必要的相关的工具和库,我们安装了0.28.1版本的openai大模型,以及langchain和langchain试验阶段的工具。
python 复制代码
# text2SQL
!pip install openai==0.28.1 # llm
!pip install langchain  # AI 框架
!pip install langchain-experimental # 最新实验阶段的工具 sql

四. 新的数据库查询范式

接着,我们思考一个问题,如果是在现阶段让我们写完成在数据库插入数据并且实现AIGC功能你会怎么做?

首先,我们需要人为的完成LLM功能,然后我们在相应的数据库操作工具中调用数据库并执行对应的SQL语句。

而正是这些重复繁琐的操作大大降低了开发者的生产效率,通过AIGC和自然语言处理的融合,我们需要关注的重点不再是代码逻辑而是业务逻辑。 每个人都可以成为开发者,只需要提出问题,借助 chatgpt 自然语言处理能力,生成SQL,自动执行SQL,拿到结果,根据需求生成对应的LLM(JSON还是图表),最后得到答案,结束!

python 复制代码
# 引入LangChain模块
from langchain.utilities import SQLDatabase
from langchain.llms import OpenAI
from langchain_experimental.sql import SQLDatabaseChain

# 连接到数据库
db = SQLDatabase.from_uri("sqlite:///FlowerShop.db")

# 初始化OpenAI实例
llm = OpenAI(temperature=0, verbose=True, api_key='Your API_KEY')

# 使用LangChain构建链
db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)

# 用户提问:有多少种不同的鲜花
response = db_chain.run("有多少种不同的鲜花")

# 打印响应结果
print(response)

总结

  • 用户可以通过自然语言向系统提出问题,而无需深入了解数据库查询语言。

  • 利用ChatGPT的自然语言处理能力,系统能够将用户提出的问题转化为数据库查询语句,实现智能的语义理解。

  • LangChain作为连接工具,将生成的SQL语句传递给数据库,并自动执行查询。

  • 系统根据用户需求,可以将查询结果以JSON格式或图表形式呈现,满足不同用户的需求。

在这个充满创新的时代,将自然语言处理与数据库查询相结合,为开发者和用户提供更智能、高效的体验。这种前瞻性的探索不仅推动了技术的发展,也为数据分析和应用提供了新的可能性。在未来,我们有望看到更多类似的技术整合,为数字化世界带来更多便利和智能。

那么到了这里我们今天的文章就结束啦~

创作不易,如果感觉这个文章对你有帮助的话,点个赞吧♥

更多内容:上一篇AIGC文章

ReacheMe : GitHub Gitee

相关推荐
youcans_14 分钟前
【微软:多模态基础模型】(5)多模态大模型:通过LLM训练
人工智能·计算机视觉·大模型·大语言模型·多模态
飞凌嵌入式17 分钟前
飞凌嵌入式T113-i开发板RISC-V核的实时应用方案
人工智能·嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
sinovoip19 分钟前
Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
人工智能·科技·物联网·开源·risc-v
搏博42 分钟前
神经网络问题之一:梯度消失(Vanishing Gradient)
人工智能·机器学习
z千鑫42 分钟前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr1 小时前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
威桑1 小时前
CMake + mingw + opencv
人工智能·opencv·计算机视觉
爱喝热水的呀哈喽1 小时前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
肥猪猪爸1 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus2 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm