ChatGPT在指尖跳舞: open-interpreter实现本地数据采集、处理一条龙

原文:ChatGPT在指尖跳舞: open-interpreter实现本地数据采集、处理一条龙 - 知乎

目录

收起

Part1 前言

Part2 Open - Interpreter 简介

Part3 安装与运行

Part4 工作场景

1获取网页内容

2 pdf 文件批量转换

3 excel 文件合并

Part5总结

参考资料

往期推荐

更多详情请点击查看原文ChatGPT在指尖跳舞: open-interpreter实现本地数据采集、处理一条龙

Python教学专栏,旨在为初学者提供系统、全面的Python编程学习体验。通过逐步讲解Python基础语言和编程逻辑,结合实操案例,让小白也能轻松搞懂Python!

>>>点击此处查看往期Python教学内容

本文目录

一、前言
二、Open - Interpreter 简介
三、安装与运行
四、工作场景
(一)获取网页内容

(二)pdf文件批量转换

(三)excel文件合并
五、总结
本文共4192个字,阅读大约需要11分钟,欢迎指正!

Part1 前言

本期介绍由 KillianLucas 发布在 Github 上的一个开源项目 open-interpreter,该项目允许 AI 大语言模型(LLMs)在本地电脑运行代码(Python、Javascript、Shell 等),和之前文章中通过调用 ChatGPT 运行代码的方法有着异曲同工之妙。(传送门:Python 实战 | ChatGPT + Python 实现全自动数据处理/可视化

当然,与之相比,open-interpreter 更加强大和完善,能够更灵活地处理多种任务,目前已经登上了 Github 热榜并获得了 17k+ 的星标。本篇文章将介绍 open-interpreter 的用法,并给出一些应用示例。

Part2 Open - Interpreter 简介

一言蔽之,Open - Interpreter 就是一个部署在本地电脑上的,能够帮你完成本地电脑操作,调用本地的网络、编程环境帮你采集和操作、处理本地数据的 AI 工具。

实际上,OpenAI 也发布过一款代码解释器,该解释器使用 GPT-4 模型,在沙盒、防火墙执行环境中工作。OpenAI 发布的代码解释器支持上传和下载文件,但有 100M 的文件大小限制。此外,出于安全考虑,OpenAI 为这个解释器设置了严格的限制,使它不能访问网络,且只能使用有限的三方库[1]

OpenAI 发布的代码解释器

与 OpenAI 发布的解释器相比,open-interpreter 解释器具有以下的优势:

  • 支持联网,可以通过 Python 三方库访问网络
  • 本地访问,文件大小和操作时间没有限制
  • 可以使用所有库,GPT 在给出的代码中会包含安装库的代码
  • 支持GPT-4和ChatGPT-3.5-Turbo,甚至如果没有API,还可以把模型换成开源的Code LLaMa

Part3 安装与运行

open-interpreter 既支持在 Python 开发环境中运行,也支持在本地终端运行(需要确保本地编程语言已部署),但发布者 KillianLucas 更倾向于使用终端运行,在本文结果的测试中,笔者也确实发现用终端运行更加方便。无论使用哪种运行方式,安装方法都是一样的:

1 pip install open-interpreter

安装完成后,如果要在终端运行,有三种开启方式:

  • 默认开启——使用 GPT-4 模型:interpreter
  • 快速开启——使用 GPT-3.5-Turbo 模型:interpreter --fast
  • 本地开启——使用本地模型(免费):interpreter --local

在终端输入开启命令并回车后会提示指定 OpenAI API Key,输入 Key 并回车后即可运行 open-interpreter:

open-interpreter 终端运行界面(使用 GPT-3.5-Turbo 模型)

这里顺便提一下,如果不想在每次使用时重复输入 OpenAi API Key,那么可以将 Key 储存在环境变量中,这样每次运行的时候将从环境变量中自动导入。只需要在计算机设置中搜索环境变量,然后新建一个名为“OPENAI_API_KEY”的环境变量即可:

也可以在终端中输入setx OPANAI_API_KEY YOUROPANAIAPIKEY来将 Key 存入环境变量。在 Python 开发环境中要通过导入库的方式运行 open-interpreter:

1 import interpreter

如果要使用其他模型,需要用以下代码指定,否则会默认使用 GPT-4 模型:

1 interpreter.model = "gpt-3.5-turbo"

在开发环境中调用 open-interpreter 需要使用函数interpreter.chat()。如果不指定内容,将和终端运行一样启动交互式聊天,如果要更精确的控制,也可以在函数中指定具体的提问内容:

1 # 交互式聊天
2 interpreter.chat()
3
4 # 精确控制
5 interpreter.chat("你的提问内容")

当 open-interpreter 给出任务的实行计划和代码时,需要输入y来确认接受给出的计划或者代码,如果对给出的答案不满意,可以输入n,并重新给出要求让 AI 完善答案,直到满意为止。接下来将用几个工作场景中的应用来展示 open-interpreter 的强大功能。

Part4 工作场景

1获取网页内容

open-interpreter 最引人注目的特点是支持联网,我们首先让它尝试读取和理解网页的内容。我们索性让它读取 open-interpreter 项目所在的 Github 网址,来一个简单的“自我介绍”。

首先,我们使用开启命令运行 open-interpreter(这里使用的是 GPT-4 模型),然后向它提问“这个Github项目的主要内容是什么?https://github.com/KillianLucas/open-interpreter”,之后 AI 给出了相应的解决步骤以及 Python 代码:

访问网页解决方案

我们键入y选择接受这个解决思路,open-interpreter 会运行代码并给出结果:

访问网页结果

open-interpreter 成功读取了该网页的内容,并给出了信息摘要。

接下来,我们尝试让 open-interpreter 完成一个简单的爬虫任务。我们想要从浙江省科学技术厅发布的通知中获取“2022年度浙江省科技领军企业认定名单”和“2022年度浙江省科技小巨人企业认定名单”,发布通知的网页地址为“https://kjt.zj.gov.cn/art/2023/1/13/art_1229225203_5055092.html”,原始网页内容如下:

原始网页信息

我们向 open-interpreter 发出指令让其获取这些内容,AI 给出的解决方案为:

从网页获取表格方案

可以看到,AI 首先给出代码安装requestbeautifulsoup4pandasopenpyxl四个库,由于在此之前这四个库已经安装过了,因此键入n并让其修改方案,AI 的修改结果如图:

按要求修正 AI 给出的方案

之后重复上述操作,根据自己的需求选择是否接受 AI 的代码,并让其一直完善直到满意即可。最终,open-interpreter 完成了任务,将表格储存在了要求的目录下:

网页表格获取结果的储存

最终 AI 储存的 excel 内容如下图所示。可以看到操作过程中 AI 正确获取了我们需要的信息,且没有包含无关信息,任务完成的非常成功:

open-interpreter 获取的 excel 表格内容

2 pdf 文件批量转换

数据处理过程中经常会遇到一些以 pdf 格式存储的表格,使用 Python 可以将这些表格储存为 excel 格式。现在文件夹中有四个 pdf 文件,我们向 open-interpreter 发出指令让它把其中的表格提取出来,并以 excel 格式储存。

pdf 批量转换方案

同样地,AI 将给出解决的步骤,我们按照自己的需求不断调整,最终 AI 将完成 pdf 的批量转换,并将转换得到的 excel 文件保存在同一文件夹下:

pdf 转换完成

转换得到的 excel 表格

3 excel 文件合并

处理数据时我们经常会遇到这样的情况:由于数据库导出限制或者其他原因,一个完整的数据集被拆分为多个小的数据集分开存储,而数据分析时我们需要将小的数据集合并。这类任务使用 open-interpreter 也可以轻松完成。

本节示例数据我们使用了企研·社科大数据平台“中国公共政策与绿色发展数据库”中的“21家主要银行绿色信贷情况统计表”(网址:https://r.qiyandata.com/)。文件夹中共有五个 excel 表,其字段全部相同,现在我们向 open-interpreter 发出指令让它把五个表合并成一个大的 excel 表:

“21家主要银行绿色信贷情况统计表”位于CPPGD下的“绿色金融”-“绿色信贷”模块。

中国公共政策与绿色发展数据库(简称 "CPPGD")是由企研数据携手浙江大学中国农村发展研究院和浙江工商大学经济学院联合发起,为助力国家围绕"碳达峰、碳中和"双碳目标做出的一系列重大战略部署,服务中国绿色发展及相关领域学术与政策研究而倾力打造的专题数据库。

更多数据相关资讯请查看原文!

excel 合并方案

最后,open-interpreter 成功的将五个 excel 表合并成了一个名为“merged.xlsx”的总表:

excel 合并结果

最终合并的表格共有 25 行,包含 11 个字段:

合并后的 excel 数据

Part5总结

随着 LLM 大模型的发展,AI 可以使用的范围越发广泛,各种 AI 工具层出不穷。本文介绍的 open-interpreter 在一定程度上解决了 GPT 模型不能联网的问题,本地运行的特点让它可以操作本地文件,代码确认功能则保证了安全性问题,是一个很好的 LLM 拓展应用。当然,介于篇幅问题,本文没有面面俱到地展示 open-interpreter 的所有功能,有兴趣的读者可以参考作者 KillianLucas 贴在 Github 项目页中的 Colab 笔记[2],或者自行安装探索。

参考资料

[1]有限的三方库: https://wfhbrian.com/mastering-chatgpts-code-interpreter-list-of-python-packages/

[2]Colab 笔记: https://qiyandata.feishu.cn/wik

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】之Mybatis=Plus集成及使用(入门级)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringBoot开发之Mybatis-Plus系列》。&#x1…

NAT场景案例分析

目录 问题现象一 NAT Server故障排错思路 问题现象二 NAT Server问题 问题现象三 NAT Server问题 问题现象四 LAN-LAN映射 问题现象一 NAT Server故障排错思路 NAT Server故障排查思路(出现配置端口映射后外网设备无法访问本地内网中的服务器的故障&#xff09…

mysql 数据库 关于库的基本操作

库的操作 如果想到 mysql 客户端当中数据 系统当中的命令的话,直接输入的话,会被认为是 mysql 当中的命令。 所以,在mysql 当中执行系统当中的命令的话,要在系统命令之前带上 ststem ,表示系统命令: 但是…

瞳孔检测眼动追踪python实现(基于dlib)

效果展示: 原图:(图片来自 b站up 借我300去洗牙) dlib实现的特征点检测 瞳孔检测结果 完整代码: # encoding:utf-8import dlib import numpy as np import cv2def rect_to_bb(rect): # 获得人脸矩形的坐标信息x …

IDEA——还在手动new对象set值嘛,GenerateAllSetter插件帮你解决!!!

IDEA插件 一、GenerateAllSetter插件介绍二、如何下载安装三、如何使用 总结 最近项目上有些测试需要有很多属性,而且大部分的属性都是要设置值的,一个一个手动set设值很繁琐,就想着有没有能解决这个问题的办法,就发现了一个非常好…

轻量封装WebGPU渲染系统示例<49>- 多种灯光多材质(源码)

实现方式: 1. 全局的灯光和阴影。 2. 球体和矩形平面使用了相同的材质对象。 3. 通过材质自动关联和组装对应的渲染材质功能节点。 4. 共享uniform或storage的buffer对象。 5. 共享shader module对象。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/b…

牛客后端开发面试题1

滴滴2022 1.redis过期策略 定时删除,定期删除,惰性删除 定时删除:设定一个过期时间,时间到了就把它删掉,对cpu不太友好,但是对内存友好 定期删除:每隔一个周期删除一次,对cpu和内存…

Codeforces Round 914 (Div. 2) A~E

A.Forked!(思维) 题意: 给出骑士的跳跃能力 ( x , y ) (x, y) (x,y) 以及国王和皇后的位置,问有多少个位置可以让骑士可以直接攻击到国王和皇后。 分析: 棋盘非常大 ( 1 0 8 1 0 8 ) (10^{8} \times 10^{8}) (1…

国产Apple Find My「查找」认证芯片-伦茨科技ST17H6x芯片

深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…

Unity 使用AddTorque方法给刚体施加力矩详解

给刚体施加力,除了使用AddForce方法,我们还可以使用AddTorque方法。该方法是通过施加力矩给刚体以力。AddTorque方法从形式上跟AddForce差不多,它也有4个重载方法: 1、AddTorque(Vector3 torque);使用Vector3类型参数…

Python基础学习—Pandas数据分析实战剖析【文末送书-09】

文章目录 一.Pandas数据分析1.1 Pandas的主要应用包括:1.2 Pandas核心数据结构1.3 安装和导入Pandas 二.Pandas数据分析实战:用Python进行数据分析1. 数据集介绍2. 数据加载与初步观察3. 数据清洗4. 数据分析4.1 销售趋势分析4.2 热门商品分析 三.Pandas…

在官网免费创建一个云mongoDB数据库

MongoDB的设计目标是提供高性能、高可用性、可扩展性和易用性。它采用了文档存储模型,将数据以类似JSON的BSON(Binary JSON)格式存储,并且支持动态模式,允许应用程序更灵活地存储和查询数据。MongoDB还支持水平扩展&am…