菜单

托管模型

相关源文件

本页面介绍了 Open Interpreter 如何与 OpenAI 的 GPT 模型、Anthropic 的 Claude 等云托管语言模型以及其他基于 API 的 LLM 提供商进行交互。有关在本地运行模型的信息,请参阅本地模型

概述

Open Interpreter 使用托管模型作为其默认配置,连接到外部 API 端点以访问在提供商服务器而非用户本地机器上运行的强大语言模型。该系统使用 LiteLLM 作为其抽象层,以提供跨多个模型提供商的一致接口。

来源:interpreter/core/llm/llm.py38-76

支持的托管模型

Open Interpreter 支持以下托管模型提供商

提供商模型示例主要功能API 密钥环境变量
OpenAIgpt-4o, gpt-3.5-turbo视觉,函数调用OPENAI_API_KEY
Anthropicclaude-3-5-sonnet, claude-3-opus高推理能力,长上下文ANTHROPIC_API_KEY
Open Interpreter APIi简化访问INTERPRETER_API_KEY
自定义提供商通过 API URL 的任意提供商可自定义的端点可变

默认模型是 gpt-4o,但这可以通过设置进行配置。

来源:interpreter/core/llm/llm.py53-75 interpreter/core/llm/llm.py107-124

配置

基本配置

您可以通过设置解释器 llm 对象的属性来指定要使用的托管模型及其参数

API 密钥

API 密钥可以通过三种方式提供

  1. 环境变量:推荐的安全方法
  2. 直接设置:通过设置 interpreter.llm.api_key
  3. 命令行:从 CLI 运行时使用 --api_key 标志

高级配置选项

参数描述默认
模型模型标识符gpt-4o
温度随机性 (0-1)0
上下文窗口上下文的 Token 限制自动检测
max_tokens最大响应长度自动计算
api_base自定义 API 端点 URL提供商默认
api_keyAPI 认证密钥来自环境变量
api_version要使用的 API 版本提供商默认
max_budget最大支出限制

来源:interpreter/core/llm/llm.py53-75 interpreter/core/llm/llm.py282-304

架构

消息处理流程

来源:interpreter/core/llm/llm.py76-324 interpreter/core/llm/utils/convert_to_openai_messages.py9-289

消息转换

Open Interpreter 使用内部消息格式 (LMC),但在发送到托管 API 之前需要将这些消息转换为 OpenAI 兼容的消息。此转换处理不同类型的消息

  1. 文本消息:角色之间的简单转换
  2. 代码块:转换为支持函数调用的模型的函数调用
  3. 图像:为视觉模型编码为 base64 格式
  4. 控制台输出:作为函数响应处理

来源:interpreter/core/llm/utils/convert_to_openai_messages.py9-289 interpreter/core/llm/run_tool_calling_llm.py1-316

深入探究:Llm 类

Llm 类是处理托管模型交互的核心组件

Llm 类的显著特点

  • 自动检测:检测模型是否支持视觉或函数调用
  • 上下文管理:自动修剪消息以适应上下文窗口
  • 视觉内容处理:处理并调整视觉模型的图像大小
  • 预算控制:通过 LiteLLM 设置可选的预算限制

来源:interpreter/core/llm/llm.py38-76 interpreter/core/llm/llm.py76-324 interpreter/core/llm/llm.py334-413

使用特定的托管模型

OpenAI 模型

OpenAI 模型是默认的,只需要最少的配置

Claude 模型

Anthropic 的 Claude 模型可以使用 Anthropic API 密钥

简化的 Open Interpreter API

适用于不想管理自己 API 密钥的用户

此选项会自动配置适当的设置并提供简化的体验。

来源:interpreter/core/llm/llm.py107-124 interpreter/core/llm/llm.py416-467

自定义 API 端点

适用于具有自定义部署或代理服务的组织

这对于以下情况很有用

  • 具有自定义 LLM 部署的组织
  • 使用代理进行 API 密钥管理
  • 区域 API 端点
  • 具有 OpenAI 兼容 API 的自托管模型服务器

来源:interpreter/core/llm/llm.py282-304

故障排除

常见问题

问题可能的解决方案
API 密钥错误确保通过环境变量或 llm.api_key 设置密钥
速率限制降低请求频率或升级 API 层级
上下文窗口错误减少 max_tokens 或清除 interpreter.messages
模型可用性验证您所在区域/账户中的模型名称和可用性
消息过大对于视觉模型,请使用 interpreter.shrink_images=True

重试逻辑

系统包含针对常见 API 问题的自动重试逻辑

这有助于在无需用户干预的情况下从临时 API 问题中恢复。

来源:interpreter/core/llm/llm.py416-467

最佳实践

  1. API 密钥安全:

    • 使用环境变量而不是硬编码的密钥
    • 考虑使用 .env 文件并设置适当的 gitignore
  2. 成本管理:

    • 设置 max_budget 以限制使用
    • 尽可能使用较小的模型
    • 优化上下文大小以减少 token 使用
  3. 性能优化:

    • 配置适当的 context_windowmax_tokens
    • 对于确定性响应,请使用 temperature=0
    • 对于长时间会话,请清除对话历史记录

来源:interpreter/core/llm/llm.py282-304 interpreter/core/llm/llm.py334-413