数据分析中的智能驱动 (chatgpt数据科学与大数据技术)

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

数据分析在过去的几年中发生了显著变化。在早期阶段,人们使用Excel和它的宏来手动进行数据分析。这是一个耗时且容易出错的过程,需要大量的时间来学习和实践。在接下来的几年中,数据分析师开始使用Python和像Pandas这样的库来自动化数据分析任务。借助Python语言的易用性和Pandas中强大的方法,这一阶段使得数据分析过程更加快速和高效。然而,它仍然需要必要的编程和库使用技能,以及脚本运行的环境设置。

数据分析发展的最新阶段是使用像ChatGPT和其他数千个模型这样的大型语言模型(LLM)。LLM是一种人工智能模型,可以通过训练来理解和生成人类语言,因此可以用于理解关于数据集的查询并自动化生成答案的各种分析工具。这使得数据分析工作的过程变得更加直观,并且更多的人可以轻松进行数据分析。

通过使用LangChain和Streamlit,我迅速构建了一个专用于分析数据集的个人聊天机器人。今天我将向您展示如何通过很少的编码工作来创建这个聊天机器人,这经过了与一支市场团队的成功试验,该团队没有宏或编程技能,但需要阅读和理解销售数据以提供销售方向。

1、用户体验

首先,让我快速向您介绍一下聊天机器人。在此之前,为了演示,我从Kaggle*载下**了一个名为"NYC Restaurants Data - Food Ordering and Delivery"的免费数据集,其中包含纽约市1898个外卖订单的数据:评论并关注小编获取数据集*载下**链接

a) 在假设该聊天机器人已经部署了公共IP的情况下,输入该聊天机器人的URL。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

b) 将之前*载下**的"NYC Restaurants Data - Food Ordering and Delivery"数据集中的"food_order.csv"文件上传到上传小部件中。上传完毕后,网站将显示数据集的前5行。此外,还会显示一个文本输入框和一个按钮,供用户对该数据集提出查询。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

c) 在文本输入框中输入查询内容,然后点击发送。经过一段时间的处理后,页面底部将显示您与AI之间的一段对话。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

d) 您可以继续提问,响应将在聊天区域中累积显示。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

e) 推理和计算的内部过程都将记录在您的后端终端中。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

2、架构框图

在这个聊天机器人应用程序中,我们使用了一个名为Pandas Dataframe Agent的LangChain Agent作为基础,并开发了一个Streamlit Web应用程序,用于接收用户输入的数据集文件,并进行数据分析后的响应。使用这个Agent,我们不必担心Pandas的使用,因为它实现了一个内部的Python代码生成器来调用适当的Pandas函数。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

从第3章到第5章,我将重点介绍此项目中使用的所有模块的基本知识和典型用法。如果您希望立即开始编写整个数据分析聊天机器人应用程序而不需要这些技术背景,建议您转到第6章。

3、OpenAI API密钥

LangChain Agent的设计目的之一是与各种LLM兼容,在这个应用程序中,它使用OpenAI的聊天模型进行AI语言生成任务。因此,当我们决定基于OpenAI的聊天模型实现我们的应用程序时,我们应该提供OpenAI API密钥给程序。

启用ChatGPT API的唯一需要做的事情就是通过环境变量提供API密钥:

import os
os.environ["OPENAI_API_KEY"] = '{your_api_key}'

如果你无法访问OpenAI官方的API,那么你依然可以跟之前的文章一样,使用国内一家代理提供的GPT4接口(app4gpt)。他其实就相当于是国内OpenAi代理商。当我们调不通官方服务时就需要去调中间商提供的中转服务,现在我使用的是app4gpt,代理商帮我解决了海外服务器问题以及API充值问题。大家可以通过必应搜索app4gpt找到该网站,也可以私信小编获取。

4、Streamlit

和我之前文章中的项目一样,我们将继续使用方便的Streamlit工具集来构建数据分析聊天机器人的Web应用程序。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

Streamlit是一个开源的Python库,可以轻松创建交互式的Web应用程序。它专为数据科学家和机器学习工程师设计,他们希望简单地与他人共享他们的工作。Streamlit应用程序可以用很少的代码创建,并通过一个命令部署到Web上。

Streamlit提供了各种小组件,可以用于创建这些交互式应用程序。这些小组件包括按钮、文本输入、数据框和图表。所有小组件的文档可以在Streamlit的网站上找到。

一个典型的Streamlit Web应用程序的代码可以非常简单,例如:

!pip install streamlit
import streamlit as st

st.title("Demo")
st.write("# My First App Hello *world!*")

然后只需键入以下命令将网站部署在线:

!python -m streamlit run demo.py

如果成功运行,将会打印出用户可以访问的URL:

You can now view your Streamlit app in your browser.
Network URL: http://xxx.xxx.xxx.xxx:8501
External URL: http://xxx.xxx.xxx.xxx:8501

Streamlit还支持第三方组件开发。我最喜欢的一个组件是streamlit_chat,它提供了一个类似聊天应用的用户界面,可以快速实现聊天机器人。要使用这个组件,您只需要进行以下操作:

a) 安装并导入组件

!pip install streamlit_chat

from streamlit_chat import message

b) 调用message()函数来显示聊天气泡,如果is_user=True,则气泡将显示在右侧,否则显示在左侧。seed用于显示不同风格的头像。

message("This is the message from bot", seed='Milo')
message("This is the message from human", is_user=True, seed=83)

5、LangChain Agents

LangChain是一个基于Python的框架,通过简化语言模型与各种数据源的连接,为开发人员提供了便利。它还着重于使这些模型足够真实,能够根据数据采取行动。有时候,某些应用程序需要更多的不确定的调用序列,这取决于用户的输入。在这些类型的链条中,有一个"agent",它可以访问一组工具。agent根据用户输入决定是否调用这些工具。它们可以用于创建各种应用程序,包括聊天机器人、问答系统和摘要系统。

chatgpt如何提高数据分析效率,chatgpt强化数据挖掘和分析能力

在这一段中,我们不会深入讨论LangChain和agent的一般用法,而是将在电子商务数据集的上下文中探讨一个名为Pandas Dataframe Agent的特定LangChain Agent。我们还将在最后一节讨论使用LangChain框架的数据分析的未来发展方向。

要在本地成功运行Pandas Dataframe Agent,只需要执行以下几个步骤:

a) 安装所需的package

!pip install openai pandas langchain

b) 导入模块

from langchain.llms import create_pandas_dataframe_agent
from langchain.chat_models import ChatOpenAI
import pandas as pd

c) 将数据集文件加载到Pandas Dataframe中

df = pd.read_csv('food_order.csv')

d) 创建Pandas agent

agent = create_pandas_dataframe_agent(ChatOpenAI(temperature=0), df, verbose=True)

e) 通过提供查询运行agent

response = agent.run("Which cuisine type has the highest average cost?")

当agent正在运行时,您的终端上将显示格式化的输出,并在agent链执行完成后返回一个字符串响应来回答您的查询。

6、完整的聊天机器人应用程序

为了将LangChain agent和Streamlit整合到一个交互式的网站中,完整的功能包括:

使用st.file_uploader()创建一个上传小部件,只接受上传的.csv文件。在成功接收到.csv文件后,将其保存在与Python文件相同的文件夹中。

使用Pandas的read_csv()方法将.csv文件读取为数据帧。调用Streamlit的dataframe()方法来显示数据帧的头部。

通过ChatOpenAI()方法创建聊天模型,并将其与数据帧一起加载到pandas_dataframe_agent中。

使用st.text_input()st.button()创建另外两个Streamlit小部件,以便为用户提供查询界面。在按钮的on_click事件中,将文本输入中的查询转移到agent.run()函数中启动链执行。在链执行完成后,将响应和原始提示添加到st.session_state的两个列表中,以便在网页上使用streamlit_chat组件显示聊天历史记录。

完整源代码可以评论并关注小编获取

将代码保存为Python文件"demo.py",然后运行以下命令:

!python -m streamlit run demo.py

您的数据分析聊天机器人现已准备就绪,并能够有效地执行其分析任务。

7、未来的扩展

LangChain在数据分析过程中提供了重要的创新。该框架能够快速分析大型数据集,提取见解,并及时回答问题。然而,该框架仍在不断发展中,并且可以通过各种改进进一步扩展其功能。

一个可能改进的方面是建立反馈循环。目前,我们可以问agent特定的问题并获得答案,但我们无法获得在分析过程中生成的中间数据帧。在未来,LangChain可以实现数据帧的返回。这样,数据分析师和科学家可以继续使用生成的数据,并提出后续问题。

另一个改进的领域是引用外部网页。LangChain具有可以从网页提取信息的Python请求工具。在未来,agent可以引用外部网页以获取进行分析所需的数据。

以上就是本次分享的全部内容。希望您在本文中能找到一些有用的信息,感谢您的阅读!