LLM Agent 自动完成数据处理工作!喝着咖啡就把活干了,妙啊!

如果我的文章对你有用,请在"年度人气创作者榜单"活动中投我一票

前言

之前一直在研究 Chatchat 开源项目,并且已经把环境调试成功了,但是我一直想摸索一种全新的大模型的应用点,突发奇想有了一个关于数据处理的思路,因为单位里有很大部分工作都是数据处理工作,而数据处理工作平时都是调用各种小工具来进行的,如果我能使用 Agent 对话的形式,让同事通过对话就完成数据的处理工作岂不是美哉!说干就干!

环境搭建

之前写的《搭建 Langchain-Chatchat 详细过程》一文中已经详细介绍了环境的搭建过程,这里就不再赘述。

至于使用的大模型,因为现在阿里的通义千问的大模型 qwen-turbo 限时免费,注册账号之后会送 200 万的 token 额度足够用了,所以我选择了这个大模型。如果想用的话要先注册阿里云账号并进行登陆,然后按照申请教程获取 api-key 即可使用。

任务介绍

我的手里有三个文件 重点信息.xlsx普查信息.xlsx地址信息.xlsx,这三个文件中都有互相关联的字段挂接了关键的信息,我需要干的事情分为三步:

  1. 普查信息.xlsx 文件中通过关键字段 id 找出和 重点信息.xlsx 相关的结果,将结果保存到 result.csv 中。
  2. 地址信息.xlsx 文件中通过关键字段 id 找出和 result.csv 相关的地址信息,将结果保存到 result1.csv
  3. 因为 result1.csv 都是非标准化的地址,所以还要使用自己写的地址匹配引擎,将 result1.csv 中的字段为 地址 的信息全部匹配到标准化的地址库上,完成标准化定位。

关键代码

我们需要在 tools 文件夹之下写两个工具函数 filter_by_field_in_two_filesmatch_address ,逻辑内容涉及到工作细节,不方便透露这里就不贴了,然后在 tools_select.py 中加入这两个要用到的工具,具体的函数含义就是其中的 description 部分,如下:

ini 复制代码
Tool.from_function(
    func=filter_by_field_in_two_files,
    name="filter_by_field_in_two_files",
    description="Useful for when you need to find and save special info from given two files by specified field name,there is a string composed of four function parameters.which are input A filename , input B filenam, field name, output filename",
    args_schema=filter_by_field_in_two_files_Input,
),

Tool.from_function(
        func=match_address,
        name="match_address",
        description="Useful for when you need to match addresses in a file by specified field name,there is only a string composed of three function parameters which are input filename ,field name, output filename.",
        args_schema=match_address_Input,
),
  • 第一个函数 filter_by_field_in_two_files 主要接受四个参数,包括 A 文件名,B文件名,关联字段名,结果文件名,完成从两个关联的文件中通过指定字段过滤信息并进行保存的任务。
  • 第二个函数 match_address 主要接受三个参数,包括文件名,字段名,结果文件名,完成将指定文件的字段内容进行地址标准化匹配的任务。

效果展示

启动项目后,我选择了自己要用的大模型为线上的 qwen-api ,然后再选择对话模式为 自定义 Agent 问答,为了输出的答案比较合理,我就将 Temperature 降低为 0.01 ,然后输入自己的 Prompt 命令让大模型自动调用合适的工具去完成任务:

arduino 复制代码
请执行下面三步操作,每步选择合适的工具进行处理:

第一步:将文件'重点信息.xlsx'和文件'普查信息.xlsx'通过字段'id'筛选出关键信息并将结果保存到文件'result.csv'中

第二步:将文件'result.csv'和文件'地址信息.xlsx'通过字段'id'筛选出关键信息并将结果保存到文件'result1.csv'中

第三步:将文件 'result1.csv' 通过字段'地址'进行匹配,结果保存到文件 'result2.csv' 中

可以从图中看出,大模型的思考过程分为三步,每一步都将我的指令中的参数提取了出来,并且调用了合适的工具去解决。第一步和第二步都调用了 filter_by_field_in_two_files 工具,第三步调用了 match_address 工具,PERFECT!

最终生成的三份结果文件也都在文件夹中,而且处理的结果内容正确,这表明大模型自动调用工具来完成数据处理的工作这一个思路是可行的。也就是说只要把关键的操作过程写成一个个具体的参数可控的工具,理论上只要大模型的理解能力足够高,操作人员只要将数据处理的需求讲清楚,大模型就可以自动调用合适的工具来自动地一步一步地完成任务。

OMG!我发现了一个震惊的结果!这下好了,这些活小学生都可以干了,又要失业一批人了。喝杯咖啡压压惊~~

参考

相关推荐
Coder个人博客9 分钟前
Transformers推理管道系统深度分析
人工智能·自动驾驶·transformer
nwsuaf_huasir11 分钟前
采用梯度下降法优化波形的自相关特性
人工智能·计算机视觉·目标跟踪
长河_讲_ITIL441 分钟前
在硅基的倒影中寻找自我:写在AI智能体元年的一场思想突围
运维·人工智能·itss·itil·itil认证·itil培训
中國龍在廣州1 小时前
谈谈2025年人工智能现状及发展趋势分析
人工智能·深度学习·算法·自然语言处理·chatgpt·机器人·机器人学习
才盛智能科技1 小时前
帆麦自助KTV,如何成为潮流生活的一部分?
人工智能·物联网·生活·自助ktv系统·才盛云自助ktv系统·才盛云
童话名剑1 小时前
Inception网络(吴恩达深度学习笔记)
网络·笔记·深度学习
可触的未来,发芽的智生1 小时前
一万个为什么:频率和相位
javascript·人工智能·python·程序人生·自然语言处理
雍凉明月夜1 小时前
深度学习之目标检测(1)
人工智能·深度学习·目标检测
国科安芯1 小时前
核工业检测系统通信链路的国产化元器件安全等级评估
运维·网络·人工智能·单片机·嵌入式硬件·安全·安全性测试
水如烟1 小时前
孤能子视角:“自指“,任何具有足够复杂性的关系性存在在演化中必然涌现的、定义其根本边界的“内在奇点”
人工智能