利用AI SQL Agent进行项目实战

前言

随着AI应用时代的到来,我们迎来了用更少的SQL知识来进行高效数据分析的时代。其中,sqlite3作为一款轻量级的关系型数据库,为我们提供了小巧、易安装、本地化友好的特性,特别适合用于数据分析的演示、模型跑数等场景。在这个新的范式下,我们可以借助AI的力量,用自然语言表达数据分析需求,由AI理解并生成相应的SQL,再通过sqlite3进行数据库通信。

sqlite3简介

sqlite3是一款轻量级的关系型数据库,非常适合在小型项目中使用。它的小巧体积和简单的安装过程使得它成为了本地化友好的数据库选择。

AIGC 新的数据库查询范式

利用AIGC实现数据库查询业务得益于LLM的自然语言处理能力。随着大模型能力的提升和Agent的产品力,未来与数据库交互,甚至管理,会由销售、经理等非技术人员来做,极大降低了门槛,AIGC也是通过这种方式进入一切行业。LLM在理解了Question的数据需求后,生成SQL, 并通过LangChain等开发的SQL Agent交给数据库执行,执行结果再由LLM进行处理,用户就得到了结果。

项目实战

下面以星星百货做一个简单的项目实战

创建数据表

python 复制代码
# 导入sqlite3库, python 内置
import sqlite3

# 连接到SQLite数据库
# 如果不存在,将创建一个新的数据库文件。
conn = sqlite3.connect('StarStore.db')
# 创建一个游标对象,游标用于执行SQL查询和管理结果集。
cursor = conn.cursor()

cursor.execute('''
        CREATE TABLE StarGoods (
            ID INTEGER PRIMARY KEY, 
            Name TEXT NOT NULL, 
            Type TEXT NOT NULL, 
            Source TEXT NOT NULL, 
            PurchasePrice REAL, 
            SalePrice REAL
        );
    ''')
star_goods = [ 
  ('螺蛳粉', 'StarFood', '广西', 34.5, 40.9),
  ('绿豆饼', 'StarFood', '南昌', 16.5, 23.2),
  ('鸡中翅', 'StarFood', '杭州', 34.6, 44.2)
]

for goods in star_goods:
  cursor.execute('''
    INSERT INTO StarGoods(Name, Type, Source, PurchasePrice, SalePrice)
    VALUES (?, ?, ?, ?, ?)
  ''',goods)

# 提交事务 确认
conn.commit()
conn.close()

首先,我们连接到数据库StarStore,接着创建了一个数据表,StarGoods, 包启ID、类型、产地、进价、货价等字段,还可以有其它的, 此处省略。接着准备了一些初始化数据,循环插入数据表。完成后,关闭数据库的连接。

LangChain来接管数据库

python 复制代码
pip install langchain-experimental
!pip install OpenAI==0.28.1

接下来用langchain完成剩下的操作

python 复制代码
# 工具库里有数据库工具,可以整合各种数据库
from langchain.utilities import SQLDatabase
from langchain.llms import OpenAI
# langchain chain 利用链式组合各种AI组件
from langchain_experimental.sql import SQLDatabaseChain
# 读取文件,sqlite协议
db = SQLDatabase.from_uri("sqlite:///StarStore.db")
# 大模型
llm = OpenAI(temperature=0, verbose=True, api_key='')
# 链起来
db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
response = db_chain.run('有多少种不同的货物')
print(response)

Db_chain.run() 查询了一些与货物相关的问题,Chain会将这些自然语言转换成SQL语句,并查询数据库,拿到查询结果后,又转换成自然语言输出。下图看输出即可理解。

我们再试一下其他条件

总结

AI SQL Agent的出现为数据分析提供了更加智能、高效的解决方案。它不仅让我们能够用更少的SQL知识进行数据分析,还提供了以自然语言进行数据查询的全新方式。通过将sqlite3与AI相结合,我们在数据分析领域迎来了更加便捷的时代。在这一趋势下,我们可以更专注于业务需求,更高效地从数据中获取有价值的信息。

相关推荐
海蓝可知天湛6 分钟前
利用Genspark自定义智能体:算法竞赛测试数据反推与生成工具
算法·aigc
墨风如雪12 小时前
美团LongCat-Audio-Codec:给语音大模型装上“顺风耳”与“巧舌”
aigc
ImAlex17 小时前
实测PaddleOCR-VL:文心4.5最强衍生模型如何重构文档处理效率
人工智能·aigc
用户51914958484518 小时前
利用配置错误的IAM策略窃取云函数访问令牌[GCP]
人工智能·aigc
用户51914958484520 小时前
cURL Kerberos FTP整数溢出漏洞分析与修复
人工智能·aigc
小溪彼岸21 小时前
Claude Code颠覆编程风格的Output Styles
aigc·claude
小溪彼岸1 天前
Hooks才是Claude Code CLI 的革命性更新
aigc·claude
小溪彼岸1 天前
深入了解Claude Code CLI子代理Subagent
aigc·claude
用户5191495848451 天前
使用AWS Security Hub自动业务上下文验证加速安全发现审查
人工智能·aigc
Baihai_IDP1 天前
AI 推理服务是否真的无利可图?从第一性原理看 AI 推理成本
人工智能·llm·aigc