Open Interpreter:OpenAI Code Interpreter的开源实现|本地化|可联网

news2024/11/23 8:44:34

如果你对这篇文章感兴趣,而且你想要了解更多关于AI领域的实战技巧,可以关注「技术狂潮AI」公众号。在这里,你可以看到最新最热的AIGC领域的干货文章和案例实战教程。

一、前言

今年7月,OpenAI发布了一个强大的插件,名为Code Interpreter(代码解释器),它可以根据用户的自然语言需求生成并执行代码解决方案,帮助完成各种任务,如数据分析、图表创建和文件编辑等。

尽管OpenAI的GPT-4代码解释器改变了游戏规则,但它也有一些特定的限制。OpenAI的解决方案是托管的,它在受控的远程环境中运行,限制了开发人员对本地设置的控制。这导致了一些明显的限制,比如无法访问互联网、有限的预安装软件包、最大上传大小为100MB以及运行时间限制为120秒。而且,当环境终止时,任何生成的文件或链接都会丢失,对于长时间运行的任务可能会带来不便。

然而,现在有一个名为Open Interpreter的开源项目解决了这些问题。Open Interpreter可以在本地环境中运行,可以访问互联网,没有文件大小和运行时间的限制,并且可以利用任何包或库。于2023年9月6日正式发布的Open Interpreter在短短不到一周的时间内就获得了惊人的16.8k stars,可见其受欢迎程度

Open Interpreter为开发人员提供了广泛的功能,包括内容创建。它能够轻松创建和编辑各种格式的内容,如照片、视频和PDF等。开发人员还可以控制Chrome浏览器,从而促进高效的研究和自动化。此外,Open Interpreter还能无缝处理与数据相关的任务,允许用户绘制、清理和分析大型数据集,以做出明智的决策。

二、Open Interpreter 介绍

Open Interpreter是一个开源工具,提供交互式和编程聊天功能,让用户可以通过在终端中运行解释器与其进行对话。开发人员可以编写任务和工作流程脚本,直接传递消息给解释器,以便更精确地控制。用户可以检查和配置系统消息,以满足个人偏好和项目要求的灵活性。

Open Interpreter 不仅仅是另一个编码解释器。它是一个专注于复杂任务的强大工具,允许语言模型在您的计算机上运行代码,以完整地编写应用程序、任务等。它是 OpenAI 代码解释器的实现,可以运行 GPT4 和其他模型,支持 Python、JavaScript、Shell 等语言的代码。

Open Interpreter 的独特功能之一是其终端中类似聊天的界面,允许用户以更直观和用户友好的方式与之交互。该解释器不仅可以编写代码,还可以创建和编辑照片、视频、PDF 和其他文件。它可以控制网络浏览器进行网络搜索,并通过网络上的不同区域进行搜索,以实现并提供必要的链接。

⚠️ 注意:在运行代码之前,系统会要求您批准代码。

2.1、核心特点

Open Interpreter 的核心特点包括:

  1. 互联网访问自由:在本地运行的 Open Interpreter 可以完全访问互联网,允许免费访问外部API和数据库,提高项目的灵活性。

  2. 包和库选择:Open Interpreter允许使用任何包或库,使您能够选择最适合您项目的工具。

  3. 无限的运行时间和文件大小:Open Interpreter没有执行时间或文件大小的限制,可以顺利进行大规模数据分析和计算处理。

  4. 确保安全性:在执行代码之前,Open Interpreter需要用户确认,以防止执行未经授权的代码,提高安全性。

  5. 物有所值:Open Interpreter是一个免费的开源项目,对于初创公司和个人开发人员来说,降低成本是一个重要优势。

  6. 支持多种编程语言:Open Interpreter不仅支持Python,还支持JavaScript、Bash等多种编程语言,适用于更广泛的应用程序。

总之,Open Interpreter是一个多功能且灵活的开源编程工具,具有本地行为、多语言支持、包和库选择、无限运行时间和文件大小、高级安全性以及物有所值等特点。这些特性极大地提高了项目的灵活性和效率,使其成为广泛用户,包括初创公司、大型企业和个人开发人员的有用工具。

2.2、新版发布

今天早上发布的 Open Interpreter v0.1.2 可以通过一个命令设置大多数 HuggingFace 模型以供离线使用。 它是本地的、私人的且免费的。

$ pip install --upgrade open-interpreter
$ interpreter --model tiiuae/falcon-180B

2.3、竞品对比

OpenAI 今年7月份发布了带有 GPT-4 的Code Interpreter ,为使用 ChatGPT 进行实际任务提供了绝佳机会。然而,OpenAI 的服务是托管的、闭源的,并且受到严格限制,包括:

  • 不能访问网络

  • 有限的预安装软件包集

  • 最大上传100MB和运行时间限制为120秒

  • 当环境终止时,状态和任何生成的文件或链接都会被清除

为了克服这些限制,Open Interpreter在本地环境中运行。它具备完全访问互联网的能力,没有时间或文件大小的限制,并且可以利用任何包或库。这将GPT-4代码解释器的强大功能与本地开发环境的灵活性结合在一起。

与 ChatGPT 的编码解释器相比,Open Interpreter 提供了更多可能性,包括互联网访问、预装软件包没有限制、没有最大上传限制。此外,当环境终止时,状态不会被清除,从而允许用户继续使用以前的项目。

Open Interpreter 是一个功能强大、多功能且用户友好的代码解释器,为程序员和开发人员提供了广泛的可能性。它能够在本地安装,这使得它成为那些希望探索著名的 ChatGPT 代码解释器之外的内容的人的一个可用工具。有了 Open Interpreter,人工智能代码解释的未来看起来光明且充满潜力。

三、安装部署

首先,让我们安装 open-interpreter

pip install open-interpreter

3.1、CLI 终端

安装完成后,在 Terminal 输入 interpreter 就可以启动使用 Open Interpreter。默认会提示输出OPENAIAPIKEY,则使用 GPT-4 执行,否则使用本地 Code-LLama 执行。

% interpreter -y                

Welcome to Open Interpreter.                                                           
────────────────────────────────────────────────────
▌ OpenAI API key not found                                                             
To use GPT-4 (recommended) please provide an OpenAI API key.                           
To use Code-Llama (free but less capable) press enter.                                  
────────────────────────────────────────────────────
OpenAI API key: sk-**********************

Tip: To save this key for later, run export OPENAI_API_KEY=your_api_key on Mac/Linux or setx OPENAI_API_KEY your_api_key on Windows.                            
────────────────────────────────────────────────────

3.2、本地运行

Open Interpreter 允许 LLM 在本地运行 Python、Javascript、Shell 等语言的代码。如果没有 GPT-4 API,也可以通过如下命令行使用开源模型 Code Llama

/如果您将其与 openai 型号一起使用,首次安装时较小 (50kb) 。如果您使用 code-llama 在本地运行它(它会为您安装它,让您选择模型大小),则大小从 3GB 到 30GB 不等。

interpreter --local

如果您运行 interpreter --local,它会自动安装并使用 Code Llama。使用每个模型的快速命令如下:

GPT-4 - interpreter
GPT-3.5 - interpreter --fast
Code-Llama - interpreter --local

或者使用其存储库 ID 在本地运行任何 Hugging Face 模型(例如“tiiuae/falcon-180B”):

interpreter --model tiiuae/falcon-180B

3.3、Python 开发

import interpreter
# 执行单个命令
interpreter.chat("求解类似 10x + 14 = 12 的方程") 
# 开始互动聊天
interpreter.chat() 

在 Python 中,您需要手动设置模型:

interpreter.model = "gpt-3.5-turbo"

您需要 OpenAI API 密钥才能使用 Open Interpreter。

import interpreter

# Paste your OpenAI API key below.
interpreter.api_key = "your-openai-api-key"

默认情况下,Open Interpreter 在执行任何代码之前都会要求确认。

由于 Google Colab 是一个安全、隔离的环境,因此我们建议启用 auto_run 。这模仿了 OpenAI 代码解释器的行为。

interpreter.auto_run = True

四、案例实战

4.1、基本示例

按照惯例我们首先要求Open Interpreter打印一个 hello world,从输出结果可以看到默认使用Python进行编码输出。

interpreter.chat("Please print hello world.")

4.2、数学计算

我们在终端中使用 interpreter.chat() 打开交互式聊天。交互式聊天的行为与 ChatGPT 完全相同。

interpreter.chat()

要求 Open Interpreter 求解类似 10x + 14 = 12 的方程

可以看到 Open Interpreter 使用名为 sympy 的 Python 库来解决它,最终成功编写完程序并执行获取到结果。

4.3、联网支持

自从GPT-4关闭联网功能之后,基本上没有几个大模型可以很好的实现联网能力,Open Interpreter 可以完全访问互联网,允许免费访问外部API和数据库,提高项目的灵活性。

首先使用 interpreter.chat() 再次打开交互式聊天。

interpreter.chat()

例如我们输入查询:“获取全球人工智能领域LLM大语言模型相关的10条最新新闻

Open Interpreter 首先会根据输入的问题整理好解决问题的思路,然后按步骤来完成并一步步去实现。

为了获取全球人工智能领域LLM(Large Language Models)相关的最新新闻,我们可以使用Google新闻搜索API。但是,由于Google新闻搜索API是付费的,我们将使用Python的G  
  oogle News库,它是一个免费的工具,可以抓取Google新闻的结果。                                                     
                                                                                                                   
  以下是我们的计划:                                                                                               
                                                                                                                   
   1 安装Google News库。                                                                                           
   2 导入Google News库。                                                                                           
   3 使用Google News库搜索关于LLM的新闻。                                                                          
   4 打印搜索到的前10条新闻的标题和链接。        

在 Open Interpreter 的执行过程中,对于出现的错误也能很好的自我进行修复,最终完成了结果的输出。

4.4、重置聊天

在 Python 中,Open Interpreter实例会记住您的对话历史记录。如果你想让它忘记以前的消息,你可以重置它:

interpreter.reset()

注意:Open Interpreter 的命令行版本会自动重置。

4.5、视频转录

使用Open Interpreter时,您可以下载来自YouTube的视频并剪切所需部分,然后使用该工具进行音频转录。一旦您完成了转录,您可以使用Open Interpreter进行日语翻译,并将字幕格式从SRT转换为ASS。最后,您可以使用该工具将字幕刻录到视频中,以便您可以轻松地在任何时间观看并理解该视频。这种技能在未来的工作中可能会更加重要。

把这个视频中的语音和字幕换翻译成中文 https://www.youtube.com/watch?v=x7X9w_GIm1s 。

4.5、文章总结

我们利用 Open Interpreter 的联网能力,让其总结一遍互联网上的文章,看看它是如何来完成这个事情的。这里我选择了Meta AI 发布Code Llama模型的文章来演示。

请总结一下这篇文章,用中文输出:Introducing Code Llama, an AI Tool for Coding | Meta

首先,我们需要访问这个网页并获取其内容。然后,我们将使用一个自然语言处理库,如Gensim,来总结这个网页的内容。最   
  用一个翻译库,如googletrans,将总结翻译成中文。                                                                  

  计划如下:                                                                                                       

   1 使用requests库访问网页并获取其内容。                                                                          
   2 使用BeautifulSoup库解析网页内容并提取文章的文本。                                                             
   3 使用Gensim库对文章进行总结。                                                                                  
   4 使用googletrans库将总结翻译成中文。                                                                           

  首先,我们需要安装必要的库。我们将安装requests,beautifulsoup4,gensim和googletrans。
pip install requests beautifulsoup4 gensim googletrans==4.0.0-rc1   

我们已经成功安装了所需的库。接下来,我们将使用requests和BeautifulSoup获取和解析网页内容。

我们已经成功安装了所需的库。现在,我们将按照以下步骤执行我们的计划: 1、使用requests库访问网页并获取其内容。 2、使用BeautifulSoup库解析网页内容并提取文章的文本。 首先,我们将访问网页并获取其内容。

经过几轮错误校正之后,Open Interpreter 最终成果按流程完成了总结:

我们已经成功将文章的总结翻译成中文。这是翻译后的总结:                                                           

  "今天,我们正在发布一个大型语言模型(LLM),可以使用文本提示来生成和讨论代码。Code                               
  Llama有可能用作生产力和教育工具,以帮助程序员撰写更强大,有据可查的软件。34B型号返回最佳结果并允许更好的编码帮   
  ,但是较小的7b和13b型号更快,更适合需要低延迟的任务,例如实时代码完成。Code Llama  -                             
  指令是指代码Llama的微调和对齐变化。这使人们可以更好地了解人们从提示中的期望。我们建议使用Code Llama  -           
  指示变体以自代码LLAMA自代码生成时指示变体 -                                                                      
  指令经过微调,以生成自然语言的有益和安全的答案。在我们的AI博客上了解有关Code Llama的更多信息,或下载Code         
  Llama模型。" 

五、总结

Open Interpreter 是一个突破性的开源项目,它不仅解决了OpenAI GPT-4代码解释器在远程环境中运行所带来的诸多限制,还为开发人员提供了更广泛的功能和灵活性。

作为一个可以在本地环境中运行的工具,Open Interpreter可以访问互联网,没有文件大小和运行时间的限制,并且可以利用任何包或库。它的出现,使得开发人员能够更自由地进行内容创建、数据处理以及各种任务的执行。此外,Open Interpreter还提供了交互式和编程聊天功能,使得用户可以通过在终端中运行解释器与其进行对话,更精确地控制任务和工作流程。

Open Interpreter不仅是一个编码解释器,它还是一个强大的工具,专注于处理复杂任务,将GPT-4代码解释器的强大功能与本地开发环境的灵活性完美结合在一起。

六、References

  • Open Interpreter GitHub

  • https://github.com/KillianLucas/open-interpreter

  • Open Interpreter Google Colab

  • https://colab.research.google.com/drive/1WKmRXZgsErej2xUriKzxrEAXdxMSgWbb?usp=sharing

如果你对这篇文章感兴趣,而且你想要了解更多关于AI领域的实战技巧,可以关注「技术狂潮AI」公众号。在这里,你可以看到最新最热的AIGC领域的干货文章和案例实战教程。

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

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

相关文章

什么是第三方软件测试?

测试机构 什么是软件测试? 软件测试是一个验证和验证应用程序功能以确定它是否满足要求的过程。这是在应用程序中发现缺陷并根据*终用户的要求检查应用程序功能的过程。 第三方软件检测机构是专门提供软件测试服务,其出具软件测试报告过程中可能运用到…

Object.keys和Object.values

Object.keys list:[],obj:{数据泄露: 5412, 数据传输: 3921, 数据篡改: 851392, 数据滥用: 59532 },//返回可枚举的属性数组console.log(Object.keys(this.obj)) // [数据泄露, 数据传输, 数据篡改, 数据滥用]Object.keys(this.obj).map(key>{this.list.push({title:key,val…

Java工作流系统,快速实现业务审批(源码)

前言 activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平…

700亿参数Llama 2训练加速195%!数据成为其提升效果的关键要素

Llama 2是Meta AI正式发布的最新一代开源大模型,达到了2万亿的token。精调Chat模型是在100万人类标注数据上训练。Llama 2在包括推理、编码、精通性和知识测试等许多外部基准测试中都优于其他开源语言模型。 Llama 2开启了全球范围内AI大型模型的共享新篇章。它包括…

第5章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id724601559592 配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

进销存仓库管理系统有哪些?哪些适合商户用?

进销存仓库管理系统可以帮助商家实现准确的库存控制、优化采购和销售活动,提升仓库操作效率,并提供数据分析和决策支持,从而解决企业在库存管理和供应链方面的问题,提升整体运营效率和竞争力。 进销存仓库管理系统有哪些&#xf…

SmartSQL 一款开源的数据库文档管理工具

建议直接蓝奏云下载安装 蓝奏云下载:https://wwoc.lanzoum.com/b04dpvcxe 蓝奏云密码:123 项目介绍 SmartSQL 是一款方便、快捷的数据库文档查询、导出工具!从最初仅支持 数据库、CHM文档格式开始,通过不断地探索开发、集思广…

LVGL(72)-v8--滑块slider

一、slider 简介 1.1 概述 Overview Slider对象看起来像一个带有旋钮的工具条。可以拖动该旋钮来设置一个值。滑块也可以是垂直的或水平的。滑动条在前面我们介绍img控件的时候有个历程有使用到,哪里我们讲述设置样式实现对滑动条的一些样式的设置。 1.2 部分和风…

如果是你,会不会修改这段代码?

最近在合流一些功能&#xff0c;然后有一部分功能的代码需要重构。 需要重构的代码如下&#xff0c;没有重构之前是可以正确执行的。 unsigned int Hex2Int (char c) {if (c > 0 && c < 9) {return (unsigned int) (c - 0);} else {return (unsigned int)(c - a1…

excel 单元格内多行文本的行数量统计

excel公式&#xff1a; LEN(H2)-LEN(SUBSTITUTE(H2,CHAR(10),))1

js中如何获取当前页面的URL参数值?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 获取当前页面的URL参数值⭐ 解析查询字符串⭐ 使用正则表达式解析参数值⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&am…

Clion的使用和配置

工欲善其事必先利其器&#xff0c;开发C好用的IDE必须要配置好&#xff0c;下面我们简单介绍一下现代化的编译工具Clion Clion安装 Ubuntu 一般来说在官网下载好后&#xff0c;解压到文件夹会有一个Install-Linux-tar.txt&#xff0c;按照这个教程安装就行 Clion配置 增加…

stable diffused快速入门

一、下载安装 1&#xff0c;网盘n519 2&#xff0c;环境依赖和模型整合包必须下载&#xff0c;各种风格的模型可选 3&#xff0c;解压模型整合包 4&#xff0c;双击启动器运行依赖这个可执行文件&#xff0c;安装一些环境&#xff0c;直接下一步即可 二、启动 1&#xff0…

PMP与ACP的区别是什么?

首先&#xff0c;我们需要了解PMP和ACP的定义。如果你正在犹豫是否应该考取PMP或ACP证书&#xff0c;或者想知道这两种证书的区别和哪一个更有用&#xff0c;那么请继续阅读。 1. PMP是指项目管理专业人士认证&#xff0c;全称为Project Management Professional。在许多企业&a…

【算法与数据结构】701、LeetCode二叉搜索树中的插入操作

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;这道题关键在于分析插入值的位置&#xff0c;不论插入的值是什么&#xff08;插入值和原有树中的键值都…

python实现数据的脱敏

背景 上一篇文章讲到了《一个注解&#xff0c;实现数据脱敏》&#xff0c;其实用起来还是相当的方便。那shigen是一个喜欢倒腾的人&#xff0c;对于python的接口&#xff0c;如何实现数据的脱敏呢&#xff1f;我找了很久的教程&#xff0c;发现关于这部分的资料并不多&#xf…

tomcat部署、tomcat虚拟主机及tomcat多实例、tomcaty优化

目录 一、Tomcat概述 tomcat是什么&#xff1f; 什么是 servlet&#xff1f; 什么是 JSP? Tomcat 功能组件结构 Container 结构分析 Tomcat 请求过程 二、Tomcat部署 1、关闭防火墙和selinux&#xff0c;并将Tomcat所需软件包传到/opt目录下 2、安装JDK 3、设置JDK…

LeetCode 2596. 检查骑士巡视方案【数组,模拟】1448

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

【markdown】How to use markdown

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

flink-1.14.4启动报错setPreferCheckpointForRecovery(Z)v

从flink1.12升级到flink1.14&#xff0c;修改了pom.xml的flink-version&#xff0c;打包的时候发现报错&#xff1a; // 当有较新的 Savepoint 时&#xff0c;作业也会从 Checkpoint 处恢复env.getCheckpointConfig().setPreferCheckpointForRecovery(true); 于是屏蔽了这段配置…