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

序言

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

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

相关推荐
audyxiao00118 分钟前
让大语言模型先读懂外部事件:一种文本增强与正则扩散对齐的多模态时序预测框架
人工智能·语言模型·多模态·时间序列
小范的技术工坊20 分钟前
大模型蒸馏
人工智能·算法·数据挖掘·大模型
程序员清风26 分钟前
Java 智能体开发:从对话接口到任务执行
java·人工智能·python
掘金安东尼31 分钟前
Twilio 与 OpenAI 合作调研:从验证码客户到实时语音分发层
aigc
SharpCJ37 分钟前
Koog(1) —— JVM 下的 Agent 框架
llm·agent
ai小陈37 分钟前
GPU服务器租用容器实战:Docker数据卷持久化与安全重建
服务器·人工智能·安全·docker·ai·gpu算力
打工仔折腾 AI42 分钟前
从零写一个CAD 02:实体容器、Esc取消与键盘失灵的排查
人工智能·后端·python·性能优化
QYR-分析1 小时前
内燃机配套核心部件:汽车摇臂市场稳健增长,5.0% CAGR 背后的产业博弈
人工智能·汽车
千里码aicood1 小时前
基于CNN的陕西降雨量气象分析
人工智能·神经网络·cnn