在 LLM 失败时触发自动重试

如果您的应用程序依赖于 LLM 来实现关键功能,突然的超时或错误可能会损害用户体验并影响您服务的声誉。为防止这种情况,建立一个可靠的重试机制至关重要。这将确保用户不会感到沮丧,并且可以依赖您的服务。

对大型语言模型(LLMs)请求的重试可以显著提高您的 Gen AI 应用程序的可靠性。

它可以帮助您处理以下情况:

  1. 超时的情况(模型没有响应)

  2. 模型返回的瞬态错误情况

在本食谱中,您将学习如何使用 Portkey 根据特定响应状态码自动重试请求,并控制您希望重试的次数。

1. 导入并认证 Portkey Client SDK

Portkey 将您的请求转发到您所需的模型,并将响应传递给您的应用程序。Portkey 的 Client SDK 是通过 AI 网关进行 API 调用的几种方式之一。

要安装它,请在您的 NodeJS 环境中输入以下内容:

npm install portkey-ai

导入 Portkey 并使用 Portkey API 密钥实例化它

const portkey = new Portkey({
  apiKey: 'xxxxrk',
  virtualKey: 'maixxx4d'
});

此时,理解您使用 apiKeyvirtualKey 参数实例化 portkey 实例是至关重要的。您可以在 Portkey 仪表板中找到这两个参数的值。

访问参考以 获取 Portkey API 密钥 并了解 如何创建虚拟密钥

2. 网关配置以自动重试

为了让AI网关理解您想对请求应用自动重试,您必须在请求负载中传递网关配置。网关配置可以是JS对象或JSON字符串。

一个典型的网关配置,在遇到速率限制时自动重试三次:

您创建了一个retry对象,包含attemptson_status_codes键。attempts的值可以增加到5次以自动重试,而on_status_codes是一个可选键。默认情况下,Portkey会尝试在状态码[429, 500, 502, 503, 504]上进行重试。

请参考网关配置101自动重试

3. 使用 Portkey Client SDK 进行 API 调用

您现在可以通过 Portkey 进行 API 调用。虽然有多种方法可以进行 API 调用,但在本食谱中,让我们在聊天完成调用中传递网关配置。

Portkey SDK 将配置添加到 HTTP 头中,以对我们的请求应用自动重试。总体而言,聊天完成方法的签名如下:

4. 查看日志

现在您已经成功了解如何通过 Portkey 进行 API 调用,了解日志也是很有帮助的。您可以在 仪表板 > 日志 页面找到通过 Portkey 发送的所有请求。

该页面提供了时间、费用和响应等重要信息。欢迎您进行探索!

您可以使用 Portkey 的网关配置来管理所有重试,而不是使用您自己应用级的循环或控制结构来实现重试。

查看完整代码

Last updated