将自然语言处理与数据库查询相结合 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

相关推荐
学习前端的小z9 分钟前
【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用
人工智能·chatgpt·aigc
埃菲尔铁塔_CV算法37 分钟前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR37 分钟前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
打羽毛球吗️43 分钟前
机器学习中的两种主要思路:数据驱动与模型驱动
人工智能·机器学习
好喜欢吃红柚子1 小时前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python1 小时前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯1 小时前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
正义的彬彬侠1 小时前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
Debroon1 小时前
RuleAlign 规则对齐框架:将医生的诊断规则形式化并注入模型,无需额外人工标注的自动对齐方法
人工智能
羊小猪~~2 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习