OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  OpenInterpreter — 本地代码执行助手

OpenInterpreter — 本地代码执行助手

 
  factorx ·  2025-12-15 20:26:45 · 10 次点击  · 0 条评论  

● Open Interpreter

Discord JA doc ZH doc ES doc UK doc IN doc License

获取桌面应用早期访问‎ ‎ |‎ ‎ 文档


local_explorer


Open Interpreter 让大语言模型(LLM)能在本地运行代码(Python、Javascript、Shell 等)。安装后,通过在终端中运行 $ interpreter,你可以通过类似 ChatGPT 的界面与 Open Interpreter 聊天。

这为你的计算机提供了一个自然语言界面来使用其通用功能:

  • 创建和编辑照片、视频、PDF 等文件。
  • 控制 Chrome 浏览器进行研究。
  • 绘制图表、清理和分析大型数据集。
  • ...等等。

⚠️ 注意:代码运行前会请求你的确认。


演示

https://github.com/OpenInterpreter/open-interpreter/assets/63927363/37152071-680d-4423-9af3-64836a6f7b60

也可以在 Google Colab 上体验交互式演示:

Open In Colab

以及一个受电影《她》启发的语音界面示例:

Open In Colab

快速开始

安装

pip install git+https://github.com/OpenInterpreter/open-interpreter.git

安装不成功?请阅读我们的设置指南

终端

安装后,直接运行 interpreter

interpreter

Python

from interpreter import interpreter

interpreter.chat("绘制 AAPL 和 META 的归一化股价图") # 执行单条命令
interpreter.chat() # 启动交互式聊天

GitHub Codespaces

在此仓库的 GitHub 页面按下 , 键来创建一个代码空间。稍等片刻,你将获得一个预装了 open-interpreter 的云虚拟机环境。之后你可以直接开始与它交互,并可以放心地确认其系统命令的执行,而不用担心损坏系统。

与 ChatGPT 代码解释器的对比

OpenAI 发布的 GPT-4 代码解释器为使用 ChatGPT 完成现实世界任务提供了绝佳机会。

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

  • 无法访问互联网。
  • 预安装的软件包有限
  • 最大上传 100 MB,运行时间限制 120.0 秒。
  • 环境终止时状态会被清除(连同任何生成的文件或链接)。

Open Interpreter 通过在你的本地环境中运行来克服这些限制。它拥有完整的互联网访问权限,不受时间或文件大小的限制,并且可以使用任何包或库。

这结合了 GPT-4 代码解释器的强大功能和本地开发环境的灵活性。

命令

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

message = "What operating system are we on?"

for chunk in interpreter.chat(message, display=False, stream=True):
  print(chunk)

交互式聊天

要在终端中启动交互式聊天,可以通过命令行运行 interpreter

interpreter

或者在 .py 文件中运行 interpreter.chat()

interpreter.chat()

你也可以流式传输每个数据块:

message = "What operating system are we on?"

for chunk in interpreter.chat(message, display=False, stream=True):
  print(chunk)

程序化聊天

为了更精确的控制,你可以直接将消息传递给 .chat(message)

interpreter.chat("为 /videos 目录下的所有视频添加字幕。")

# ... 将输出流式传输到你的终端,完成任务 ...

interpreter.chat("这些看起来不错,但你能把字幕弄大点吗?")

# ...

开始新对话

在 Python 中,Open Interpreter 会记住对话历史。如果你想重新开始,可以重置它:

interpreter.messages = []

保存和恢复对话

interpreter.chat() 返回一个消息列表,可用于通过 interpreter.messages = messages 恢复对话:

messages = interpreter.chat("我叫 Killian。") # 将消息保存到 'messages'
interpreter.messages = [] # 重置解释器("Killian" 将被遗忘)

interpreter.messages = messages # 从 'messages' 恢复对话("Killian" 将被记住)

自定义系统消息

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

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

更改你的语言模型

Open Interpreter 使用 LiteLLM 来连接托管的语言模型。

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

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

在 Python 中,在对象上设置模型:

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

在此处为你的语言模型找到合适的 "model" 字符串。

本地运行 Open Interpreter

终端

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

只需使用你的推理服务器的 api_base URL 运行 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 Interpreter 对话了。

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

Python

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

from interpreter import interpreter

interpreter.offline = True # 禁用在线功能,如 Open Procedures
interpreter.llm.model = "openai/x" # 告诉 OI 以 OpenAI 的格式发送消息
interpreter.llm.api_key = "fake_key" # LiteLLM(我们用来与 LM Studio 通信的库)需要这个
interpreter.llm.api_base = "http://localhost:1234/v1" # 指向任何 OpenAI 兼容的服务器

interpreter.chat()

上下文窗口长度,最大令牌数

你可以修改本地运行模型的 max_tokenscontext_window(以令牌为单位)。

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

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

详细模式

为了帮助你检查 Open Interpreter,我们提供了一个用于调试的 --verbose 模式。

你可以通过使用其标志(interpreter --verbose)或在聊天过程中激活详细模式:

$ interpreter
...
> %verbose true <- 开启详细模式

> %verbose false <- 关闭详细模式

交互模式命令

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

可用命令:

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

配置 / 配置文件

Open Interpreter 允许你使用 yaml 文件设置默认行为。

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

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

interpreter --profiles

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

多配置文件

Open Interpreter 支持多个 yaml 文件,允许你轻松在不同配置之间切换:

interpreter --profile my_profile.yaml

示例 FastAPI 服务器

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

# server.py

from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from interpreter import interpreter

app = 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() 来启动一个与上面完全相同的服务器。

Android

在 Android 设备上安装 Open Interpreter 的逐步指南可以在 open-interpreter-termux 仓库 中找到。

安全须知

由于生成的代码在你的本地环境中执行,它可以与你的文件和系统设置交互,可能导致数据丢失或安全风险等意外结果。

⚠️ Open Interpreter 在执行代码前会请求用户确认。

你可以运行 interpreter -y 或设置 interpreter.auto_run = True 来绕过此确认,在这种情况下:

  • 请求修改文件或系统设置的命令时要格外小心。
  • 像监督自动驾驶汽车一样关注 Open Interpreter,并准备通过关闭终端来结束进程。
  • 考虑在 Google Colab 或 Replit 等受限环境中运行 Open Interpreter。这些环境更加隔离,降低了执行任意代码的风险。

目前有实验性安全模式 支持,以帮助减轻部分风险。

工作原理

Open Interpreter 为 具备函数调用能力的语言模型 配备了一个 exec() 函数,该函数接受 language(如 "Python" 或 "JavaScript")和要运行的 code

然后,我们将模型的消息、代码以及你系统的输出以 Markdown 格式流式传输到终端。

离线访问文档

完整的文档可以在没有互联网连接的情况下离线访问。

Node 是前提条件:

  • 版本 18.17.0 或任何后续的 18.x.x 版本。
  • 版本 20.3.0 或任何后续的 20.x.x 版本。
  • 任何从 21.0.0 开始的版本,未指定上限。

安装 Mintlify

npm i -g mintlify@latest

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

# 假设你在项目根目录
cd ./docs

# 运行文档服务器
mintlify dev

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

贡献

感谢你对贡献感兴趣!我们欢迎社区的参与。

关于如何参与的更多详情,请参阅我们的贡献指南

路线图

访问我们的路线图预览 Open Interpreter 的未来。

注意:本软件与 OpenAI 无关联。

thumbnail-ncu

拥有一个能以你指尖速度工作的初级程序员……可以使新的工作流程变得轻松高效,同时也能将编程的好处带给新的受众。

OpenAI 代码解释器发布说明


10 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 22 ms
Developed with Cursor