开启左侧

【LangChain系列】【基于Langchain的Pandas&csv Agent】

[复制链接]
作者:ㄣ知冷煖★
目录

    前言一、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 Agent2-3-4、CSV Agent

    总结


前言

探索如何使用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。
【LangChain系列】【基于Langchain的Pandas&csv Agent】-1.png


1-2、特点

LangChain的特点如下:
    大语言模型(llm): LangChain为自然语言处理提供了不同类型的模型,这些模型可用于处理非结构化文本数据,并且可以基于用户的查询检索信息
    PromptTemplates: 这个特征使开发人员能够使用多个组件为他们的模型构造输入提示。在查询时,开发人员可以使用PromptTemplates为用户查询构造提示模板,之后模板会传递到大模型进行进一步的处理。
    :在LangChain中,链是一系列模型,它们被连接在一起以完成一个特定的目标。聊天机器人应用程序的链实例可能涉及使用LLM来理解用户输入,使用内存组件来存储过去的交互,以及使用决策组件来创建相关响应。
    agent: LangChain中的agent与用户输入进行交互,并使用不同的模型进行处理。Agent决定采取何种行动以及以何种顺序来执行行动。例如,CSV Agent可用于从CSV文件加载数据并执行查询,而Pandas Agent可用于从Pandas数据帧加载数据并处理用户查询。可以将代理链接在一起以构建更复杂的应用程序。
二、Pandas&csv Agent

2-1、安装
  1. pip install --upgrade --quiet  langchain langchain-community langchain-experimental langchain-openai
  2. pip install langchain_experimental
复制代码
2-2、Pandas&csv Agent介绍

Pandas Agent:是一种用于处理大型数据集的工具,它可以通过从Pandas数据对象中加载数据并执行高级查询操作来处理数据。其关键功能包括对数据进行分组和汇总、基于复杂条件过滤数据,以及将多个数据对象连接在一起。该Agent非常适合需要处理大型数据集并需要高级查询功能的开发人员。
CSV Agent:是另一种用于查询结构化数据的工具。它从CSV文件中加载数据,并支持基本的查询操作,如选择和过滤列、排序数据,以及基于单个条件查询数据。对于需要简单但功能强大的查询工具来处理结构化数据的开发人员来说,这是一种高效的选择。
两者都允许开发人员创建更复杂、更高效的应用程序,以利用不同的数据源和处理步骤。
2-3、Pandas&csv Agent使用

2-3-1、相关库的导入:
  1. import os
  2. from langchain_community.chat_models.tongyi import ChatTongyi
  3. from langchain_experimental.agents import create_pandas_dataframe_agent,create_csv_agent
  4. import pandas as pd
复制代码
2-3-2、设置要调用的模型(我这里使用阿里的模型)
  1. # 环境变量设置,模型接口设置
  2. os.environ["LANGCHAIN_TRACING_V2"]=""
  3. os.environ["LANGCHAIN_API_KEY"]=""
  4. os.environ["DASHSCOPE_API_KEY"]=''
  5. model =ChatTongyi(
  6.     streaming=True,)
复制代码
2-3-3、数据读取&展示
  1. df = pd.read_excel('app_traffic_by_source 2024-07-0817_48_06(1).xlsx')print(df.head(5))
复制代码
输出如下:

【LangChain系列】【基于Langchain的Pandas&csv Agent】-2.png


2-3-4、Pandas Agent

Pandas Agent: 使用create_pandas_dataframe_agent来构建一个数据Agent,该Agent可用于在不同格式之间转换数据。
run: 调用run方法来执行agent。
    首先,Agent识别任务其次,选择适当的操作从数据框中检索所需的信息。最后,它观察输出并组合观察结果,并生成最终答案。
  1. # 这里需要执行代码操作,加allow_dangerous_code=True因无法执行而防止报错。
  2. pd_agent =create_pandas_dataframe_agent(model, df, allow_dangerous_code=True, verbose=True)
  3. pd_agent.run("""
  4.             渠道的列名为:entrance,计算2024年7月份通过'APP'渠道的总访客数
  5.              """)
复制代码
输出:

【LangChain系列】【基于Langchain的Pandas&csv Agent】-3.png


2-3-4、CSV Agent
  1. csv_agent =create_csv_agent(model,"app_traffic_by_source 2024-07-08 17_48_06(1).csv", allow_dangerous_code=True, verbose=True)
  2. csv_agent.run("""
  3.             渠道的列名为:entrance,计算2024年7月份通过'APP'渠道的总访客数)
  4.              """)
复制代码
输出:

【LangChain系列】【基于Langchain的Pandas&csv Agent】-4.png


参考文章:
Langchain’s Pandas & CSV Agents: Revolutionizing Data Querying using OpenAI LLMs
LangChain
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )