回退

在市场上有多种语言模型 API 可用,每种都有其自身的优势和特长,如果您可以根据它们的性能或可用性无缝切换该多好呢?Portkey 的回退功能正是为了实现这一点。

回退功能允许您按优先顺序指定提供者/模型的列表。如果主要的 LLM 无法响应或遇到错误,Portkey 将自动回退到列表中的下一个 LLM,从而确保您应用程序的稳健性和可靠性。

在LLMs上启用回退

要启用回退,您可以修改config object以包含fallback模式。

这是一个快速示例配置,当OpenAI的gpt-4o失败时,回退到Anthropic的claude-3.5-sonnet

{
  "strategy": {
      "mode": "fallback"
  },
  "targets": [
    {
      "virtual_key": "openai-virtual-key",
      "override_params": {
          "model": "gpt-4o"
      }
    },
    {
      "virtual_key": "anthropic-virtual-key",
      "override_params": {
          "model": "claude-3.5-sonnet-20240620"
      }
    }
  ]
}

在这种情况下,如果OpenAI模型遇到错误或未能响应,Portkey将自动使用Anthropic重试请求。

在请求中使用配置

在特定错误代码上触发回退

默认情况下,任何返回 非 2xx 状态码的请求都会触发回退。

您可以通过在回退配置中设置可选的 on_status_codes 参数,并手动输入将触发回退的状态码来更改此行为。

在这里,只有当 OpenAI 请求返回 429 错误代码(即速率限制错误)时,才会从 OpenAI 回退到 Azure OpenAI。

追踪 Portkey 的回退请求

Portkey 记录所有作为回退配置一部分发送的请求。这使您能够轻松追踪并查看哪些目标失败,以及哪些目标最终成功。

要查看您的回退追踪,

  1. 在日志页面,首先使用您设置回退的特定 Config ID 过滤日志 - 这将显示所有已使用该配置发送的请求。

  2. 现在,通过进一步过滤 Trace ID 来追踪单个请求及其所有失败和成功的日志 - 这将显示源自单个请求的所有日志。

注意事项与考虑

虽然 LLMs 的回退功能大大增强了应用程序的可靠性和韧性,但仍有一些事项需要考虑:

  1. 确保回退列表中的 LLMs 与您的用例兼容。并非所有 LLMs 都提供相同的功能。

  2. 关注您与每个 LLM 的使用情况。根据您的回退列表,单个请求可能会导致多个 LLM 的调用。

  3. 了解每个 LLM 的延迟和定价。回退到不同的 LLM 可能会对成本和响应时间产生影响。

Last updated