菜单

服务器模式

相关源文件

本页介绍了如何将 Open Interpreter 作为具有 HTTP 和 WebSocket 端点的服务器运行。服务器模式允许您通过 REST API 或 WebSocket 连接与 Open Interpreter 交互,从而实现与 Web 应用程序、服务或自定义客户端的集成。有关如何在 Python 应用程序中以编程方式使用 Open Interpreter 的信息,请参阅Python API

概述

服务器模式将 Open Interpreter 转换为 WebSocket 和 HTTP 服务器,允许与解释器进行远程交互。这对于以下情况特别有用:

  • 为 Open Interpreter 创建基于 Web 的接口
  • 将 Open Interpreter 与其他应用程序集成
  • 使用任何编程语言构建客户端应用程序
  • 使多个用户能够与单个解释器实例交互

来源

服务器架构

服务器架构包含一个 AsyncInterpreter,它通过异步能力扩展了基础的 OpenInterpreter 类。该服务器基于 FastAPI 构建,提供多个交互端点。

来源

启动服务器模式

命令行

要以服务器模式启动 Open Interpreter,请使用 --server 标志

默认情况下,服务器将在 http://:8000 上运行。

来源

以编程方式

您也可以通过编程方式启动服务器

来源

依赖项

服务器模式需要基础包中未包含的额外依赖项。要安装它们:

这将安装 FastAPI、Uvicorn 和 Janus,这些是服务器功能所需的。

来源

通信流程

在服务器模式下,客户端首先通过 /settings 端点配置解释器,然后建立 WebSocket 连接以发送消息和接收流式响应。

来源

身份验证

服务器通过 INTERPRETER_API_KEY 环境变量支持 API 密钥认证。设置后,客户端必须在 HTTP 请求的 X-API-KEY 头部或初始 WebSocket 消息的 auth 字段中提供此密钥。

来源

API 端点参考

端点方法描述
/WebSocket用于实时流式交互的主 WebSocket 连接
/heartbeatGET检查服务器是否在线的简单端点
/settingsPOST更新解释器设置(模型、温度等)
/settings/messagesGET检索当前消息历史记录
/runPOST直接执行代码,绕过 LLM
/openai/chat/completionsPOST与 OpenAI 兼容的聊天补全 API

来源

WebSocket 通信协议

WebSocket 通信遵循结构化协议,消息以带开始/结束标记的块形式发送,响应以不同类型和格式流回。

来源

使用示例

WebSocket 客户端示例

以下是使用 WebSockets 与 Open Interpreter 服务器交互的简化示例:

来源

HTTP 客户端示例

来源

处理不同消息类型

服务器可以处理各种消息类型:

  • 文本消息:解释器的常规文本输入
  • 文件附件:要包含在上下文中的文件路径
  • 图像附件:用于多模态模型的 Base64 编码图像或图像路径
  • 命令:特殊指令,如“go”(批准代码)或“stop”(停止执行)

来源

AsyncInterpreter 实现细节

AsyncInterpreter 扩展了 OpenInterpreter 以添加异步功能,具有三个主要方法:

  1. input():接收并累积来自 WebSocket 客户端的消息块
  2. output():提供异步队列用于流式响应
  3. respond():在单独的线程中运行以处理消息并生成响应

来源

高级特性

输入确认

服务器支持可选的确认系统以提高可靠性,通过设置 INTERPRETER_REQUIRE_ACKNOWLEDGE 环境变量启用。

来源

OpenAI 兼容 API

服务器在 /openai/chat/completions 提供 OpenAI 兼容端点,允许您使用为 OpenAI API 构建的客户端。

来源

常见问题和故障排除

依赖项

确保您已安装必要的依赖项:

如果您遇到 janusfastapiuvicorn 的导入错误,这表明缺少服务器依赖项。

来源

身份验证错误

如果您收到 403 Forbidden 响应,请确保您正确提供了 API 密钥:

  • 对于 HTTP 请求:包含 X-API-KEY 头部
  • 对于 WebSocket 连接:发送 {"auth": "your_api_key"} 作为第一条消息

来源

连接问题

如果 WebSocket 连接意外关闭:

  1. 检查服务器是否仍在运行(/heartbeat 端点)
  2. 确保您正确处理流式响应
  3. 关注服务器日志中的错误

来源

结论

服务器模式提供了一种灵活的方式,将 Open Interpreter 集成到 Web 应用程序、服务或自定义客户端中。WebSocket 接口支持实时流式交互,而 HTTP 端点则允许配置和直接代码执行。认证功能在需要时确保安全访问。

对于更复杂的集成场景,请考虑使用 Python API(Python API),它提供了对解释器行为更直接的控制。