open-interpreter

GitHub
63k 5.4k 简单 34 次阅读 今天AGPL-3.0语言模型
AI 解读 由 AI 自动生成,仅供参考

Open Interpreter 是一款让大型语言模型(LLM)直接在您的本地计算机上运行代码的开源工具。它通过终端提供一个类似 ChatGPT 的对话界面,让您能用自然语言指挥电脑完成复杂任务,例如处理图片和视频、控制浏览器进行调研、或分析大规模数据集。

这款工具主要解决了云端代码解释器的诸多限制。相比于受限于网络隔离、预装包较少且有时长约束的云端服务,Open Interpreter 在本地运行,拥有完整的互联网访问权限,不受运行时间和文件大小限制,并能调用您系统中已安装的任何软件库。此外,它在执行任何代码前都会请求用户确认,确保了操作的安全性与可控性。

Open Interpreter 特别适合开发者、数据分析师及研究人员使用,能极大提升自动化脚本编写和数据处理的效率;同时,对于希望用自然语言直接操控电脑功能的进阶普通用户,它也是一个强大的助手。其核心技术亮点在于将大模型的推理能力与本地环境的无限扩展性完美结合,既保留了 AI 的智能,又突破了沙箱环境的束缚,让 AI 真正成为您电脑的全能助手。

使用场景

数据分析师小林需要处理散落在本地文件夹中的上百个销售 CSV 文件,并立即生成可视化的季度趋势报告。

没有 open-interpreter 时

  • 必须手动编写完整的 Python 脚本,反复调试 pandas 读取路径和 matplotlib 绘图参数,耗时且易错。
  • 遇到缺失值或格式不统一时,需中断流程去搜索清洗代码片段,再复制粘贴回编辑器修改。
  • 无法直接操作浏览器获取最新汇率或竞品数据,只能手动切换窗口查询后人工录入表格。
  • 每次调整图表样式(如颜色、标签)都需要重新运行整个脚本,迭代反馈周期长达数分钟。

使用 open-interpreter 后

  • 只需在终端输入“合并当前目录下所有 CSV 并绘制季度销售趋势图”,open-interpreter 自动编写并执行代码完成全流程。
  • 遇到数据异常时,直接对话要求“自动填充缺失值并剔除异常点”,open-interpreter 即时修正逻辑并重新运行。
  • 指令“打开 Chrome 搜索今日美元汇率并更新到数据集”,open-interpreter 直接控制浏览器抓取数据并完成清洗。
  • 提出“把线条改成红色并添加数据标签”,open-interpreter 毫秒级修改代码并重绘图表,实现所见即所得的分析体验。

open-interpreter 将繁琐的编码与操作流程转化为自然语言对话,让技术人员能专注于业务逻辑而非实现细节。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非必需
  • 本地运行模式可配合 LM Studio、Ollama 或 Llamafile 使用,具体显卡需求取决于用户选择的本地大语言模型
  • 若使用云端模型则无需本地 GPU
内存

未说明(本地运行模式建议根据所选模型调整上下文窗口大小以节省内存,如设置为~1000 tokens)

依赖
notes该工具主要通过调用外部 API(如 OpenAI、Claude 或本地兼容服务器)运行,自身不捆绑大型模型。若在本地运行模型,需自行部署兼容 OpenAI 接口的推理服务(如 LM Studio、Ollama)。执行代码前默认会请求用户确认,可通过参数跳过确认但存在安全风险,建议在受限环境(如 Docker 或虚拟机)中运行。Android 用户可通过 Termux 安装。
python未明确说明(通常需 Python 3.8+ 以支持 pip 安装及现代 AI 库)
litellm
fastapi
uvicorn
open-interpreter hero image

快速开始

● 开放解释器

Discord 日文文档 中文文档 西班牙文文档 乌克兰文文档 印地语文档 许可证

抢先体验桌面应用‎ ‎ |‎ ‎ 文档


local_explorer


Open Interpreter 允许大型语言模型在本地运行代码(Python、Javascript、Shell 等)。安装后,您只需在终端中运行 $ interpreter,即可通过类似 ChatGPT 的界面与 Open Interpreter 交流。

这为您的计算机的通用功能提供了一个自然语言接口:

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

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


演示

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

Google Colab 上也有一个交互式演示:

在 Colab 中打开

还有一个受电影《她》启发的语音交互示例:

在 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 页面上按下 , 键即可创建一个 codespace。片刻之后,您将获得一个预装了 open-interpreter 的云端虚拟机环境。您可以直接与其互动,并自由确认其执行系统命令的过程,而无需担心对系统造成损害。

与 ChatGPT 的 Code Interpreter 对比

OpenAI 随 GPT-4 推出的 Code Interpreter 为使用 ChatGPT 完成实际任务提供了绝佳机会。

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

  • 无互联网访问权限。
  • 预装软件包有限
  • 最大上传文件大小为 100 MB,运行时长上限为 120 秒。
  • 当环境关闭时,状态(包括生成的文件和链接)会被清除。

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

这将 GPT-4 的 Code Interpreter 的强大功能与您本地开发环境的灵活性相结合。

命令

更新: Generator Update (0.1.5) 引入了流式传输:

message = "我们当前使用的操作系统是什么?"

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

交互式对话

要在终端中启动交互式对话,您可以从命令行运行 interpreter

interpreter

或者从 .py 文件中调用 interpreter.chat()

interpreter.chat()

您也可以逐块流式输出:

message = "我们当前使用的操作系统是什么?"

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("我叫基利安。") # 将消息保存到 'messages'
interpreter.messages = [] # 重置解释器 ("基利安" 将被遗忘)

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

自定义系统消息

您可以查看并配置 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" # 我们用来与 LM Studio 通信的 LiteLLM 需要此密钥
interpreter.llm.api_base = "http://localhost:1234/v1" # 将其指向任何兼容 OpenAI 的服务器

interpreter.chat()

上下文窗口和最大标记数

您可以修改本地运行模型的 max_tokenscontext_window(以标记数为单位)。

对于本地模式,较小的上下文窗口会占用更少的内存,因此我们建议在出现故障或运行缓慢时尝试使用更短的窗口(约 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() 来启动与上述相同的服务器。

安卓

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

安全提示

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

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

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

  • 请求修改文件或系统设置的命令时务必小心。
  • 请像对待自动驾驶汽车一样密切关注 Open Interpreter,并准备好通过关闭终端来终止进程。
  • 考虑在受限环境(如 Google Colab 或 Replit)中运行 Open Interpreter。这些环境更加隔离,可以降低执行任意代码的风险。

目前还存在一项【实验性】支持的安全模式,有助于缓解部分风险。

工作原理是什么?

Open Interpreter 为一个具有函数调用能力的语言模型(function-calling language model)配备了一个 exec() 函数,该函数接受一种“语言”(如 “Python” 或 “JavaScript”)和要运行的“代码”。

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

离线访问文档

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

Node 是先决条件:

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

安装 Mintlify

npm i -g mintlify@latest

进入文档目录并运行相应命令:

# 假设您位于项目的根目录
cd ./docs

# 启动文档服务器
mintlify dev

此时应会打开一个新的浏览器窗口。只要文档服务器运行着,您就可以在 http://localhost:3000 访问文档。

贡献

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

请参阅我们的贡献指南,了解更多关于如何参与的信息。

路线图

访问我们的路线图,预览 Open Interpreter 的未来发展方向。

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

thumbnail-ncu

拥有一个能以指尖速度工作的初级程序员……可以让新的工作流程变得轻松高效,同时也为更多人打开了编程的大门。

OpenAI 的 Code Interpreter 发布声明


版本历史

v0.4.22024/10/24
v0.4.12024/10/24
v0.4.02024/10/24
v0.3.142024/10/15
v0.3.132024/09/15
v0.3.122024/09/05
v0.3.102024/08/29
v0.3.92024/08/26
v0.3.72024/08/15
v0.3.62024/08/08
v0.3.42024/06/30
v0.3.32024/06/20
v0.3.22024/06/20
v0.3.12024/06/18
v0.3.02024/06/18
v0.2.62024/06/08
v0.2.52024/04/24
v0.2.42024/03/24
v0.2.32024/03/20
v0.2.22024/03/12

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.6k|★★★☆☆|今天
语言模型Agent开发框架