获取桌面应用早期访问 | 文档
Open Interpreter 让大语言模型(LLM)能在本地运行代码(Python、Javascript、Shell 等)。安装后,通过在终端中运行 $ interpreter,你可以通过类似 ChatGPT 的界面与 Open Interpreter 聊天。
这为你的计算机提供了一个自然语言界面来使用其通用功能:
⚠️ 注意:代码运行前会请求你的确认。
https://github.com/OpenInterpreter/open-interpreter/assets/63927363/37152071-680d-4423-9af3-64836a6f7b60
pip install git+https://github.com/OpenInterpreter/open-interpreter.git
安装不成功?请阅读我们的设置指南。
安装后,直接运行 interpreter:
interpreter
from interpreter import interpreter
interpreter.chat("绘制 AAPL 和 META 的归一化股价图") # 执行单条命令
interpreter.chat() # 启动交互式聊天
在此仓库的 GitHub 页面按下 , 键来创建一个代码空间。稍等片刻,你将获得一个预装了 open-interpreter 的云虚拟机环境。之后你可以直接开始与它交互,并可以放心地确认其系统命令的执行,而不用担心损坏系统。
OpenAI 发布的 GPT-4 代码解释器为使用 ChatGPT 完成现实世界任务提供了绝佳机会。
然而,OpenAI 的服务是托管的、闭源的,并且受到严格限制:
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"
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。
服务器运行后,你就可以开始与 Open Interpreter 对话了。
注意: 本地模式会将你的
context_window设置为 3000,将max_tokens设置为 1000。如果你的模型有不同的要求,请手动设置这些参数(见下文)。
我们的 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_tokens 和 context_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
生成器更新使 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 设备上安装 Open Interpreter 的逐步指南可以在 open-interpreter-termux 仓库 中找到。
由于生成的代码在你的本地环境中执行,它可以与你的文件和系统设置交互,可能导致数据丢失或安全风险等意外结果。
⚠️ Open Interpreter 在执行代码前会请求用户确认。
你可以运行 interpreter -y 或设置 interpreter.auto_run = True 来绕过此确认,在这种情况下:
目前有实验性的 安全模式 支持,以帮助减轻部分风险。
Open Interpreter 为 具备函数调用能力的语言模型 配备了一个 exec() 函数,该函数接受 language(如 "Python" 或 "JavaScript")和要运行的 code。
然后,我们将模型的消息、代码以及你系统的输出以 Markdown 格式流式传输到终端。
完整的文档可以在没有互联网连接的情况下离线访问。
Node 是前提条件:
安装 Mintlify:
npm i -g mintlify@latest
切换到 docs 目录并运行相应命令:
# 假设你在项目根目录
cd ./docs
# 运行文档服务器
mintlify dev
一个新的浏览器窗口应该会打开。只要文档服务器在运行,文档就将在 http://localhost:3000 可用。
感谢你对贡献感兴趣!我们欢迎社区的参与。
关于如何参与的更多详情,请参阅我们的贡献指南。
访问我们的路线图预览 Open Interpreter 的未来。
注意:本软件与 OpenAI 无关联。
拥有一个能以你指尖速度工作的初级程序员……可以使新的工作流程变得轻松高效,同时也能将编程的好处带给新的受众。
— OpenAI 代码解释器发布说明