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

news2025/1/4 6:30:04

原文: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.coloradmin.cn/o/1316656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs+vue+微信小程序+python+PHP校园二手交易系统的设计与实现-计算机毕业设计推荐

(2)管理员 进行维护,以及平台的后台管理工作都依靠管理员,其可以对信息进行管理。需具备功能有;首页、个人中心、学生管理、物品分类管理、物品信息管理、心愿贴、系统管理、订单管理等功能。系统分成管理员控制模块和学生模块。 本系统有良好…

极坐标下的牛拉法潮流计算39节点MATLAB程序

微❤关注“电气仔推送”获得资料(专享优惠) 潮流计算: 潮流计算是根据给定的电网结构、参数和发电机、负荷等元件的运行条件,确定电力系统各部分稳态运行状态参数的计算。通常给定的运行条件有系统中各电源和负荷点的功率、枢纽…

飞翔的鸟。

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片素材导入到包内。 二.代码呈现 pa…

Flask学习三:模型操作

ORM flask 通过Model操作数据库,不管你的数据库是MySQL还是Sqlite,flask自动帮你生成相应数据库类型的sql语句,所以不需要关注sql语句和类型,对数据的操作flask帮我们自动完成,只需要会写Model就可以了 flask使用对象关…

105基于matlab的阶次分析算法

基于matlab的阶次分析算法,用于变转速机械故障特征提取,可运行,包含寻找脉冲时刻,等角度时刻。数据可更换自己的,程序已调通,可直接运行。 105阶次分析变转速信号处理 (xiaohongshu.com)

Java 基础学习(十一)File类与I/O操作

1 File类 1.1 File类概述 1.1.1 什么是File类 File是java.io包下作为文件和目录的类。File类定义了一些与平台无关的方法来操作文件,通过调用File类中的方法可以得到文件和目录的描述信息,包括名称、所在路径、读写性和长度等,还可以对文件…

『K8S 入门』二:深入 Pod

『K8S 入门』二:深入 Pod 一、基础命令 获取所有 Pod kubectl get pods2. 获取 deploy kubectl get deploy3. 删除 deploy,这时候相应的 pod 就没了 kubectl delete deploy nginx4. 虽然删掉了 Pod,但是这是时候还有 service&#xff0c…

时序预测 | Python实现CNN-LSTM电力需求预测

时序预测 | Python实现CNN-LSTM电力需求预测 目录 时序预测 | Python实现CNN-LSTM电力需求预测预测效果基本描述程序设计参考资料预测效果 基本描述 该数据集因其每小时的用电量数据以及 TSO 对消耗和定价的相应预测而值得注意,从而可以将预期预测与当前最先进的行业预测进行比…

C语言:猜数字游戏

#include<stdio.h> #include<time.h> #include<stdlib.h> void menu() {printf("********************************\n");printf("****** 1.开始 2.退出 ******\n");printf("********************************\n"); } voi…

【Linux】驱动

驱动 驱动程序过程 系统调用 用户空间 内核空间 添加驱动和调用驱动 驱动程序是如何调用设备硬件 驱动 在计算机领域&#xff0c;驱动&#xff08;Driver&#xff09;是一种软件&#xff0c;它充当硬件设备与操作系统之间的桥梁&#xff0c;允许它们进行通信和协同工作。驱动程…

基于linux系统的Tomcat+Mysql+Jdk环境搭建(三)centos7 安装Tomcat

Tomcat下载官网&#xff1a; Apache Tomcat - Which Version Do I Want? JDK下载官网&#xff1a; Java Downloads | Oracle 中国 如果不知道Tomcat的哪个版本应该对应哪个版本的JDK可以打开官网&#xff0c;点击Whitch Version 下滑&#xff0c;有低版本的&#xff0c;如…

Android studio中文汉化教程

相比于jetbrains的软件直接在软件内搜索chinese 就可以找到中文包相比&#xff0c;Android studio需要手动安装&#xff0c;接下来就给大家介绍下如何汉化 一、确认版本号 根据版本下载对应的中文汉化包&#xff0c;如果安装的汉化包版本不对应&#xff0c;可能会导致安装失败。…

前端视角看 Docker :在国内的基础配置教程(含国内镜像源)

引言 在国内使用Docker时&#xff0c;直接从Docker Hub拉取镜像可能会遇到网络速度慢的问题。配置国内的镜像加速器可以显著提升拉取速度。本教程将指导您完成安装Docker后的基础配置&#xff0c;特别是设置国内镜像加速器。 1. 安装Docker 确保您已在系统上安装Docker。根…

LCR 180. 文件组合

解题思路&#xff1a; 利用滑动窗口 class Solution {public int[][] fileCombination(int target) {int i 1; // 滑动窗口的左边界int j 1; // 滑动窗口的右边界int sum 0; // 滑动窗口中数字的和List<int[]> res new ArrayList<>();while (i < target / …

Kafka-Kafka核心参数详解

Kafka的HighLevel API使用是非常简单的&#xff0c;所以梳理模型时也要尽量简单化&#xff0c;主线清晰&#xff0c;细节慢慢扩展。 Kafka提供了两套客户端API&#xff0c;HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细节&#xff0c;使用起来比较简单&…

基于JavaEE智能实时疫情监管服务平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

ES6 面试题 | 02.精选 ES6 面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

springMVC-Restful风格

基本介绍 REST&#xff1a;即Representational State Transfer。&#xff08;资源&#xff09;表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便&#xff0c;所以正得到越来越多网站的采用. 1.HTTP协议里面&#xff0c;四个表示操…

网络入门---守护进程

目录标题 什么是守护进程会话的理解setsid函数daemonSelf函数模拟实现测试 什么是守护进程 在前面的学习过程中我们知道了如何使用TCP协议和UDP协议来实现通信&#xff0c;比如说登录xshell运行了服务端&#xff1a; 然后再登录一个xshell运行客户端并向服务端发送信息&#…

C#基础知识 - 基本语法篇

C#基础知识-基本语法篇 第2节 C#基本语法2.1 C#程序结构2.2 C# 结构解析2.3 命名空间及标识符、关键字2.3.1 别名的使用2.3.2 标识符2.3.3 C#关键字 更多C#基础知识详解请查看&#xff1a;C#基础知识 - 从入门到放弃 第2节 C#基本语法 2.1 C#程序结构 “Hello, World”程序历…