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

相关推荐
B站计算机毕业设计超人22 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条26 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客31 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon34 分钟前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客52036 分钟前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神38 分钟前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨1 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
强哥之神2 小时前
Nexa AI发布OmniAudio-2.6B:一款快速的音频语言模型,专为边缘部署设计
人工智能·深度学习·机器学习·语言模型·自然语言处理·音视频·openai
yusaisai大鱼2 小时前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow