计算机 API 是核心系统,它允许 Open Interpreter 与用户的计算机交互,将自然语言指令与可执行的系统操作连接起来。该模块提供了执行代码、捕获屏幕内容、控制输入设备、浏览网页以及执行各种系统操作的功能。它是语言模型观察和与用户系统交互的主要接口。
有关代码如何在不同编程语言中执行的信息,请参阅代码执行环境。有关通过视觉、鼠标和键盘进行操作系统交互的详细信息,请参阅操作系统交互。
计算机 API 由一个主要的Computer类组成,该类协调处理系统交互不同方面的专用组件集合。
来源:interpreter/core/computer/computer.py1-238
Computer类是核心组件,用于初始化和管理 API 的所有子组件
Computer类通过对解释器的引用进行实例化,并提供代码执行、屏幕捕获和系统控制的方法。它还会生成一个系统消息,列出所有可供大型语言模型(LLMs)使用的函数。
关键属性包括
offline: 控制是否在离线模式下运行verbose: 启用详细输出以进行调试debug: 激活详细调试信息emit_images: 决定是否将图像发送给语言模型api_base: API 调用的基础 URL(默认为“https://api.openinterpreter.com/v0”)save_skills: 控制是否自动保存技能主要方法包括
run(language, code, stream=False): 在指定语言中执行代码exec(code): 运行 shell 命令的快捷方式screenshot(): 捕获屏幕view(): screenshot 的别名stop(): 停止当前执行terminate(): 终止所有语言运行时来源:interpreter/core/computer/computer.py22-238
终端组件管理跨多种编程语言的代码执行
终端组件充当代码执行的调度器,将代码路由到适当的语言运行时。它通过语言类的插件系统支持多种语言。
关键方法
run(language, code, stream=False, display=False): 在指定语言中执行代码stop(): 停止当前执行terminate(): 终止所有语言运行时get_language(language): 获取给定语言名称的语言类来源:interpreter/core/computer/terminal/terminal.py33-208 interpreter/core/computer/terminal/languages/jupyter_language.py36-553
显示组件提供屏幕捕获和分析功能
显示组件使语言模型能够视觉感知和分析用户的屏幕。
关键方法
screenshot(...): 截取整个屏幕或特定区域的截图find(description, screenshot=None): 使用计算机视觉在屏幕上定位图标find_text(text, screenshot=None): 使用 OCR 在屏幕上查找文本get_text_as_list_of_lists(screenshot=None): 从屏幕提取所有文本来源:interpreter/core/computer/display/display.py46-339 interpreter/core/computer/utils/computer_vision.py15-214
鼠标组件提供控制鼠标光标的方法
鼠标组件支持鼠标交互自动化,包括点击通过文本或图标识别的屏幕元素。
关键方法
move(...): 将鼠标移动到坐标、文本或图标click(...): 在当前位置或指定目标处点击scroll(clicks): 滚动鼠标滚轮right_click(...): 执行右键点击操作position(): 获取当前鼠标位置来源:interpreter/core/computer/mouse/mouse.py20-301
浏览器组件使用 Selenium 提供网页浏览功能
浏览器组件支持网页搜索和页面分析,以收集信息。
关键方法
search(query): 在网络上搜索指定查询fast_search(query): 搜索的优化版本go_to_url(url): 导航到 URLanalyze_page(intent): 根据意图从当前页面提取信息search_google(query, delays=True): 执行 Google 搜索来源:interpreter/core/computer/browser/browser.py13-162
技能组件管理可重用自动化脚本
技能组件支持创建、管理和执行可在会话之间共享的可重用技能。
关键方法
list(): 列出可用技能import_skills(): 从技能目录导入技能search(query): 搜索匹配查询的技能new_skill.create(): 开始创建新技能new_skill.add_step(step, code): 向技能添加步骤new_skill.save(): 将技能保存到磁盘来源:interpreter/core/computer/skills/skills.py23-207
AI 组件为 AI 操作提供实用工具
AI 组件支持与语言模型交互以完成特定任务。
关键方法
chat(text, base64=None): 与语言模型进行对话query(text, query, custom_reduce_query=None): 使用 MapReduce 方法查询大型文本summarize(text): 总结文本内容来源:interpreter/core/computer/ai/ai.py116-193
计算机 API 通过 interpreter.computer 属性与 OpenInterpreter 集成。当解释器执行代码时,它可以访问计算机 API 以与系统交互。
计算机 API 提供多种自动化任务功能
计算机 API 可以通过多个属性进行配置
计算机 API 被设计为可扩展的。可以通过以下方式添加新功能:
BaseLanguage 类来创建新的语言运行时Computer 类例如,要添加新的语言运行时,请创建一个实现 run、stop 和 terminate 方法的类,然后将其添加到 Terminal.languages 列表中。
计算机 API 提供了对用户系统的‘重要访问权限。Open Interpreter 包含以下安全机制:
auto_run=False 时)computer.terminate() 终止运行中代码的能力用户应注意,授予语言模型访问计算机 API 的权限,等同于授予其以用户权限在系统上执行代码的能力。