前言

探索如何使用Langchain的Agent来高效查询表格数据的信息

【LangChain系列——操作SQL&CSV&连接数据库系列文章】:
一、使用LangChain连接MySQL实践&运行:如何使用langchain连接MySQL数据库&使用大模型优化&构建chain
二、基于Langchain的Pandas&csv Agent:调用Langchain自带的Pandas&CSV 智能体来对数据进行操作
三、与SQL交互时如何得到更好的结果&输出的查询结果验证方案:使用SQLLite简易数据库来实践,与SQL交互如何得到更好的结果&小技巧

一、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,计算20247月份通过'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,计算20247月份通过'APP'渠道的总访客数)
             """)

输出:
在这里插入图片描述

参考文章:

Langchain’s Pandas & CSV Agents: Revolutionizing Data Querying using OpenAI LLMs
LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发

LangChain官网

总结

局限性较大,如果需求不够精确,那么很容易导致错误结果,其次,Agent无法执行复杂操作,在自我反思的过程中陷入了复读机循环。🤣

Logo

一站式 AI 云服务平台

更多推荐