利用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相结合,我们在数据分析领域迎来了更加便捷的时代。在这一趋势下,我们可以更专注于业务需求,更高效地从数据中获取有价值的信息。

相关推荐
小和尚同志4 小时前
通俗易懂的 MCP 概念入门
人工智能·aigc
redreamSo13 小时前
AI Daily | AI日报:科学家怒揭 AI 科研黑幕; 清华:AutoMat让电镜流程大提速; AI辩论:81.7%概率让你信服
程序员·aigc·资讯
肖笙XiaoSheng13 小时前
用Gemini调整我的定时任务代码
后端·aigc·ai编程
后端小肥肠16 小时前
Coze实战:一分钟生成10w+独居女孩Vlog动画,零基础也能日更!
人工智能·aigc·coze
iThinkAi智能体16 小时前
Coze(扣子)智能体工作流:自动批量生成小红书图文,1分钟100篇
aigc
墨风如雪16 小时前
小红书AI新里程碑:dots.llm1,中文MoE的“人文”突破!
aigc
iThinkAi智能体16 小时前
Coze(扣子)智能体工作流:自动批量生成书单号视频,1分钟100个,书单号博主都在用!
aigc
架构师那点事儿17 小时前
一文带你俯瞰大模型领域的世界
langchain·aigc·ai编程
小奏技术1 天前
基于 Spring AI 和 MCP:用自然语言查询 RocketMQ 消息
后端·aigc·mcp
杂雾无尘1 天前
用 Trae 打造全栈项目魔法师 - 让项目初始化不再是噩梦
aigc·openai·ai编程