本文概述了与 Open Interpreter 交互的不同方式。系统提供三种主要的接口选项:命令行界面(CLI)、Python API 和服务器模式,每种都针对不同的用例和环境而设计。
有关这些接口连接到的核心架构的信息,请参阅核心架构。
Open Interpreter 提供了三种与核心功能交互的不同方式,每种方式都连接到相同的底层解释器引擎,但提供了不同的界面范式
来源:README.md44-46 README.md76-91 README.md317-349
每个接口都提供对核心功能的访问,但设计用于不同的用例
| 接口 | 最佳用途 | 主要功能 |
|---|---|---|
| 命令行 | 交互式探索,快速任务 | 带Markdown渲染的终端UI |
| Python API | 集成到应用程序,自定义 | 程序化控制,流式响应 |
| 服务器模式 | Web应用程序,分布式系统 | HTTP/WebSocket 端点,异步操作 |
下图说明了数据如何通过每种接口类型流动
来源:README.md126-160 README.md317-346
命令行界面提供了一个功能丰富的基于终端的用户界面,具有 Markdown 渲染和语法高亮,适用于交互式会话。
要开始交互式聊天会话
使用 CLI 时,消息和代码输出使用 MessageBlock 类进行渲染,该类处理 Markdown 格式以及区分常规消息和代码块。
来源:README.md76-82 interpreter/terminal_interface/components/message_block.py10-28
CLI 支持各种选项来自定义行为
| 选项 | 描述 | 示例 |
|---|---|---|
--model | 指定要使用的语言模型 | interpreter --model gpt-3.5-turbo |
--local | 使用本地语言模型 | interpreter --local |
--api_base | 指定自定义API端点 | interpreter --api_base "http://:1234/v1" |
--api_key | 为语言模型提供API密钥 | interpreter --api_key "your-key-here" |
--context_window | 设置上下文窗口大小(令牌) | interpreter --context_window 3000 |
--max_tokens | 设置响应的最大令牌数 | interpreter --max_tokens 1000 |
--verbose | 启用详细日志记录 | interpreter --verbose |
-y | 自动确认代码执行 | interpreter -y |
--profile | 使用特定的配置文件 | interpreter --profile my_profile.yaml |
来源:README.md196-200 README.md217-229 README.md258-266 README.md269-280
在交互式会话期间,可以使用特殊命令
| 命令 | 描述 |
|---|---|
%verbose [true/false] | 切换详细模式 |
%reset | 重置对话历史记录 |
%undo | 移除上一条消息和响应 |
%tokens [prompt] | 计算令牌使用量和估计成本 |
%help | 显示可用命令 |
CLI 支持存储为 YAML 文件的配置文件
Python API 提供对 Open Interpreter 的程序化控制,允许集成到 Python 应用程序中。
| 方法/属性 | 描述 |
|---|---|
interpreter.chat(message) | 发送消息并获取响应 |
interpreter.messages | 访问对话历史 |
interpreter.system_message | 自定义系统指令 |
interpreter.llm.model | 设置语言模型 |
interpreter.auto_run | 切换自动代码执行 |
interpreter.reset() | 重置对话历史 |
来源:README.md149-160 README.md181-190
Python API 支持流式响应以进行实时输出处理
来源:README.md116-123 README.md139-146
保存和恢复对话
服务器模式可以通过 HTTP 和 WebSocket 端点使用 Open Interpreter,非常适合 Web 应用程序和分布式系统。
启动服务器最简单的方法
使用 FastAPI 创建自定义服务器
使用 interpreter.server() 时,以下端点可用
| 端点 | 方法 | 描述 |
|---|---|---|
/ | WebSocket | 通过 WebSocket 进行交互式聊天 |
/settings | GET/POST | 获取或更新服务器设置 |
/run | POST | 直接执行代码 |
/openai/chat/completions | POST | OpenAI 兼容的聊天端点 |
在决定使用哪个接口时,请考虑您的具体需求
| 用例 | 推荐接口 | 推理 |
|---|---|---|
| 快速探索 | CLI | 易于启动,功能丰富的终端用户界面 |
| 集成到 Python 项目 | Python API | 直接访问所有功能 |
| 与 Web 应用程序集成 | 服务器模式 | HTTP/WebSocket 端点 |
| 自动化处理 | Python API | 控制流和错误处理 |
| 多用户访问 | 服务器模式 | 具有多个客户端的集中式服务 |
| 实时交互式应用程序 | 服务器模式 + WebSockets | 双向通信 |
来源:README.md33-53 README.md76-91 README.md317-346
为了帮助您了解如何将 Open Interpreter 集成到您的工作流程中,以下是每种接口的典型使用模式
来源:README.md76-160 README.md317-346
总而言之,Open Interpreter 提供了一系列灵活的接口,适用于不同的环境和需求,从简单的命令行探索到集成到复杂的 Web 应用程序。所有接口都连接到同样强大的核心功能,让您可以选择最适合特定用例的接口。