今天,我将通过使用LangChain和Streamlit来构建一个专用于数据分析的聊天机器人。
我将向你展示如何用很少的编码工作来创建这个聊天机器人,如果觉得不错,点赞转发安排起来。
首先,我们先快速了解一下这个机器人的全貌。
我从Kaggle下载了一个免费的数据集来进行演示,其中包含1898个纽约市的食品配送订单
2、上传我们的数据文件,在加载完成后,会显示出数据集的前五行。此外,还将显示一个带有按钮的文本输入框,供用户查询此数据集。
在此聊天机器人应用程序中,我们使用名为PandasDataframeAgent作为基础,并开发StreamlitWeb应用程序。
使用这个代理,我们不必担心Pandas的使用,因为它实现了一个内部Python代码生成器来调用正确的Pandas函数。
下面的第三到第五部分,我将重点介绍本项目中使用的所有模块的基础知识和典型用法。
如果你想在没有这些技术背景的情况下立即开始编写整个用于数据分析的聊天机器人应用程序,建议你直接跳转到第六部分。
LangchainAgent的设计目的之一是兼容各种LLM,在这个应用中,它使用OpenAI的模型来完成AI语言生成任务。
importosos.environ["OPENAI_API_KEY"]='{your_api_key}'四、StreamlitStreamlit是一个开源的Python库,可以轻松创建交互式Web应用程序。
Streamlit应用程序可以使用最少的代码创建,并通过单个命令部署到Web。
Streamlit提供了各种可用于创建交互式应用程序的小部件。这些小部件包括按钮、文本输入、数据框和图表。我最喜欢的组件之一是streamlit_chat,它提供了类似聊天应用程序的UI,用于快速实现聊天机器人。要使用该组件,你需要做的就是:
1、安装并导入组件
pipinstallstreamlit_chatfromstreamlit_chatimportmessage2、调用message()函数显示聊天记录,如果is_user=True,则消息出现在右侧,否则在左侧。seed用于展示不同风格的头像。
message("Thisisthemessagefrombot",seed='Milo')message("Thisisthemessagefromhuman",is_user=True,seed=83)五、LangChainLangChain是一个基于Python的框架,通过促进语言模型与各种数据源的连接来为开发人员提供支持。
本节我们不会深入探讨LangChain和Agent的一般用法。
我们在这里只是探索一个名为PandasDataframeAgent的特定LangChainAgent。
要在本地成功运行PandasDataframeAgent,只需完成几个步骤。
1、安装库
pipinstallopenaipandaslangchain2、导入模块
fromlangchain.llmsimportcreate_pandas_dataframe_agentfromlangchain.chat_modelsimportChatOpenAIimportpandasaspd3、将数据文件加载到PandasDataframe中
df=pd.read_csv('food_order.csv')4、创建Pandas代理
agent=create_pandas_dataframe_agent(ChatOpenAI(temperature=0),df,verbose=True)5、通过提供查询来运行代理
response=agent.run("Whichcuisinetypehasthehighestaveragecost")当代理运行时,你的终端上将显示格式化的输出。
并在代理链完成后返回一个字符串response来回答你的查询。
为了将Langchain代理和Streamlit整合到一个交互式网站中,完整的功能将包括: