本页介绍了如何将 Open Interpreter 作为具有 HTTP 和 WebSocket 端点的服务器运行。服务器模式允许您通过 REST API 或 WebSocket 连接与 Open Interpreter 交互,从而实现与 Web 应用程序、服务或自定义客户端的集成。有关如何在 Python 应用程序中以编程方式使用 Open Interpreter 的信息,请参阅Python API。
服务器模式将 Open Interpreter 转换为 WebSocket 和 HTTP 服务器,允许与解释器进行远程交互。这对于以下情况特别有用:
来源
服务器架构包含一个 AsyncInterpreter,它通过异步能力扩展了基础的 OpenInterpreter 类。该服务器基于 FastAPI 构建,提供多个交互端点。
来源
要以服务器模式启动 Open Interpreter,请使用 --server 标志
默认情况下,服务器将在 http://:8000 上运行。
来源
您也可以通过编程方式启动服务器
来源
服务器模式需要基础包中未包含的额外依赖项。要安装它们:
这将安装 FastAPI、Uvicorn 和 Janus,这些是服务器功能所需的。
来源
在服务器模式下,客户端首先通过 /settings 端点配置解释器,然后建立 WebSocket 连接以发送消息和接收流式响应。
来源
服务器通过 INTERPRETER_API_KEY 环境变量支持 API 密钥认证。设置后,客户端必须在 HTTP 请求的 X-API-KEY 头部或初始 WebSocket 消息的 auth 字段中提供此密钥。
来源
| 端点 | 方法 | 描述 |
|---|---|---|
/ | WebSocket | 用于实时流式交互的主 WebSocket 连接 |
/heartbeat | GET | 检查服务器是否在线的简单端点 |
/settings | POST | 更新解释器设置(模型、温度等) |
/settings/messages | GET | 检索当前消息历史记录 |
/run | POST | 直接执行代码,绕过 LLM |
/openai/chat/completions | POST | 与 OpenAI 兼容的聊天补全 API |
来源
WebSocket 通信遵循结构化协议,消息以带开始/结束标记的块形式发送,响应以不同类型和格式流回。
来源
以下是使用 WebSockets 与 Open Interpreter 服务器交互的简化示例:
来源
来源
服务器可以处理各种消息类型:
来源
AsyncInterpreter 扩展了 OpenInterpreter 以添加异步功能,具有三个主要方法:
input():接收并累积来自 WebSocket 客户端的消息块output():提供异步队列用于流式响应respond():在单独的线程中运行以处理消息并生成响应来源
服务器支持可选的确认系统以提高可靠性,通过设置 INTERPRETER_REQUIRE_ACKNOWLEDGE 环境变量启用。
来源
服务器在 /openai/chat/completions 提供 OpenAI 兼容端点,允许您使用为 OpenAI API 构建的客户端。
来源
确保您已安装必要的依赖项:
如果您遇到 janus、fastapi 或 uvicorn 的导入错误,这表明缺少服务器依赖项。
来源
如果您收到 403 Forbidden 响应,请确保您正确提供了 API 密钥:
X-API-KEY 头部{"auth": "your_api_key"} 作为第一条消息来源
如果 WebSocket 连接意外关闭:
/heartbeat 端点)来源
服务器模式提供了一种灵活的方式,将 Open Interpreter 集成到 Web 应用程序、服务或自定义客户端中。WebSocket 接口支持实时流式交互,而 HTTP 端点则允许配置和直接代码执行。认证功能在需要时确保安全访问。
对于更复杂的集成场景,请考虑使用 Python API(Python API),它提供了对解释器行为更直接的控制。