【LangChain系列】【基于Langchain的Pandascsv 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 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,计算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无法执行复杂操作,在自我反思的过程中陷入了复读机循环。🤣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/792676.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为USG6000V防火墙v1

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1🤣防火墙FW1web服务配置 2.网络配置 要求1:DMZ区内的服务器,办公区仅能在办公时间内(9:00-18:00)可以访问,生产区的设备全天可以访问 要求2:生产区不…

记一次酣畅淋漓的UDF提权(Linux)

外网打点就不放了,翻了一下具备suid权限的命令,没啥结果。 可疑的命令是/usr/lib/dbus-1.0/dbus-daemon-launch-helper但是没有找到用这个命令提权的资料。 弹shell后翻找一下源码,/app/api.py文件中链接了mysql,事出反常必有妖&…

Qt:18.状态栏(状态栏介绍、代码方式创建状态栏、在状态栏显示临时信息、在状态栏创建控件)

目录 1.状态栏介绍: 2.代码方式创建状态栏: 3. 在状态栏显示临时信息: 4.在状态栏创建控件: 1.状态栏介绍: Qt 状态栏是 QMainWindow 窗口的一部分,通常用于显示临时信息,如应用程序的状态、…

hbase学习

hbase学习 hbase概述: HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用于存储海量的结构化或者半结构化,非结构化的数据(底层是字节数组做存储的) HBase是Hadoop的生态系统之一,是建立在…

系统化学习 H264视频编码(03)数据压缩流程及相关概念

说明:我们参考黄金圈学习法(什么是黄金圈法则?->模型 黄金圈法则,本文使用:why-what)来学习音H264视频编码。本系列文章侧重于理解视频编码的知识体系和实践方法,理论方面会更多地讲清楚 音视频中概念的…

国产化趋势下源代码数据防泄密的信创沙盒的方案分享

随着国产化的大力推进,越来越多的企事业单位在逐步替换Windows、Linux等操作系统的使用。那么什是国产化了?国产化是指在产品或服务中采用国内自主研发的技术和标注,替代过去依赖的他国的产品和服务,国产化又被称之为“信创”&…

pytorch实现水果2分类(蓝莓,苹果)

1.数据集的路径,结构 dataset.py 目的: 输入:没有输入,路径是写死了的。 输出:返回的是一个对象,里面有self.data。self.data是一个列表,里面是(图片路径.jpg,标签&…

错误处理在网络爬虫开发中的重要性:Perl示例_引言

错误处理的必要性 在网络爬虫的开发过程中,可能会遇到多种错误,包括但不限于: 网络连接问题服务器错误(如404或500错误)目标网站结构变化超时问题权限问题 错误处理机制可以确保在遇到这些问题时,爬虫能…

防火墙之安全策略

目录 前言: 一、实验需求 二、需求分析 三、具体操作 1,在安全区域中新建拓扑图中所显示的区域 2,在对象模块中的时间段中添加一个9:00-18:00 3,写两条安全策略,一个是生产区&#xff0c…

记录文字视差背景学习

效果图 文字背景会随鼠标上下移动变成红色或透明 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

前端使用pinia中存入的值

导入pinia,创建pinia实例 使用pinia中的值

【Spring Boot】关系映射开发(二):一对多映射

《JPA 从入门到精通》系列包含以下文章&#xff1a; Java 持久层 API&#xff1a;JPA认识 JPA 的接口JPA 的查询方式基于 JPA 开发的文章管理系统&#xff08;CRUD&#xff09;关系映射开发&#xff08;一&#xff09;&#xff1a;一对一映射关系映射开发&#xff08;二&#…

设计已死?AIGC时代创意设计师的“智能设计”和“人智协作”

在当今这个AIGC&#xff08;AI Generated Content&#xff09;时代&#xff0c;有人宣称“设计已死”&#xff0c;认为人工智能将会完全取代设计师的工作。然而&#xff0c;事实真的如此吗&#xff1f;本文将深入探讨AIGC时代下创意设计师的“智能设计”与“人智协作”。 AIGC是…

Elasticsearch:Node.js ECS 日志记录 - Pino

在我的上一篇文章 “Beats&#xff1a;使用 Filebeat 从 Python 应用程序中提取日志” 里&#xff0c;我详述了如何使用 Python 来生成日志&#xff0c;并使用 Filebeat 来收集日志到 Elasticsearch 中。在今天的文章中&#xff0c;我来详细描述如何使用 Node.js 来生成 ECS 相…

什么是数据标准?企业进行数据标准管理有这么多好处?

随着大数据、云计算和人工智能等技术的兴起&#xff0c;企业对数据的依赖程度日益增加。然而&#xff0c;数据的快速增长带来了一系列挑战&#xff0c;其中之一就是如何确保数据的一致性和准确性。这正是数据标准管理发挥作用的地方。 数据标准管理构成了数据管理的核心部分&a…

C语言学习网站推荐

1.C语言中文网&#xff1a; http://c.biancheng.net/view/510.html 此网站会提供很多关于C语言的入门算法&#xff0c;教程等等。分享的C语言知识结构是比较完整的。此网站还提供了很多关于C语言的资料&#xff0c;代码。有些资料是免费的&#xff0c;有些是需要付费的。 2.5…

常用知识碎片 Vue3 ref和reactive (内含其他常用知识)

目录 ref和reactive ref reactive 总结&#xff1a; setup语法糖 语法糖是啥&#xff1f; Vue3 setup语法糖 Vue3 不使用setup语法糖示例&#xff1a; Vue3 使用setup语法糖示例&#xff1a; ref和eative主要区别 ref和reactive 在 Vue 3 中&#xff0c;ref 和 reac…

git仓库使用

一、没有仓库 首先要有gitee账号 创建仓库 有了仓库就按已有仓库进行操作 二、已有仓库 先让仓库负责人把自己拉进仓库 成为开发者或者管理员 git clone 仓库地址 开始工作 git add . git commit -m “ 提交说明” git pull 更新一下也叫同步 将线上代码更新到本地 git pu…

BUUCTF[堆][unsortbin]

fastbin Attack 、unsorted bin 思路&#xff1a; 利用double free的方式泄漏出unsortbin中的main_arena地址。 释放一个不属于fast bin 的 chunk&#xff0c;并且该 chunk 不和 top chunk 紧邻时&#xff0c;该 chunk 会被首先放到 unsorted bin 中。 当有一个(或几个) sma…

BUCK电源芯片,电气参数,极限参数,工作特性,引脚功能

概述 在应用DC-DC开关电源芯片时&#xff0c;通常需要关注以下参数&#xff0c;同步与非同步&#xff0c;输入电压&#xff0c;输入电流&#xff0c;输出电压&#xff0c;输出电流&#xff0c;输入输出电容的选择&#xff1b;mosfet选型&#xff0c;电感选型&#xff0c;功耗&a…