假如我的文章对你有用,请在“年度人气创作者榜单”活动中投我一票吧
前语
之前一向在研究 Chatchat 开源项目,并且已经把环境调试成功了,但是我一向想摸索一种全新的大模型的应用点,突发奇想有了一个关于数据处理的思路,由于单位里有很大部分作业都是数据处理作业,而数据处理作业平时都是调用各种小东西来进行的,假如我能运用 Agent 对话的方式,让搭档经过对话就完结数据的处理作业
岂不是美哉!说干就干!
环境建立
之前写的《建立 Langchain-Chatchat 具体进程》一文中已经具体介绍了环境的建立进程,这儿就不再赘述。
至于运用的大模型,由于现在阿里的通义千问的大模型 qwen-turbo 限时免费
,注册账号之后会送 200 万
的 token 额度足够用了,所以我挑选了这个大模型。假如想用的话要先注册阿里云账号并进行登陆,然后按照申请教程获取 api-key 即可运用。
使命介绍
我的手里有三个文件 要点信息.xlsx
、普查信息.xlsx
、地址信息.xlsx
,这三个文件中都有相互相关的字段挂接了要害的信息,我需要干的事情分为三步:
- 在
普查信息.xlsx
文件中经过要害字段id
找出和要点信息.xlsx
相关的成果,将成果保存到result.csv
中。 - 在
地址信息.xlsx
文件中经过要害字段id
找出和result.csv
相关的地址信息,将成果保存到result1.csv
。 - 由于
result1.csv
都是非标准化的地址,所以还要运用自己写的地址匹配引擎,将result1.csv
中的字段为地址
的信息悉数匹配到标准化的地址库上,完结标准化定位。
要害代码
咱们需要在 tools
文件夹之下写两个东西函数 filter_by_field_in_two_files
和 match_address
,逻辑内容涉及到作业细节,不方便透露这儿就不贴了,然后在 tools_select.py
中加入这两个要用到的东西,具体的函数意义便是其间的 description
部分,如下:
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 指令让大模型主动调用适宜的东西去完结使命:
请履行下面三步操作,每步挑选适宜的东西进行处理:
第一步:将文件'要点信息.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!我发现了一个震动的成果!这下好了,这些活小学生都能够干了,又要失业一批人了。喝杯咖啡压压惊~~