目录
- 前言
- 一、LangChain
- 1-1、介绍
- 1-2、特点
- 二、Pandas&csv Agent
- 2-1、安装
- 2-2、Pandas&csv Agent介绍
- 2-3、Pandas&csv Agent使用
- 2-3-1、相关库的导入:
- 2-3-2、设置要调用的模型(我这里使用阿里的模型)
- 2-3-3、数据读取&展示
- 2-3-4、Pandas Agent
- 2-3-4、CSV Agent
- 总结
前言
探索如何使用Langchain的Agent来高效查询表格数据的信息一、LangChain
1-1、介绍
LangChain是一个框架,用于开发由大型语言模型(LLM)驱动的应用程序。
LangChain 简化了 LLM 应用程序生命周期的每个阶段:
- 开发:使用LangChain的开源构建块和组件构建应用程序。使用第三方集成和模板开始运行。
- 生产化:使用 LangSmith 检查、监控和评估您的链条,以便您可以自信地持续优化和部署。
- 部署:使用 LangServe 将任何链转换为 API。
1-2、特点
LangChain的特点如下:
-
大语言模型(llm): LangChain为自然语言处理提供了不同类型的模型,这些模型可用于处理非结构化文本数据,并且可以基于用户的查询检索信息
-
PromptTemplates: 这个特征使开发人员能够使用多个组件为他们的模型构造输入提示。在查询时,开发人员可以使用PromptTemplates为用户查询构造提示模板,之后模板会传递到大模型进行进一步的处理。
-
链:在LangChain中,链是一系列模型,它们被连接在一起以完成一个特定的目标。聊天机器人应用程序的链实例可能涉及使用LLM来理解用户输入,使用内存组件来存储过去的交互,以及使用决策组件来创建相关响应。
-
agent: LangChain中的agent与用户输入进行交互,并使用不同的模型进行处理。Agent决定采取何种行动以及以何种顺序来执行行动。例如,CSV Agent可用于从CSV文件加载数据并执行查询,而Pandas Agent可用于从Pandas数据帧加载数据并处理用户查询。可以将代理链接在一起以构建更复杂的应用程序。
二、Pandas&csv Agent
2-1、安装
pip install --upgrade --quiet langchain langchain-community langchain-experimental langchain-openai
pip install langchain_experimental
2-2、Pandas&csv Agent介绍
Pandas Agent:是一种用于处理大型数据集的工具,它可以通过从Pandas数据对象中加载数据并执行高级查询操作来处理数据。其关键功能包括对数据进行分组和汇总、基于复杂条件过滤数据,以及将多个数据对象连接在一起。该Agent非常适合需要处理大型数据集并需要高级查询功能的开发人员。
CSV Agent:是另一种用于查询结构化数据的工具。它从CSV文件中加载数据,并支持基本的查询操作,如选择和过滤列、排序数据,以及基于单个条件查询数据。对于需要简单但功能强大的查询工具来处理结构化数据的开发人员来说,这是一种高效的选择。
两者都允许开发人员创建更复杂、更高效的应用程序,以利用不同的数据源和处理步骤。
2-3、Pandas&csv Agent使用
2-3-1、相关库的导入:
import os
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_experimental.agents import create_pandas_dataframe_agent,create_csv_agent
import pandas as pd
2-3-2、设置要调用的模型(我这里使用阿里的模型)
# 环境变量设置,模型接口设置
os.environ["LANGCHAIN_TRACING_V2"] = ""
os.environ["LANGCHAIN_API_KEY"] = ""
os.environ["DASHSCOPE_API_KEY"] = ''
model = ChatTongyi(
streaming=True,
)
2-3-3、数据读取&展示
df = pd.read_excel('app_traffic_by_source 2024-07-08 17_48_06(1).xlsx')
print(df.head(5))
输出如下:
2-3-4、Pandas Agent
Pandas Agent: 使用create_pandas_dataframe_agent来构建一个数据Agent,该Agent可用于在不同格式之间转换数据。
run: 调用run方法来执行agent。
- 首先,Agent识别任务
- 其次,选择适当的操作从数据框中检索所需的信息。
- 最后,它观察输出并组合观察结果,并生成最终答案。
# 这里需要执行代码操作,加allow_dangerous_code=True因无法执行而防止报错。
pd_agent = create_pandas_dataframe_agent(model, df, allow_dangerous_code=True, verbose=True)
pd_agent.run("""
渠道的列名为:entrance,计算2024年7月份通过'APP'渠道的总访客数
""")
输出:
2-3-4、CSV Agent
csv_agent = create_csv_agent(model, "app_traffic_by_source 2024-07-08 17_48_06(1).csv", allow_dangerous_code=True, verbose=True)
csv_agent.run("""
渠道的列名为:entrance,计算2024年7月份通过'APP'渠道的总访客数)
""")
输出:
参考文章:
Langchain’s Pandas & CSV Agents: Revolutionizing Data Querying using OpenAI LLMs
LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发
LangChain官网
总结
局限性较大,如果需求不够精确,那么很容易导致错误结果,其次,Agent无法执行复杂操作,在自我反思的过程中陷入了复读机循环。🤣