自研chat2DB 使用LangChain完成GPT本地mysql数据分析

自研chat2DB 使用LangChain完成GPT本地mysql数据分析您是否考虑过使用大型语言模型 LLM 来分析您的业务数据 您是否想过让 GPT 3 或其他 LLM 帮助您查询 处理和可视化本地 mysql 数据库中的数据 如果您的答案是肯定的 那么这篇文章适合您 在这篇文章中 我将介绍一个名为 LangChain 的强大框架 它允许您轻松使用 LLM 构建端到端数据分析应用程序 我还会展示如何使用 LangChain 完成 GPT 本地 mysql 数据分析的具体步骤

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



您是否考虑过使用大型语言模型(LLM)来分析您的业务数据?您是否想过让GPT-3 或其他LLM 帮助您查询、处理和可视化本地mysql 数据库中的数据?如果您的答案是肯定的,那么这篇文章适合您。

在这篇文章中,我将介绍一个名为LangChain的强大框架,它允许您轻松使用LLM 构建端到端数据分析应用程序。我还会展示如何使用LangChain完成GPT本地mysql数据分析的具体步骤,并给出一些示例代码和图片。

什么是LangChain?

LangChain是一个开源框架,旨在帮助开发人员使用语言模型构建应用程序。我们相信,最强大、最差异化的应用程序不仅仅是通过API 调用语言模型,还包括:

数据感知:将语言模型连接到其他数据源

自主性:允许语言模型与其环境交互

因此,LangChain框架的设计目标就是让这些类型的应用成为可能。 LangChain框架提供了两个主要价值主张:

组件:LangChain 提供了一些与语言模型协作所需组件的模块化抽象。 LangChain也有这些抽象实现的集合。无论您是否使用LangChain框架的其他部分,这些组件都很容易使用。

用于特定用例的链:可以将链视为以特定方式组装这些组件,以最好地完成特定用例。这些链旨在成为一个更高级别的接口,通过它人们可以轻松启动特定的用例。这些链条还被设计为可定制的。

因此,我们将以下文档分为这两个价值主张。在本文档中,我们以高级且与语言无关的方式介绍组件和用例。有关使用这些组件和解决这些用例的特定于语言的方法,请参阅页面顶部链接的特定于语言的部分。

如何使用LangChain完成GPT本地mysql数据分析?

假设你有一个本地mysql数据库,里面存储了一些业务相关的数据,比如客户信息、销售记录、产品库存等。你想使用GPT-3或者其他LLM对这些数据做一些查询、分析和可视化以获得一些有价值的见解和建议。那么,你可以使用LangChain来实现这个目标。以下是具体步骤:

mysql数据库基础示例

首先,您需要连接到mysql 数据库。为了方便起见,我们假设您已经安装了mysql 服务器并创建了一个名为business的数据库,其中包含一个名为customers的表,如下所示:

ID

姓名

电子邮件

电话

地址

城市

状态

压缩

1

爱丽丝

123-456-7890

主街123号

纽约

纽约

10001

2

鲍勃

鲍勃@example.com

234-567-8901

456榆树街

洛杉矶

CA

90001

3

查理

345-678-9012

789 松树街

芝加哥

伊尔

60001

.

.

.

.

.

.

.

.

为了连接mysql数据库,您可以使用LangChain提供的一个名为SQLDatabaseChain的组件。这是一个特定于用例的链,可让您使用LLM 与SQL 数据库交互。您只需要提供一些连接参数,例如数据库名称、用户名、密码等,即可创建SQLDatabaseChain的实例。然后,您可以使用该实例向LLM发送请求,或者调用一些函数来访问数据库。例如,您可以使用Python语言编写以下代码:

导入LangChain模块

导入langchain 作为lc

创建SQLDatabaseChain实例并连接本地mysql数据库

db=lc.SQLDatabaseChain(

database=‘business’, # 数据库名称

user=‘root’, # 用户名

密码=‘’,#密码

host=‘localhost’, # 主机地址

port=3306, # 端口号

dialect=‘mysql’ # 数据库方言

启动sql检查功能,自动修复错误sql

db.enable_sql_check()

设施返回GPT 迭代思维的中间步骤

D b。启用中间步骤()

这样,你就成功完成了使用SQLDatabaseChain与mysql数据库的连接。接下来,您可以使用该实例对数据库中的数据进行查询、分析和可视化。

查询数据库中的表格

要查询数据库中的表,可以使用SQLDatabaseChain的查询方法,该方法接受一个字符串参数,表示您希望LLM执行的SQL语句。例如,你可以写:

查询customers表中所有客户的姓名和email地址

结果=数据库. query(‘选择姓名,客户的电子邮件’)

这样,LLM就会尝试执行这条SQL语句,并返回一个结果对象,其中包含表格形式和文本形式的查询结果。您可以使用result.table 和result.text 访问这两种表单。例如可以打印出查询结果:

以表格形式打印查询结果

打印(结果。表)

打印查询结果的文本形式

打印(结果。文本)

输出可能如下所示:

|名称|电子邮件|

|爱丽丝| |

|鲍勃|鲍勃@example.com |

|查理| |

| . | . |

该查询返回10 行,其中包含以下列: 姓名和电子邮件。第一行是Alice,电子邮件地址为。第二行是Bob,电子邮件地址为。第三行是Charlie,电子邮件地址为。等等。

您可能已经注意到,LLM不仅返回查询结果的表格形式,还返回查询结果的文本形式,这是一个有用的功能,因为它使您更容易理解查询结果的含义和结构。另外,如果您输入错误或非法的SQL 语句,LLM 将尝试自动修复它并告诉您它更改了什么。例如,如果您输入:

查询customers表中所有客户的姓名和email地址(故意写错)

结果=数据库. query(‘选择姓名,客户的电子邮件’)

输出可能如下所示:

查询已修改为: select name, email from customer。列电子邮件已更正为电子邮件。

|名称|电子邮件|

|爱丽丝| |

|鲍勃|鲍勃@example.com |

|查理| |

| . | . |

该查询返回10 行,其中包含以下列: 姓名和电子邮件。第一行是Alice,电子邮件地址为。第二行是Bob,电子邮件地址为。第三行是Charlie,电子邮件地址为。等等。

正如您所看到的,LLM 发现了emial 的拼写错误,并自动将其更改为email。同时,它也告诉你它做了哪些修改。这样,您就不必担心输入错误或非法的SQL 语句。

除了直接输入SQL语句之外,你还可以使用自然语言来描述你想要查询的内容,LLM会尝试将其转换为SQL语句并执行。例如,你可以写:

使用自然语言查询customers表中居住在纽约的客户数量(生成SQL语句)

结果=数据库. query(‘有多少客户住在纽约?’)

输出可能如下所示:

该查询已转换为: select count(*) fromcustomers where city=‘New York’

|计数(*)|

| 3 |

查询返回1 行,以下列为: count(*)。值为3,表示有3 位客户居住在纽约。

可以看到LLM成功将自然语言转换为SQL语句并执行。同时,它还以表格形式和文本形式返回查询结果,让您更容易理解查询结果的含义。这样,您就可以更自然、更灵活地查询数据库中的表。

分析数据库中的数据

要分析数据库中的数据,您可以使用SQLDatabaseChain的analyze方法,该方法接受一个字符串参数,指示您希望LLM对数据执行哪种分析。例如,你可以写:

分析customers表中客户的地理分布(生成分析报告)

结果=数据库. analyze(‘客户的地理分布是什么?’)

这样,LLM就会尝试对数据进行相应的分析,并返回一个结果对象,其中包含分析结果的文本形式和图片形式。您可以使用result.text 和result.image 访问这两种表单。例如可以打印出分析结果:

打印分析结果的文本形式

打印(结果。文本)

打印分析结果的图像形式

打印(结果。图像)

输出是这样的:

分析显示客户分布在8个州,

在加利福尼亚州拥有最多的客户(4),

其次是纽约(3)、伊利诺伊州(2)和德克萨斯州(2)。

其他州各有一名客户。

客户的地理分布可以通过饼图可视化,

如下所示。

饼图

正如你所看到的,LLM返回一份分析报告,用文本和图像描述了数据的特征和趋势。这样,您就可以以更高级、更智能的方式分析数据库中的数据。

可视化数据库中的数据

要可视化数据库中的数据,可以使用SQLDatabaseChain 的Visualize 方法,该方法接受一个字符串参数,指示您希望LLM 使用哪种图表来可视化数据。例如,你可以写:

使用直方图可视化customers表中每个城市的客户数量(生成图表)

result=db.visualize(‘按城市划分的客户数量条形图’)

这样,LLM就会尝试用相应的图表来可视化数据,并返回一个结果对象,其中包含图表的图片形式和文本形式。您可以使用result.image 和result.text 访问这两种表单。例如,您可以打印出图表:

打印图表的图像形式

打印(结果。图像)

打印图表的文本形式

打印(结果。文本)

输出可能如下所示:

柱状图

图表显示客户分布在8个州,

在加利福尼亚州拥有最多的客户(4),

其次是纽约(3)、伊利诺伊州(2)和德克萨斯州(2)。

其他州各有一名客户。顾客总数为15人。

正如你所看到的,LLM返回一个图表,通过图片和文本显示数据的分布和比较。这样就可以更加美观、直观的方式将数据库中的数据可视化。

总结

在这篇文章中,我介绍了一个名为LangChain的强大框架,它允许您轻松使用LLM 构建端到端数据分析应用程序。我还展示了如何使用LangChain完成GPT本地mysql数据分析的具体步骤,并给出了一些示例代码和图片。您可以看到,通过LangChain,您可以以更自然、灵活、智能、先进的方式查询、分析和可视化您的业务数据,从而获得更有价值的见解和建议。希望您喜欢这篇文章,并希望您能够使用LangChain构建自己的数据分析应用程序。谢谢!

大语言模型的能力提升,各种AI应用的体验和质量将会提升,工具也会更加简单实用。最重要的是学会使用各种AI工具,极大地释放生产力。如果您想入门新bing并了解更多AI技术、应用以及ChatGPT进展,请点击以下链接加入

GPT4体验

小讯
上一篇 2026-04-24 09:17
下一篇 2026-04-24 09:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/275779.html