Open Interpreter - 开放解释器

在这里插入图片描述


文章目录

    • 一、关于
      • 演示
      • 它是如何工作的?
      • 与 ChatGPT 的代码解释器比较
    • 二、快速开始
    • 三、更多操作
      • 1、互动聊天
      • 2、程序化聊天
      • 3、开始新的聊天
      • 4、保存和恢复聊天
      • 5、自定义系统消息
      • 6、更改模型
      • 7、在本地运行 Open Interpreter
        • 终端
        • Python
        • 上下文窗口,最大令牌
      • 8、Verbose 模式
      • 9、交互模式命令
      • 10、Configuration / Profiles
        • 多个配置文件
    • 四、示例FastAPI服务器
      • 调试模式
    • 五、其他
      • 1、安卓系统
      • 2、离线访问文档
      • 3、安全提示
      • 4、Roadmap


一、关于

Open Interpreter(开放解释器) 可以让大语言模型(LLMs)在本地运行代码(比如 Python、JavaScript、Shell 等)。安装后,在终端上运行 $ interpreter 即可通过类似 ChatGPT 的界面与 Open Interpreter 聊天。

  • github:https://github.com/OpenInterpreter/open-interpreter
  • 官网:https://www.openinterpreter.com/
  • 文档:https://docs.openinterpreter.com/
  • discord : https://discord.gg/Hvz9Axh84z
  • interactive demo : https://colab.research.google.com/drive/1WKmRXZgsErej2xUriKzxrEAXdxMSgWbb?usp=sharing
  • voice interface, inspired by Her: https://colab.research.google.com/drive/1NojYGHDgxH6Y1G1oxThEBBb2AtyODBIK

本软件为计算机的通用功能提供了一个自然语言界面,比如:

  • 创建和编辑照片、视频、PDF 等
  • 控制 Chrome 浏览器进行搜索
  • 绘制、清理和分析大型数据集

⚠️ 注意:在代码运行前都会要求您批准执行代码。


演示

Open.Interpreter.Demo.mp4


它是如何工作的?

Open Interpreter 为函数调用语言模型配备了 exec() 函数,该函数接受 编程语言(如 "Python "或 “JavaScript”)和要运行的 代码

然后,它会将模型的信息、代码和系统的输出以 Markdown 的形式流式传输到终端。


与 ChatGPT 的代码解释器比较

OpenAI 发布的 Code Interpreter 和 GPT-4 提供了一个与 ChatGPT 完成实际任务的绝佳机会。

但是,OpenAI 的服务是托管的,闭源的,并且受到严格限制:

  • 无法访问互联网。
  • 预装软件包数量有限。
  • 允许的最大上传为 100 MB,且最大运行时间限制为 120.0 秒
  • 当运行环境中途结束时,之前的状态会被清除(包括任何生成的文件或链接)。

Open Interpreter(开放解释器)通过在本地环境中运行克服了这些限制。它可以完全访问互联网,不受运行时间或是文件大小的限制,也可以使用任何软件包或库。

它将 GPT-4 代码解释器的强大功能与本地开发环境的灵活性相结合。


二、快速开始

安装

pip install open-interpreter

安装后,要在终端中开始交互式聊天,运行:

interpreter

Python 调用

from interpreter import interpreterinterpreter.chat("Plot AAPL and META's normalized stock prices") # 执行单一命令
interpreter.chat() # 开始交互式聊天

三、更多操作

更新:生成器更新(0.1.5)引入了流:

message = "What operating system are we on?"for chunk in interpreter.chat(message, display=False, stream=True):print(chunk)

1、互动聊天

要在终端中开始交互式聊天,请从命令行运行interpreter

interpreter

interpreter.chat()从. py文件:

interpreter.chat()

您还可以流式传输每个块:

message = "What operating system are we on?"for chunk in interpreter.chat(message, display=False, stream=True):print(chunk)

2、程序化聊天

为了更精确的控制,您可以通过 .chat(message) 直接传递消息 :

interpreter.chat("Add subtitles to all videos in /videos.")# ... Streams output to your terminal, completes task ...interpreter.chat("These look great but can you make the subtitles bigger?")# ...

3、开始新的聊天

在 Python 中,Open Interpreter 会记录历史对话。如果你想从头开始,可以进行重置:

interpreter.messages = []

4、保存和恢复聊天

interpreter.chat()()返回一个消息列表,可用于恢复与interpreter.messages = messages

messages = interpreter.chat("My name is Killian.") # 保存消息到 'messages'
interpreter.messages = [] # 重置解释器 ("Killian" 将被遗忘)interpreter.messages = messages # 从 'messages' 恢复聊天 ("Killian" 将被记住)

5、自定义系统消息

你可以检查和配置 Open Interpreter 的系统信息,以扩展其功能、修改权限或赋予其更多上下文。

interpreter.system_message += """
使用 -y 运行 shell 命令,这样用户就不必确认它们。
"""
print(interpreter.system_message)

6、更改模型

Open Interpreter 使用LiteLLM连接到语言模型。

您可以通过设置模型参数来更改模型:

interpreter --model gpt-3.5-turbo
interpreter --model claude-2
interpreter --model command-nightly

在 Python 环境下,您需要手动设置模型:

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

在此处为您的语言模型找到适当的“模型”字符串。


7、在本地运行 Open Interpreter


终端

Open解释器可以使用与OpenAI兼容的服务器在本地运行模型。(LM Studio、jan.ai、ollama等)

只需使用推理服务器的api_baseURL运行interpreter(对于LM Studio,默认http://localhost:1234/v1):

interpreter --api_base "http://localhost:1234/v1" --api_key "fake_key"

或者,您可以使用Llamafile而无需安装任何第三方软件,只需运行

interpreter --local

有关更详细的指南,请查看Mike Bird的此视频

如何在后台运行LM Studio。

  1. 下载https://lmstudio.ai/然后启动它。
  2. 选择型号,然后单击↓下载。
  3. 单击左侧(💬下方)的↔️按钮。
  4. 在顶部选择您的模型,然后单击启动服务器。

服务器运行后,您可以使用Open解释器开始对话。

**注意:**本地模式将您的context_window设置为3000,max_tokens为1000。如果您的型号有不同的要求,请手动设置这些参数(见下文)。


Python

我们的Python包让您可以更好地控制每个设置。要复制并连接到LM Studio,请使用以下设置:

from interpreter import interpreterinterpreter.offline = True # Disables online features like Open Procedures
interpreter.llm.model = "openai/x" # Tells OI to send messages in OpenAI's format
interpreter.llm.api_key = "fake_key" # LiteLLM, which we use to talk to LM Studio, requires this
interpreter.llm.api_base = "http://localhost:1234/v1" # Point this at any OpenAI compatible serverinterpreter.chat()

上下文窗口,最大令牌

您可以修改本地运行模型的max_tokenscontext_window(以令牌形式)。

对于本地模式,较小的上下文窗口将使用较少的RAM,因此如果失败/速度较慢,我们建议尝试更短的窗口(约1000)。确保max_tokens小于context_window

interpreter --local --max_tokens 1000 --context_window 3000

8、Verbose 模式

为了帮助您检查开放解释器,我们有一个用于调试的--verbose模式。

您可以使用它的标志(interpreter --verbose)或聊天中激活详细模式:

$ interpreter
...
> %verbose true <- Turns on verbose mode> %verbose false <- Turns off verbose mode

9、交互模式命令

在交互模式下,您可以使用以下命令来增强您的体验。以下是可用命令列表:

可用命令:

  • %verbose [true/false]:切换详细模式。不带参数或带true参数 进入详细模式。使用false则退出详细模式。
  • %reset:重置当前会话的对话。
  • %undo:从消息历史记录中删除上一条用户消息和AI的响应。
  • %tokens [prompt]:(实验)计算将与下一个提示作为上下文一起发送的令牌,并估计它们的成本。如果提供了prompt,可以选择计算令牌和估计成本。依赖于LiteLLM的cost_per_token()方法来估计成本。
  • %help:显示帮助消息。

10、Configuration / Profiles

打开解释器允许您使用yaml文件设置默认行为。

这提供了一种灵活的方式来配置解释器,而无需每次都更改命令行参数。

运行以下命令打开配置文件目录:

interpreter --profiles

您可以在那里添加yaml文件。默认配置文件名为default.yaml

多个配置文件

Open解释器支持多个yaml文件,允许您在配置之间轻松切换:

interpreter --profile my_profile.yaml

四、示例FastAPI服务器

生成器更新使Open解释器能够通过HTTP REST端点进行控制:

# server.pyfrom fastapi import FastAPI
from fastapi.responses import StreamingResponse
from interpreter import interpreterapp = FastAPI()@app.get("/chat")
def chat_endpoint(message: str):def event_stream():for result in interpreter.chat(message, stream=True):yield f"data: {result}\n\n"return StreamingResponse(event_stream(), media_type="text/event-stream")@app.get("/history")
def history_endpoint():return interpreter.messages

pip install fastapi uvicorn
uvicorn server:app --reload

您也可以通过简单地运行 interpreter.server() 来启动与上述服务器相同的服务器。


调试模式

为了帮助贡献者检查和调试 Open Interpreter,--verbose 模式提供了详细的日志。

您可以使用 interpreter --verbose 来激活调试模式,或者直接在终端输入:

$ interpreter
...
> %verbose true <- 开启调试模式> %verbose false <- 关闭调试模式

五、其他

1、安卓系统

在Android设备上安装Open解释器的分步指南可在open-interpreter-termux 存储库中找到。


2、离线访问文档

完整的留档可随时随地访问,无需互联网连接。

节点是一个先决条件:

  • 版本 18.17.0 或任何更高版本 18.x.x 版本。
  • 版本 20.3.0 或任何更高版本 20.x.x 。
  • 从 21.0.0 开始的任何版本,没有指定上限。

安装Mintlify:

npm i -g mintlify@latest

切换到docs目录并运行相应的命令:

# Assuming you're at the project's root directory
cd ./docs# Run the documentation server
mintlify dev

应该会打开一个新的浏览器窗口。只要留档服务器在运行,留档就http://localhost:3000可用。


3、安全提示

由于生成的代码是在本地环境中运行的,因此会与文件和系统设置发生交互,从而可能导致本地数据丢失或安全风险等意想不到的结果。

⚠️ 所以在执行任何代码之前,Open Interpreter 都会询问用户是否运行。

您可以运行 interpreter -y 或设置 interpreter.auto_run = True 来绕过此确认,此时:

  • 在运行请求修改本地文件或系统设置的命令时要谨慎。
  • 请像驾驶自动驾驶汽车一直握着方向盘一样留意 Open Interpreter,并随时做好通过关闭终端来结束进程的准备。
  • 考虑在 Google Colab 或 Replit 等受限环境中运行 Open Interpreter 的主要原因是这些环境更加独立,从而降低执行任意代码导致出现问题的风险。

实验性支持的安全模式,以帮助减轻一些风险。


4、Roadmap

若要预览 Open Interpreter 的未来,请查看我们的路线图 。

请注意:此软件与 OpenAI 无关。

在这里插入图片描述


2024-08-03(六)

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

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

相关文章

【Golang 面试 - 进阶题】每日 3 题(十四)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

python pip怎么安装包

按WinR键打开运行窗口&#xff0c;输入“cmd”&#xff0c;再按回车键&#xff0c;打开命令行窗口。 找到pip安装路径。 Python2/Python3安装路径是相同的&#xff0c;都在x:\Python xx\Scripts路径下。 拖动pip主应用程序到命令行窗口。 输入“install 模块/包名”&#xff…

【Golang 面试 - 进阶题】每日 3 题(十)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

PCIe总线-RK3588 PCIe RC初始化流程分析(十二)

1.简介 RK3588 PCIe RC的初始化涉及PCIe设备枚举、中断&#xff08;INTx、MSI、MSI-X&#xff09;配置、BAR配置、ATU配置、链路训练等&#xff0c;下面一一介绍。 2.初始化 当RC的模式为RK_PCIE_EP_TYPE时&#xff0c;平台驱动调用rk_add_pcie_port函数初始化RC&#xff0c…

【论文笔记】4D Millimeter-Wave Radar in Autonomous Driving: A Survey

原文链接&#xff1a;https://arxiv.org/abs/2306.04242 I. 引言 传统毫米波雷达&#xff08;3D毫米波雷达&#xff09;测量俯仰角的能力有限&#xff0c;数据通常仅包括距离、水平角和多普勒速度信息。此外&#xff0c;3D雷达数据存在噪声且分辨率低&#xff08;尤其是水平角…

python学习之路 - python的函数

目录 一、python函数1、函数介绍2、函数的定义3、函数的参数4、函数的返回值5、函数说明文档6、函数的嵌套调用7、变量的作用域8、综合案例9、函数与方法的区别 二、python函数进阶1、函数多返回值2、函数多种传参方式a、位置参数b、关键字参数c、缺省参数d、不定长参数 3、匿名…

【2024年华数杯C题老外游中国】(完整题解+代码+完整参考论文)

请问 352 个城市中所有 35200 个景点评分的最高分&#xff08;Best Score&#xff0c;简称 BS&#xff09;是多少&#xff1f;全国有多少个景点获评了这个最高评分&#xff08;BS&#xff09;&#xff1f;获评了这个最高评分&#xff08;BS&#xff09;景点最多的城市有哪些&am…

代码坏味道有24种?我看未必

微信公众号&#xff1a;牛奶 Yoka 的小屋 有任何问题。欢迎来撩~ 最近更新&#xff1a;2024/08/03 [大家好&#xff0c;我是牛奶。] 我在上一篇文章打开IDEA&#xff0c;程序员思考的永远只有两件事&#xff01;中&#xff0c;通过代码命名、重复代码、合格方法三个章节&#…

请你学习:前端布局3 - 浮动 float

1 标准流&#xff08;也称为普通流、文档流&#xff09; 标准流&#xff08;也称为普通流、文档流&#xff09;是CSS中元素布局的基础方式&#xff0c;它决定了元素在页面上的默认排列方式。这种布局方式遵循HTML文档的结构&#xff0c;不需要额外的CSS样式来指定元素的位置。…

MongoDB未授权访问漏洞

MongoDB未授权访问漏洞 mongodb数据库是由C编写&#xff0c;主要是为了提供web应可用扩展的一种高性能数据库。开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。…

MySQL数据库学习笔记

1、数据库的相关概念 数据库是存储数据的仓库,数据是有组织的进行存储 (DataBase)DB. 数据库管理系统:操作和管理数据库的大型软件 DataBase Mangement System(DBMS) SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。 1、Oracle 2、MySQL 3…

Face2V人脸向量开发包

Face2V SDK适用于需要人脸检测、人脸特征点和特征向量提取的应用&#xff0c;提供Web API和原生API。官方下载地址&#xff1a;Face2V SDK 。 1、目录组织 Face2V SDK开发包的目录组织说明如下&#xff1a; face2v_sdk | - core # 核心代码目录| -…

docker compose 安装 kafka

一 前置准备 创建 /data/kafkadata /data/zookeeper-1用于保存kafka和zookeeper的配置文件 kafkadata中创建三个文件夹 /kafka1 /kafka2 /kafka3&#xff0c;用于存放三个kafka节点的配置文件 zookeeper-1文件夹中创建 /conf /data /logs /datalog四个文件夹&#xff0c;用于…

【Nuxt】约定式路由和内置组件

约定式路由 手动创建&#xff1a; 或者还可以使用终端创建页面&#xff1a;nuxi-add-page npx nuxi add page about — about.vue npx nuxi add page about/index — about/index.vue <NuxtLink to"/"><button>Home</button></NuxtLink><…

对象存储及其相关概念介绍

对象存储是一种用来描述解决和处理离散单元&#xff08;这些离散单元被称作为对象&#xff09;的方法的通用术语。以下是关于对象存储的详细解析&#xff1a; 一、基本概念 定义&#xff1a;对象存储&#xff0c;也叫做基于对象的存储&#xff0c;是一种将数据以对象的形式进…

JavaScript基础——数据类型转换

显示数据类型转换 String()函数进行显示转换 Number()函数进行显示转换 Boolean()函数进行显示转换 隐式数据类型转换 算术运算隐式转化 比较操作隐式转化 赋值操作 在JavaScript中&#xff0c;数据类型转换是常见的操作&#xff0c;它允许将一种类型的数据转换为另一种…

立项技术路线选择

本章主要是简单聊聊技术路线&#xff0c;额涉及unity和虚幻&#xff0c;目的主要是给自己看的&#xff0c;记录下日期&#xff1a;2024.8.4 在今天&#xff0c;除游戏以外的厂商基本上采用c#的混合技术方案 如果需要的设备对象多。效果不需要极为精细&#xff0c;至少unity是绝…

(自用)MyLog 简单日志 .net6.0 等

appsettings.json {"LogOnOff": true //true 开启日志&#xff1b;false 关闭日志 } MyLog.cs using System.ComponentModel;namespace Namespace {/// <summary>/// 日志类型 枚举/// </summary>public enum LogType{[Description("调试日志&q…

【2024年华数杯全国大学生数学建模竞赛】C题:老外游中国 问题思路分析及Python代码实现

【2024 年华数杯全国大学生数学建模竞赛】C题&#xff1a;老外游中国 问题思路分析及Python代码实现 1 题目 最近&#xff0c;“city 不 city”这一网络流行语在外国网红的推动下备受关注。随着我国过境免签政策的落实&#xff0c;越来越多外国游客来到中国&#xff0c;通过网…

MS1112驱动开发(iio框架)

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…